diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-14 14:26:38 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-14 14:26:38 -0300 |
| commit | 294bc6ecabf14c09c9bc8644704921dcf97cb44e (patch) | |
| tree | 279b1e0bab53901a1647ac63c1c724f0f789a663 /jstests/sharding/zone_changes_hashed.js | |
| parent | 70be7c27a251621187a1de533462ae2bb1e3bd39 (diff) | |
| parent | 1e917fd798aa25b7066d4b414b51184f13d5a092 (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.js | 26 |
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), |
