summaryrefslogtreecommitdiff
path: root/jstests/parallel/update_serializability2.js
blob: 84b27049e533657a49b186ffa7ad9717094db2e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(function() {
"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());
})();