<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    MemDB分布式事務內(nèi)存數(shù)據(jù)庫

    聯(lián)合創(chuàng)作 · 2023-10-01 01:31

    MemDB 是全球首個支持分布式事務的 MongoDB。

    高性能和可伸縮

    • 快速的內(nèi)存數(shù)據(jù)訪問,高達 25,000 ops (single doc read/write) /碎片 (each shard take one CPU core).

    • 系統(tǒng)可水平伸縮

    • 沒有單點瓶頸

    真正的分布式 ACID 事務

    • 在分布式環(huán)境真正支持 ACID (Stands for Atomicity, Consistency, Isolation, Durability) 事務

    • MemDB 讓 MongoDB 支持 ACID 事務

    兼容 MongoDB 和 Mongoose

    • 直接使用 MongoDB 的查詢 API

    • 內(nèi)置 Mongoose 支持

    高可用性

    • 每個碎片都有一個或者多個 slaves,不會發(fā)生單點故障

    MemDB shell:

    memdbshell.gif

    架構(gòu):

    architecture.png

    Mdbgoose:

    var memdb = require('memdb-client');
    var P = memdb.Promise;
    var mdbgoose = memdb.goose;
    // Define player schema
    var playerSchema = new mdbgoose.Schema({
        _id : String,
        name : String,
        areaId : Number,
        deviceType : Number,
        deviceId : String,
        items : [mdbgoose.SchemaTypes.Mixed],
    }, {collection : 'player'});
    // Define player model
    var Player = mdbgoose.model('player', playerSchema);
    var main = P.coroutine(function*(){
        // Connect to memdb
        yield mdbgoose.connectAsync({
            shards : { // specify all shards here
                s1 : {host : '127.0.0.1', port: 31017},
                s2 : {host : '127.0.0.1', port: 31018},
            }
        });
        // Make a transaction in s1
        yield mdbgoose.transactionAsync(P.coroutine(function*(){
            var player = new Player({
                _id : 'p1',
                name: 'rain',
                areaId : 1,
                deviceType : 1,
                deviceId : 'id1',
                items : [],
            });
            // insert a player
            yield player.saveAsync();
            // find player by id
            var doc = yield Player.findByIdAsync('p1');
            console.log('%j', doc);
            // find player by areaId, return array of players
            var docs = yield Player.findAsync({areaId : 1});
            console.log('%j', docs);
            // find player by deviceType and deviceId
            player = yield Player.findOneAsync({deviceType : 1, deviceId : 'id1'});
            // update player
            player.areaId = 2;
            yield player.saveAsync();
            // remove the player
            yield player.removeAsync();
        }), 's1');
    });
    if (require.main === module) {
        main().finally(process.exit);
    }
    瀏覽 16
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    編輯 分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    編輯 分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    亚洲一区二区黄色电影视频 | 国产一区黄色电影 | 五月丁香激情网站 | 大鸡吧视频在线免费观看 | 成人在线视频免费观看 |