diff options
author | Jonathan Lee <jonathan.lee@mongodb.com> | 2021-10-06 20:23:09 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-07 13:48:05 +0000 |
commit | 932f1c7180a0bdae321bdccefaecb2bf15053761 (patch) | |
tree | 75f71812abc74700f56198c6a7d334c0b9e0eeb4 | |
parent | 01549c7e5d425f48c5c9533d2655e20d992d9eef (diff) | |
download | mongo-932f1c7180a0bdae321bdccefaecb2bf15053761.tar.gz |
Revert "SERVER-58104 Prevent the balancer from calculating split points in sessions collection if shard key is not _id"
This reverts commit 01549c7e5d425f48c5c9533d2655e20d992d9eef.
-rw-r--r-- | jstests/sharding/balancing_sessions_collection_reshard.js | 55 | ||||
-rw-r--r-- | src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp | 7 |
2 files changed, 0 insertions, 62 deletions
diff --git a/jstests/sharding/balancing_sessions_collection_reshard.js b/jstests/sharding/balancing_sessions_collection_reshard.js deleted file mode 100644 index e5a8c3b096b..00000000000 --- a/jstests/sharding/balancing_sessions_collection_reshard.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Tests that the balancer does not split the chunks for the sessions collection - * if the shard key is not _id. - */ -(function() { - "use strict"; - - let numShards = 2; - const kMinNumChunks = 2; - const clusterName = jsTest.name(); - const st = new ShardingTest({ - name: clusterName, - shards: numShards, - other: - {configOptions: {setParameter: {minNumChunksForSessionsCollection: kMinNumChunks}}} - }); - - let waitForBalancerToRun = function() { - let lastRoundNumber = - assert.commandWorked(st.s.adminCommand({balancerStatus: 1})).numBalancerRounds; - st.startBalancer(); - - assert.soon(function() { - let res = assert.commandWorked(st.s.adminCommand({balancerStatus: 1})); - return res.mode == "full" && res.numBalancerRounds - lastRoundNumber > 1; - }); - - st.stopBalancer(); - }; - - const kSessionsNs = "config.system.sessions"; - let configDB = st.s.getDB("config"); - - jsTest.log("Verify that the sessions collection is successfully dropped."); - - assert.commandWorked(configDB.runCommand({drop: "system.sessions"})); - - jsTest.log("Verify that the sessions collection is successfully recreated and resharded."); - - assert.commandWorked(st.s.adminCommand({enableSharding: "config"})); - assert.commandWorked(st.s.adminCommand({shardCollection: kSessionsNs, key: {oldRoles: 1}})); - - jsTest.log("Verify that balancer does not fail after resharding."); - waitForBalancerToRun(); - - jsTest.log( - "Verify that there is a single chunk for the collection and the bounds are the resharded key."); - assert.eq(1, configDB.chunks.count({ns: kSessionsNs})); - - let doc = configDB.chunks.findOne({ns: kSessionsNs}); - assert(doc.min.hasOwnProperty("oldRoles")); - assert(doc.max.hasOwnProperty("oldRoles")); - - st.stop(); -}()); diff --git a/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp b/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp index 15bf7093fbf..b113735802f 100644 --- a/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp +++ b/src/mongo/db/s/balancer/balancer_chunk_selection_policy_impl.cpp @@ -234,13 +234,6 @@ void getSplitCandidatesToEnforceTagRanges(const ChunkManager* cm, void getSplitCandidatesForSessionsCollection(OperationContext* opCtx, const ChunkManager* cm, SplitCandidatesBuffer* splitCandidates) { - // Do not compute split points if shard key is not _id, - // since the split points depend on _id.id. - const auto& keyPattern = cm->getShardKeyPattern().getKeyPattern(); - if (!KeyPattern::isIdKeyPattern(keyPattern.toBSON())) { - return; - } - const auto minNumChunks = minNumChunksForSessionsCollection.load(); if (cm->numChunks() >= minNumChunks) { |