diff options
author | Jack Mulrow <jack.mulrow@mongodb.com> | 2018-03-16 15:40:55 -0400 |
---|---|---|
committer | Jack Mulrow <jack.mulrow@mongodb.com> | 2018-03-20 10:00:20 -0400 |
commit | 2ff63660cc0aff0dd54e84dcf4a346b848bf8213 (patch) | |
tree | b133535705b1e7170ba49903deb1ddc3e6f43bff /jstests/core/splitvector.js | |
parent | be85d6ca6905ec8d5215c5b25a41d73dd47696f6 (diff) | |
download | mongo-2ff63660cc0aff0dd54e84dcf4a346b848bf8213.tar.gz |
SERVER-33645 Use bulk inserts in core/splitvector.js
Diffstat (limited to 'jstests/core/splitvector.js')
-rw-r--r-- | jstests/core/splitvector.js | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/jstests/core/splitvector.js b/jstests/core/splitvector.js index 83e653e992c..86aefd750fa 100644 --- a/jstests/core/splitvector.js +++ b/jstests/core/splitvector.js @@ -56,6 +56,26 @@ var resetCollection = function() { f.drop(); }; +// Inserts numDocs into the given collection using a bulk operation. Each document's x value is its +// index within the batch, starting from 1, and the y value is the given filler. +let bulkInsertDocs = function(coll, numDocs, filler) { + const bulk = coll.initializeUnorderedBulkOp(); + for (let i = 1; i <= numDocs; i++) { + bulk.insert({x: i, y: filler}); + } + assert.writeOK(bulk.execute()); +}; + +// Inserts numDocs into the given collection using a bulk operation. Each document's x value is set +// to the given xVal and the y value is the given filler. +let bulkInsertDocsFixedX = function(coll, numDocs, filler, xVal) { + const bulk = coll.initializeUnorderedBulkOp(); + for (let i = 1; i <= numDocs; i++) { + bulk.insert({x: xVal, y: filler}); + } + assert.writeOK(bulk.execute()); +}; + // ------------------------- // TESTS START HERE // ------------------------- @@ -104,10 +124,8 @@ var case4 = function() { assert.gt(docSize, 500, "4a"); // Fill collection and get split vector for 1MB maxChunkSize - numDocs = 4500; - for (i = 1; i < numDocs; i++) { - f.save({x: i, y: filler}); - } + let numDocs = 4500; + bulkInsertDocs(f, numDocs - 1, filler); // 1 document was already inserted. res = db.runCommand( {splitVector: "test.jstests_splitvector", keyPattern: {x: 1}, maxChunkSize: 1}); @@ -132,10 +150,7 @@ f.ensureIndex({x: 1}); var case5 = function() { // Fill collection and get split vector for 1MB maxChunkSize - numDocs = 4500; - for (i = 1; i < numDocs; i++) { - f.save({x: i, y: filler}); - } + bulkInsertDocs(f, 4499, filler); res = db.runCommand({ splitVector: "test.jstests_splitvector", keyPattern: {x: 1}, @@ -159,10 +174,7 @@ f.ensureIndex({x: 1}); var case6 = function() { // Fill collection and get split vector for 1MB maxChunkSize - numDocs = 2000; - for (i = 1; i < numDocs; i++) { - f.save({x: i, y: filler}); - } + bulkInsertDocs(f, 1999, filler); res = db.runCommand({ splitVector: "test.jstests_splitvector", keyPattern: {x: 1}, @@ -187,14 +199,8 @@ f.ensureIndex({x: 1}); var case7 = function() { // Fill collection and get split vector for 1MB maxChunkSize - numDocs = 2100; - for (i = 1; i < numDocs; i++) { - f.save({x: 1, y: filler}); - } - - for (i = 1; i < 10; i++) { - f.save({x: 2, y: filler}); - } + bulkInsertDocsFixedX(f, 2099, filler, 1); + bulkInsertDocsFixedX(f, 9, filler, 2); res = db.runCommand( {splitVector: "test.jstests_splitvector", keyPattern: {x: 1}, maxChunkSize: 1}); @@ -214,19 +220,9 @@ resetCollection(); f.ensureIndex({x: 1}); var case8 = function() { - for (i = 1; i < 10; i++) { - f.save({x: 1, y: filler}); - } - - numDocs = 2100; - for (i = 1; i < numDocs; i++) { - f.save({x: 2, y: filler}); - } - - for (i = 1; i < 10; i++) { - f.save({x: 3, y: filler}); - } - + bulkInsertDocsFixedX(f, 9, filler, 1); + bulkInsertDocsFixedX(f, 2099, filler, 2); + bulkInsertDocsFixedX(f, 9, filler, 3); res = db.runCommand( {splitVector: "test.jstests_splitvector", keyPattern: {x: 1}, maxChunkSize: 1}); |