summaryrefslogtreecommitdiff
path: root/jstests/sharding
diff options
context:
space:
mode:
authorGreg McKeon <greg.mckeon@mongodb.com>2017-09-27 14:32:40 -0400
committerGreg McKeon <greg.mckeon@mongodb.com>2017-09-27 14:32:40 -0400
commit522f7f7d36a4a71059dd2d5219c2a0f074dfd0a1 (patch)
tree89a030c9bfca2b0cab00dbd5e2051dc550d43cd1 /jstests/sharding
parent790cd20518f4aeef78780293b15842c32e7e4b55 (diff)
downloadmongo-522f7f7d36a4a71059dd2d5219c2a0f074dfd0a1.tar.gz
Revert "SERVER-30894 Implement command for transferring session information during migration"
This reverts commit 85d9721c00d7020af78fe60453f8362380fe697d.
Diffstat (limited to 'jstests/sharding')
-rw-r--r--jstests/sharding/move_chunk_find_and_modify_with_write_retryability.js119
-rw-r--r--jstests/sharding/move_chunk_insert_with_write_retryability.js34
-rw-r--r--jstests/sharding/move_chunk_remove_with_write_retryability.js41
-rw-r--r--jstests/sharding/move_chunk_update_with_write_retryability.js44
-rw-r--r--jstests/sharding/move_chunk_with_session_helper.js49
-rw-r--r--jstests/sharding/write_transactions_during_migration.js84
6 files changed, 0 insertions, 371 deletions
diff --git a/jstests/sharding/move_chunk_find_and_modify_with_write_retryability.js b/jstests/sharding/move_chunk_find_and_modify_with_write_retryability.js
deleted file mode 100644
index c06a4cfdc9c..00000000000
--- a/jstests/sharding/move_chunk_find_and_modify_with_write_retryability.js
+++ /dev/null
@@ -1,119 +0,0 @@
-load("jstests/sharding/move_chunk_with_session_helper.js");
-
-(function() {
-
- "use strict";
-
- var checkFindAndModifyResult = function(expected, toCheck) {
- assert.eq(expected.ok, toCheck.ok);
- assert.eq(expected.value, toCheck.value);
-
- // TODO: SERVER-30532: after adding upserted, just compare the entire lastErrorObject
- var expectedLE = expected.lastErrorObject;
- var toCheckLE = toCheck.lastErrorObject;
-
- assert.neq(null, toCheckLE);
- assert.eq(expected.updatedExisting, toCheck.updatedExisting);
- assert.eq(expected.n, toCheck.n);
- };
-
- var lsid = UUID();
- var tests = [
- {
- coll: 'findAndMod-upsert',
- cmd: {
- findAndModify: 'findAndMod-upsert',
- query: {x: 60},
- update: {$inc: {y: 1}},
- new: true,
- upsert: true,
- lsid: {id: lsid},
- txnNumber: NumberLong(37),
- },
- setup: function(coll) {},
- checkRetryResult: function(result, retryResult) {
- checkFindAndModifyResult(result, retryResult);
- },
- checkDocuments: function(coll) {
- assert.eq(1, coll.findOne({x: 60}).y);
- },
- },
- {
- coll: 'findAndMod-update-preImage',
- cmd: {
- findAndModify: 'findAndMod-update-preImage',
- query: {x: 60},
- update: {$inc: {y: 1}},
- new: false,
- upsert: false,
- lsid: {id: lsid},
- txnNumber: NumberLong(38),
- },
- setup: function(coll) {
- coll.insert({x: 60});
- },
- checkRetryResult: function(result, retryResult) {
- checkFindAndModifyResult(result, retryResult);
- },
- checkDocuments: function(coll) {
- assert.eq(1, coll.findOne({x: 60}).y);
- },
- },
- {
- coll: 'findAndMod-update-postImage',
- cmd: {
- findAndModify: 'findAndMod-update-postImage',
- query: {x: 60},
- update: {$inc: {y: 1}},
- new: true,
- upsert: false,
- lsid: {id: lsid},
- txnNumber: NumberLong(39),
- },
- setup: function(coll) {
- coll.insert({x: 60});
- },
- checkRetryResult: function(result, retryResult) {
- checkFindAndModifyResult(result, retryResult);
- },
- checkDocuments: function(coll) {
- assert.eq(1, coll.findOne({x: 60}).y);
- },
- },
- {
- coll: 'findAndMod-delete',
- cmd: {
- findAndModify: 'findAndMod-delete',
- query: {x: 10},
- remove: true,
- lsid: {id: lsid},
- txnNumber: NumberLong(40),
- },
- setup: function(coll) {
- var bulk = coll.initializeUnorderedBulkOp();
- for (let i = 0; i < 10; i++) {
- bulk.insert({x: 10});
- }
- assert.writeOK(bulk.execute());
-
- },
- checkRetryResult: function(result, retryResult) {
- checkFindAndModifyResult(result, retryResult);
- },
- checkDocuments: function(coll) {
- assert.eq(9, coll.find({x: 10}).itcount());
- },
- },
- ];
-
- var st = new ShardingTest({shards: {rs0: {nodes: 2}, rs1: {nodes: 2}}});
- assert.commandWorked(st.s.adminCommand({enableSharding: 'test'}));
- st.ensurePrimaryShard('test', st.shard0.shardName);
-
- tests.forEach(function(test) {
- testMoveChunkWithSession(
- st, test.coll, test.cmd, test.setup, test.checkRetryResult, test.checkDocuments);
- });
-
- st.stop();
-})();
diff --git a/jstests/sharding/move_chunk_insert_with_write_retryability.js b/jstests/sharding/move_chunk_insert_with_write_retryability.js
deleted file mode 100644
index bdbdef47000..00000000000
--- a/jstests/sharding/move_chunk_insert_with_write_retryability.js
+++ /dev/null
@@ -1,34 +0,0 @@
-load("jstests/sharding/move_chunk_with_session_helper.js");
-
-(function() {
-
- "use strict";
-
- var st = new ShardingTest({shards: {rs0: {nodes: 2}, rs1: {nodes: 2}}});
- assert.commandWorked(st.s.adminCommand({enableSharding: 'test'}));
- st.ensurePrimaryShard('test', st.shard0.shardName);
-
- var coll = 'insert';
- var cmd = {
- insert: coll,
- documents: [{x: 10}, {x: 30}],
- ordered: false,
- lsid: {id: UUID()},
- txnNumber: NumberLong(34),
- };
- var setup = function() {};
- var checkRetryResult = function(result, retryResult) {
- assert.eq(result.ok, retryResult.ok);
- assert.eq(result.n, retryResult.n);
- assert.eq(result.writeErrors, retryResult.writeErrors);
- assert.eq(result.writeConcernErrors, retryResult.writeConcernErrors);
- };
- var checkDocuments = function(coll) {
- assert.eq(1, coll.find({x: 10}).itcount());
- assert.eq(1, coll.find({x: 30}).itcount());
- };
-
- testMoveChunkWithSession(st, coll, cmd, setup, checkRetryResult, checkDocuments);
-
- st.stop();
-})();
diff --git a/jstests/sharding/move_chunk_remove_with_write_retryability.js b/jstests/sharding/move_chunk_remove_with_write_retryability.js
deleted file mode 100644
index 64d1f5d2dee..00000000000
--- a/jstests/sharding/move_chunk_remove_with_write_retryability.js
+++ /dev/null
@@ -1,41 +0,0 @@
-load("jstests/sharding/move_chunk_with_session_helper.js");
-
-(function() {
-
- "use strict";
-
- var st = new ShardingTest({shards: {rs0: {nodes: 2}, rs1: {nodes: 2}}});
- assert.commandWorked(st.s.adminCommand({enableSharding: 'test'}));
- st.ensurePrimaryShard('test', st.shard0.shardName);
-
- var coll = 'delete';
- var cmd = {
- delete: coll,
- deletes: [{q: {x: 10}, limit: 1}, {q: {x: 20}, limit: 1}],
- ordered: false,
- lsid: {id: UUID()},
- txnNumber: NumberLong(36),
- };
- var setup = function(coll) {
- var bulk = coll.initializeUnorderedBulkOp();
- for (let i = 0; i < 10; i++) {
- bulk.insert({x: 10});
- bulk.insert({x: 20});
- }
- assert.writeOK(bulk.execute());
- };
- var checkRetryResult = function(result, retryResult) {
- assert.eq(result.ok, retryResult.ok);
- assert.eq(result.n, retryResult.n);
- assert.eq(result.writeErrors, retryResult.writeErrors);
- assert.eq(result.writeConcernErrors, retryResult.writeConcernErrors);
- };
- var checkDocuments = function(coll) {
- assert.eq(9, coll.find({x: 10}).itcount());
- assert.eq(9, coll.find({x: 20}).itcount());
- };
-
- testMoveChunkWithSession(st, coll, cmd, setup, checkRetryResult, checkDocuments);
-
- st.stop();
-})();
diff --git a/jstests/sharding/move_chunk_update_with_write_retryability.js b/jstests/sharding/move_chunk_update_with_write_retryability.js
deleted file mode 100644
index 1f23db58782..00000000000
--- a/jstests/sharding/move_chunk_update_with_write_retryability.js
+++ /dev/null
@@ -1,44 +0,0 @@
-load("jstests/sharding/move_chunk_with_session_helper.js");
-
-(function() {
-
- "use strict";
-
- var st = new ShardingTest({shards: {rs0: {nodes: 2}, rs1: {nodes: 2}}});
- assert.commandWorked(st.s.adminCommand({enableSharding: 'test'}));
- st.ensurePrimaryShard('test', st.shard0.shardName);
-
- var coll = 'update';
- var cmd = {
- update: 'update',
- updates: [
- {q: {x: 10}, u: {$inc: {a: 1}}}, // in place
- {q: {x: 20}, u: {$inc: {b: 1}}, upsert: true},
- {q: {x: 30}, u: {x: 30, z: 1}} // replacement
- ],
- ordered: false,
- lsid: {id: UUID()},
- txnNumber: NumberLong(35),
- };
- var setup = function(coll) {
- coll.insert({x: 10});
- coll.insert({x: 30});
- };
- var checkRetryResult = function(result, retryResult) {
- assert.eq(result.ok, retryResult.ok);
- assert.eq(result.n, retryResult.n);
- assert.eq(result.nModified, retryResult.nModified);
- assert.eq(result.upserted, retryResult.upserted);
- assert.eq(result.writeErrors, retryResult.writeErrors);
- assert.eq(result.writeConcernErrors, retryResult.writeConcernErrors);
- };
- var checkDocuments = function(coll) {
- assert.eq(1, coll.findOne({x: 10}).a);
- assert.eq(1, coll.findOne({x: 20}).b);
- assert.eq(1, coll.findOne({x: 30}).z);
- };
-
- testMoveChunkWithSession(st, coll, cmd, setup, checkRetryResult, checkDocuments);
-
- st.stop();
-})();
diff --git a/jstests/sharding/move_chunk_with_session_helper.js b/jstests/sharding/move_chunk_with_session_helper.js
deleted file mode 100644
index a320af844ca..00000000000
--- a/jstests/sharding/move_chunk_with_session_helper.js
+++ /dev/null
@@ -1,49 +0,0 @@
-load("jstests/replsets/rslib.js");
-
-/**
- * High level test scenario:
- * 1. Shard collection.
- * 2. Perform writes.
- * 3. Migrate only chunk to other shard.
- * 4. Retry writes.
- * 5. Step down primary and wait for new primary.
- * 6. Retry writes.
- * 7. Migrate only chunk back to original shard.
- * 8. Retry writes.
- */
-var testMoveChunkWithSession = function(
- st, collName, cmdObj, setupFunc, checkRetryResultFunc, checkDocumentsFunc) {
- var ns = 'test.' + collName;
- var testDB = st.s.getDB('test');
- var coll = testDB.getCollection(collName);
-
- assert.commandWorked(st.s.adminCommand({shardCollection: ns, key: {x: 1}}));
-
- setupFunc(coll);
- var result = assert.commandWorked(testDB.runCommand(cmdObj));
-
- assert.commandWorked(st.s.adminCommand({moveChunk: ns, find: {x: 0}, to: st.shard1.shardName}));
-
- checkRetryResultFunc(result, assert.commandWorked(testDB.runCommand(cmdObj)));
- checkDocumentsFunc(coll);
-
- try {
- st.rs1.getPrimary().adminCommand({replSetStepDown: 60, secondaryCatchUpPeriodSecs: 30});
- } catch (excep) {
- print('Expected exception due to step down: ' + tojson(excep));
- }
-
- st.rs1.awaitNodesAgreeOnPrimary();
- awaitRSClientHosts(st.s, {host: st.rs1.getPrimary().host}, {ok: true, ismaster: true});
-
- checkRetryResultFunc(result, assert.commandWorked(testDB.runCommand(cmdObj)));
- checkDocumentsFunc(coll);
-
- // Make sure that the other shard knows about the latest primary.
- awaitRSClientHosts(
- st.rs0.getPrimary(), {host: st.rs1.getPrimary().host}, {ok: true, ismaster: true});
- assert.commandWorked(st.s.adminCommand({moveChunk: ns, find: {x: 0}, to: st.shard0.shardName}));
-
- checkRetryResultFunc(result, assert.commandWorked(testDB.runCommand(cmdObj)));
- checkDocumentsFunc(coll);
-};
diff --git a/jstests/sharding/write_transactions_during_migration.js b/jstests/sharding/write_transactions_during_migration.js
deleted file mode 100644
index 7c52628e05e..00000000000
--- a/jstests/sharding/write_transactions_during_migration.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Tests that session information are properly transferred to the destination shard while
- * new writes are being sent to the source shard.
- */
-
-load('./jstests/libs/chunk_manipulation_util.js');
-
-/**
- * Test outline:
- * 1. Pause migration.
- * 2. Perform writes and allow it to be capture via OpObserver
- * 3. Unpause migration.
- * 4. Retry writes and confirm that writes are not duplicated.
- */
-(function() {
-
- "use strict";
-
- var staticMongod = MongoRunner.runMongod({}); // For startParallelOps.
-
- var st = new ShardingTest({shards: {rs0: {nodes: 1}, rs1: {nodes: 1}}});
- st.adminCommand({enableSharding: 'test'});
- st.ensurePrimaryShard('test', st.shard0.shardName);
- st.adminCommand({shardCollection: 'test.user', key: {x: 1}});
-
- pauseMoveChunkAtStep(st.shard0, moveChunkStepNames.reachedSteadyState);
- var joinMoveChunk =
- moveChunkParallel(staticMongod, st.s.host, {x: 0}, null, 'test.user', st.shard1.shardName);
-
- var insertCmd = {
- insert: 'user',
- documents: [{x: 10}, {x: 30}],
- ordered: false,
- lsid: {id: UUID()},
- txnNumber: NumberLong(34),
- };
-
- var testDB = st.getDB('test');
- var insertResult = assert.commandWorked(testDB.runCommand(insertCmd));
-
- var findAndModCmd = {
- findAndModify: 'user',
- query: {x: 30},
- update: {$inc: {y: 1}},
- new: true,
- upsert: true,
- lsid: {id: UUID()},
- txnNumber: NumberLong(37),
- };
-
- var findAndModifyResult = assert.commandWorked(testDB.runCommand(findAndModCmd));
-
- unpauseMoveChunkAtStep(st.shard0, moveChunkStepNames.reachedSteadyState);
- joinMoveChunk();
-
- var insertRetryResult = assert.commandWorked(testDB.runCommand(insertCmd));
-
- assert.eq(insertResult.ok, insertRetryResult.ok);
- assert.eq(insertResult.n, insertRetryResult.n);
- assert.eq(insertResult.writeErrors, insertRetryResult.writeErrors);
- assert.eq(insertResult.writeConcernErrors, insertRetryResult.writeConcernErrors);
-
- assert.eq(1, testDB.user.find({x: 10}).itcount());
- assert.eq(1, testDB.user.find({x: 30}).itcount());
-
- var findAndModifyRetryResult = assert.commandWorked(testDB.runCommand(findAndModCmd));
-
- assert.eq(findAndModifyResult.ok, findAndModifyRetryResult.ok);
- assert.eq(findAndModifyResult.value, findAndModifyRetryResult.value);
-
- // TODO: SERVER-30532: after adding upserted, just compare the entire lastErrorObject
- var expectedLE = findAndModifyResult.lastErrorObject;
- var toCheckLE = findAndModifyRetryResult.lastErrorObject;
-
- assert.neq(null, toCheckLE);
- assert.eq(findAndModifyResult.updatedExisting, findAndModifyRetryResult.updatedExisting);
- assert.eq(findAndModifyResult.n, findAndModifyRetryResult.n);
-
- assert.eq(1, testDB.user.findOne({x: 30}).y);
-
- st.stop();
-
- MongoRunner.stopMongod(staticMongod);
-})();