summaryrefslogtreecommitdiff
path: root/jstests/sharding/sharding_balance1.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sharding/sharding_balance1.js')
-rw-r--r--jstests/sharding/sharding_balance1.js125
1 files changed, 67 insertions, 58 deletions
diff --git a/jstests/sharding/sharding_balance1.js b/jstests/sharding/sharding_balance1.js
index 57df8648559..2d45e829492 100644
--- a/jstests/sharding/sharding_balance1.js
+++ b/jstests/sharding/sharding_balance1.js
@@ -1,62 +1,71 @@
(function() {
-var s = new ShardingTest({ name: "slow_sharding_balance1",
- shards: 2,
- mongos: 1,
- other: { chunkSize: 1, enableBalancer : true } });
-
-s.adminCommand( { enablesharding : "test" } );
-s.ensurePrimaryShard('test', 'shard0001');
-
-s.config.settings.find().forEach( printjson );
-
-db = s.getDB( "test" );
-
-bigString = "";
-while ( bigString.length < 10000 )
- bigString += "asdasdasdasdadasdasdasdasdasdasdasdasda";
-
-inserted = 0;
-num = 0;
-var bulk = db.foo.initializeUnorderedBulkOp();
-while ( inserted < ( 20 * 1024 * 1024 ) ){
- bulk.insert({ _id: num++, s: bigString });
- inserted += bigString.length;
-}
-assert.writeOK(bulk.execute());
-
-s.adminCommand( { shardcollection : "test.foo" , key : { _id : 1 } } );
-assert.lt( 20 , s.config.chunks.count() , "setup2" );
-
-function diff1(){
- var x = s.chunkCounts( "foo" );
- printjson( x );
- return Math.max( x.shard0000 , x.shard0001 ) - Math.min( x.shard0000 , x.shard0001 );
-}
-
-function sum(){
- var x = s.chunkCounts( "foo" );
- return x.shard0000 + x.shard0001;
-}
-
-assert.lt( 20 , diff1() , "big differential here" );
-print( diff1() );
-
-assert.soon( function(){
- var d = diff1();
- return d < 5;
-// Make sure there's enough time here, since balancing can sleep for 15s or so between balances.
-} , "balance didn't happen" , 1000 * 60 * 5 , 5000 );
-
-var chunkCount = sum();
-s.adminCommand( { removeshard: "shard0000" } );
-
-assert.soon( function(){
- printjson(s.chunkCounts( "foo" ));
- s.config.shards.find().forEach(function(z){printjson(z);});
- return chunkCount == s.config.chunks.count({shard: "shard0001"});
-} , "removeshard didn't happen" , 1000 * 60 * 3 , 5000 );
-
-s.stop();
+ var s = new ShardingTest({
+ name: "slow_sharding_balance1",
+ shards: 2,
+ mongos: 1,
+ other: {chunkSize: 1, enableBalancer: true}
+ });
+
+ s.adminCommand({enablesharding: "test"});
+ s.ensurePrimaryShard('test', 'shard0001');
+
+ s.config.settings.find().forEach(printjson);
+
+ db = s.getDB("test");
+
+ bigString = "";
+ while (bigString.length < 10000)
+ bigString += "asdasdasdasdadasdasdasdasdasdasdasdasda";
+
+ inserted = 0;
+ num = 0;
+ var bulk = db.foo.initializeUnorderedBulkOp();
+ while (inserted < (20 * 1024 * 1024)) {
+ bulk.insert({_id: num++, s: bigString});
+ inserted += bigString.length;
+ }
+ assert.writeOK(bulk.execute());
+
+ s.adminCommand({shardcollection: "test.foo", key: {_id: 1}});
+ assert.lt(20, s.config.chunks.count(), "setup2");
+
+ function diff1() {
+ var x = s.chunkCounts("foo");
+ printjson(x);
+ return Math.max(x.shard0000, x.shard0001) - Math.min(x.shard0000, x.shard0001);
+ }
+
+ function sum() {
+ var x = s.chunkCounts("foo");
+ return x.shard0000 + x.shard0001;
+ }
+
+ assert.lt(20, diff1(), "big differential here");
+ print(diff1());
+
+ assert.soon(
+ function() {
+ var d = diff1();
+ return d < 5;
+ // Make sure there's enough time here, since balancing can sleep for 15s or so between
+ // balances.
+ },
+ "balance didn't happen",
+ 1000 * 60 * 5,
+ 5000);
+
+ var chunkCount = sum();
+ s.adminCommand({removeshard: "shard0000"});
+
+ assert.soon(function() {
+ printjson(s.chunkCounts("foo"));
+ s.config.shards.find().forEach(function(z) {
+ printjson(z);
+ });
+ return chunkCount == s.config.chunks.count({shard: "shard0001"});
+ }, "removeshard didn't happen", 1000 * 60 * 3, 5000);
+
+ s.stop();
})();