コード例 #1
0
ファイル: cluster.test.py プロジェクト: venkatarajasekhar/bee
print '-------------------------------------------------------------'
print 'gh-527: update vclock on delete from db.space._cluster'
print '-------------------------------------------------------------'

# master server
master = server
master_id = master.get_param('server')['id']

master.admin("db.schema.user.grant('guest', 'replication')")

replica = BeeServer(server.ini)
replica.script = 'replication/replica.lua'
replica.vardir = os.path.join(server.vardir, 'replica')
replica.rpl_master = master
replica.deploy()
replica.wait_lsn(master_id, master.get_lsn(master_id))
replica_id = replica.get_param('server')['id']
replica_uuid = replica.get_param('server')['uuid']
sys.stdout.push_filter(replica_uuid, '<replica uuid>')
replica.admin('db.space._schema:insert{"test", 48}')

replica.admin('db.info.server.id')
replica.admin('db.info.server.ro')
replica.admin('db.info.server.lsn') # 1
replica.admin('db.info.vclock[%d]' % replica_id)

master.admin('db.space._cluster:delete{%d}' % replica_id)
replica.wait_lsn(master_id, master.get_lsn(master_id))
replica.admin('db.info.server.id')
replica.admin('db.info.server.ro')
replica.admin('db.info.server.lsn') # -1
コード例 #2
0
master.admin("db.schema.user.grant('guest', 'replication')")
master.admin("space = db.schema.space.create('test', { id = 99999, engine = \"sham\" })")
master.admin("index = space:create_index('primary', { type = 'tree'})")
master.admin('for k = 1, 123 do space:insert{k, k*k} end')
master.admin('db.snapshot()')
lsn = master.get_lsn(master_id)

print '-------------------------------------------------------------'
print 'replica JOIN'
print '-------------------------------------------------------------'

# replica server
replica = BeeServer(server.ini)
replica.script = 'replication/replica.lua'
replica.vardir = os.path.join(server.vardir, 'replica')
replica.rpl_master = master
replica.deploy()
replica.wait_lsn(master_id, lsn)
replica.admin('db.space.test:select()')

replica.stop()
replica.cleanup(True)

# remove space
master.admin("space:drop()")
master.admin('db.snapshot()')
master.admin("ffi = require('ffi')")
master.admin("ffi.cdef(\"int sham_schedule(void);\")")
master.admin("ffi.C.sham_schedule() >= 0")