59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
|
|
// test repl basics
|
|
// data on master/slave is the same
|
|
|
|
var rt = new ReplTest("mod_move");
|
|
|
|
m = rt.start(true, {oplogSize: 50});
|
|
|
|
am = m.getDB("foo");
|
|
|
|
function check(note) {
|
|
var start = new Date();
|
|
var x, y;
|
|
while ((new Date()).getTime() - start.getTime() < 5 * 60 * 1000) {
|
|
x = am.runCommand("dbhash");
|
|
y = as.runCommand("dbhash");
|
|
if (x.md5 == y.md5)
|
|
return;
|
|
sleep(200);
|
|
}
|
|
assert.eq(x.md5, y.md5, note);
|
|
}
|
|
|
|
// insert a lot of 'big' docs
|
|
// so when we delete them the small docs move here
|
|
|
|
BIG = 100000;
|
|
N = BIG * 2;
|
|
|
|
var bulk = am.a.initializeUnorderedBulkOp();
|
|
for (var i = 0; i < BIG; i++) {
|
|
bulk.insert({_id: i, s: 1, x: 1});
|
|
}
|
|
for (; i < N; i++) {
|
|
bulk.insert({_id: i, s: 1});
|
|
}
|
|
for (i = 0; i < BIG; i++) {
|
|
bulk.find({_id: i}).remove();
|
|
}
|
|
assert.writeOK(bulk.execute());
|
|
assert.eq(BIG, am.a.count());
|
|
|
|
if (am.serverStatus().storageEngine.name == "mmapv1") {
|
|
assert.eq(1, am.a.stats().paddingFactor, "A2");
|
|
}
|
|
|
|
// start slave
|
|
s = rt.start(false);
|
|
as = s.getDB("foo");
|
|
bulk = am.a.initializeUnorderedBulkOp();
|
|
for (i = N - 1; i >= BIG; i--) {
|
|
bulk.find({_id: i}).update({$set: {x: 1}});
|
|
}
|
|
assert.writeOK(bulk.execute());
|
|
|
|
check("B");
|
|
|
|
rt.stop();
|