summaryrefslogtreecommitdiff
path: root/jstests/sharding/zone_changes_hashed.js
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-14 14:26:38 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-14 14:26:38 -0300
commit294bc6ecabf14c09c9bc8644704921dcf97cb44e (patch)
tree279b1e0bab53901a1647ac63c1c724f0f789a663 /jstests/sharding/zone_changes_hashed.js
parent70be7c27a251621187a1de533462ae2bb1e3bd39 (diff)
parent1e917fd798aa25b7066d4b414b51184f13d5a092 (diff)
Update upstream source from tag 'upstream/6.0.10'debian/6.0.10-1
Update to upstream version '6.0.10' with Debian dir 2d176fa254eee97b139f712fec5709641335a8c3
Diffstat (limited to 'jstests/sharding/zone_changes_hashed.js')
-rw-r--r--jstests/sharding/zone_changes_hashed.js26
1 files changed, 21 insertions, 5 deletions
diff --git a/jstests/sharding/zone_changes_hashed.js b/jstests/sharding/zone_changes_hashed.js
index 83265fac92f..5d9323c6f5d 100644
--- a/jstests/sharding/zone_changes_hashed.js
+++ b/jstests/sharding/zone_changes_hashed.js
@@ -1,9 +1,14 @@
/**
* Test that chunks and documents are moved correctly after zone changes.
+ *
+ * * @tags: [
+ * requires_fcv_60,
+ * ]
*/
(function() {
'use strict';
+load("jstests/libs/feature_flag_util.js");
load("jstests/sharding/libs/zone_changes_util.js");
load("jstests/sharding/libs/find_chunks_util.js");
@@ -47,7 +52,7 @@ function findHighestChunkBounds(chunkBounds) {
return highestBounds;
}
-let st = new ShardingTest({shards: 3});
+const st = new ShardingTest({shards: 3, other: {chunkSize: 1, enableAutoSplitter: false}});
let primaryShard = st.shard0;
let dbName = "test";
let testDB = st.s.getDB(dbName);
@@ -56,8 +61,8 @@ let coll = testDB.hashed;
let ns = coll.getFullName();
let shardKey = {x: "hashed"};
-assert.commandWorked(st.s.adminCommand({enableSharding: dbName}));
-st.ensurePrimaryShard(dbName, primaryShard.shardName);
+assert.commandWorked(
+ st.s.adminCommand({enableSharding: dbName, primaryShard: primaryShard.shardName}));
jsTest.log(
"Shard the collection. The command creates two chunks on each of the shards by default.");
@@ -66,7 +71,15 @@ let chunkDocs = findChunksUtil.findChunksByNs(configDB, ns).sort({min: 1}).toArr
let shardChunkBounds = chunkBoundsUtil.findShardChunkBounds(chunkDocs);
jsTest.log("Insert docs (one for each chunk) and check that they end up on the right shards.");
-let docs = [{x: -25}, {x: -18}, {x: -5}, {x: -1}, {x: 5}, {x: 10}];
+const bigString = 'X'.repeat(1024 * 1024); // 1MB
+let docs = [
+ {x: -25, s: bigString},
+ {x: -18, s: bigString},
+ {x: -5, s: bigString},
+ {x: -1, s: bigString},
+ {x: 5, s: bigString},
+ {x: 10, s: bigString}
+];
assert.commandWorked(coll.insert(docs));
let docChunkBounds = [];
@@ -126,7 +139,10 @@ shardTags = {
};
assertShardTags(configDB, shardTags);
-let numChunksToMove = zoneChunkBounds["zoneB"].length / 2;
+const balanceAccordingToDataSize = FeatureFlagUtil.isEnabled(
+ st.configRS.getPrimary().getDB('admin'), "BalanceAccordingToDataSize");
+let numChunksToMove = balanceAccordingToDataSize ? zoneChunkBounds["zoneB"].length - 1
+ : zoneChunkBounds["zoneB"].length / 2;
runBalancer(st, numChunksToMove);
shardChunkBounds = {
[st.shard0.shardName]: zoneChunkBounds["zoneB"].slice(0, numChunksToMove),