summaryrefslogtreecommitdiff
path: root/jstests/sharding/findandmodify1.js
diff options
context:
space:
mode:
authorAlberto Lerner <alerner@10gen.com>2010-07-20 15:30:15 -0400
committerAlberto Lerner <alerner@10gen.com>2010-07-20 15:30:15 -0400
commitd24fe4ca576ff6b744f179bf10c89068cb5dcda0 (patch)
tree7dee7df441c0af6f4709b07183c9dadef47a1d55 /jstests/sharding/findandmodify1.js
parent4760c024572eda0bba7e456084d099fa9254b74e (diff)
downloadmongo-d24fe4ca576ff6b744f179bf10c89068cb5dcda0.tar.gz
SERVER-1304 Avoid interference from the Balancer
Diffstat (limited to 'jstests/sharding/findandmodify1.js')
-rw-r--r--jstests/sharding/findandmodify1.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/jstests/sharding/findandmodify1.js b/jstests/sharding/findandmodify1.js
index d7666861356..cf21b11a408 100644
--- a/jstests/sharding/findandmodify1.js
+++ b/jstests/sharding/findandmodify1.js
@@ -1,25 +1,34 @@
-s = new ShardingTest( "find_and_modify_sharded" , 2 );
+s = new ShardingTest( "find_and_modify_sharded" , 2 , 2);
s.adminCommand( { enablesharding : "test" } );
db = s.getDB( "test" );
primary = s.getServer( "test" ).getDB( "test" );
-seconday = s.getOther( primary ).getDB( "test" );
+secondary = s.getOther( primary ).getDB( "test" );
numObjs = 20;
s.adminCommand( { shardcollection : "test.stuff" , key : {_id:1} } );
+// pre-split the collection so to avoid interference from balancer
+s.adminCommand( { split: "test.stuff" , middle : { _id : numObjs/2 } } );
+s.adminCommand( { movechunk : "test.stuff" , find : { _id : numObjs/2 } , to : secondary.getMongo().name } ) ;
+
for (var i=0; i < numObjs; i++){
db.stuff.insert({_id: i});
}
+db.getLastError()
-for (var i=0; i < numObjs; i+=2){
+// put two docs in each chunk (avoid the split in 0, since there are no docs less than 0)
+for (var i=2; i < numObjs; i+=2){
+ if (i == numObjs/2)
+ continue;
s.adminCommand( { split: "test.stuff" , middle : {_id: i} } );
}
-for (var i=0; i < numObjs; i+=4){
- s.adminCommand( { movechunk : "test.stuff" , find : {_id: i} , to : seconday.getMongo().name } );
-}
+s.printChunks();
+assert.eq( numObjs/2, s.config.chunks.count(), "split failed" );
+assert.eq( numObjs/4, s.config.chunks.count({ shard: "shard0" }) );
+assert.eq( numObjs/4, s.config.chunks.count({ shard: "shard1" }) );
// update
for (var i=0; i < numObjs; i++){