mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-24 16:46:00 +01:00
34 lines
938 B
JavaScript
34 lines
938 B
JavaScript
function test() {
|
|
"use strict";
|
|
var t = db.update_serializability1;
|
|
t.drop();
|
|
|
|
var N = 100000;
|
|
|
|
var bulk = t.initializeUnorderedBulkOp();
|
|
for (var i = 0; i < N; i++) {
|
|
bulk.insert({_id: i, a: i, b: N - i, x: 1, y: 1});
|
|
}
|
|
bulk.execute();
|
|
|
|
t.ensureIndex({a: 1});
|
|
t.ensureIndex({b: 1});
|
|
|
|
var s1 = startParallelShell(
|
|
"db.update_serializability1.update( { a : { $gte : 0 } }, { $set : { x : 2 } }, false, true );");
|
|
var s2 = startParallelShell("db.update_serializability1.update( { b : { $lte : " + N +
|
|
" } }, { $set : { y : 2 } }, false, true );");
|
|
|
|
s1();
|
|
s2();
|
|
|
|
// both operations should happen on every document
|
|
assert.eq(N, t.find({x: 2, y: 2}).count());
|
|
}
|
|
|
|
if (db.serverStatus().storageEngine.name == 'mmapv1') {
|
|
jsTest.log('skipping test on mmapv1'); // This is only guaranteed on other engines.
|
|
} else {
|
|
test();
|
|
}
|