summaryrefslogtreecommitdiff
path: root/jstests/core/splitvector.js
diff options
context:
space:
mode:
authorJack Mulrow <jack.mulrow@mongodb.com>2018-03-16 15:40:55 -0400
committerJack Mulrow <jack.mulrow@mongodb.com>2018-03-20 10:00:20 -0400
commit2ff63660cc0aff0dd54e84dcf4a346b848bf8213 (patch)
treeb133535705b1e7170ba49903deb1ddc3e6f43bff /jstests/core/splitvector.js
parentbe85d6ca6905ec8d5215c5b25a41d73dd47696f6 (diff)
downloadmongo-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.js62
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});