diff options
Diffstat (limited to 'jstests/sharding/shard5.js')
-rw-r--r-- | jstests/sharding/shard5.js | 78 |
1 files changed, 40 insertions, 38 deletions
diff --git a/jstests/sharding/shard5.js b/jstests/sharding/shard5.js index c88cd355d73..c4f05d610cd 100644 --- a/jstests/sharding/shard5.js +++ b/jstests/sharding/shard5.js @@ -2,59 +2,61 @@ // tests write passthrough -s = new ShardingTest({name: "shard5", shards: 2, mongos:2}); +s = new ShardingTest({name: "shard5", shards: 2, mongos: 2}); s.stopBalancer(); s2 = s._mongos[1]; -s.adminCommand( { enablesharding : "test" } ); +s.adminCommand({enablesharding: "test"}); s.ensurePrimaryShard('test', 'shard0001'); -s.adminCommand( { shardcollection : "test.foo" , key : { num : 1 } } ); +s.adminCommand({shardcollection: "test.foo", key: {num: 1}}); if (s.configRS) { // Ensure that the second mongos will see the movePrimary s.configRS.awaitLastOpCommitted(); } -s.getDB( "test" ).foo.save( { num : 1 } ); -s.getDB( "test" ).foo.save( { num : 2 } ); -s.getDB( "test" ).foo.save( { num : 3 } ); -s.getDB( "test" ).foo.save( { num : 4 } ); -s.getDB( "test" ).foo.save( { num : 5 } ); -s.getDB( "test" ).foo.save( { num : 6 } ); -s.getDB( "test" ).foo.save( { num : 7 } ); - -assert.eq( 7 , s.getDB( "test" ).foo.find().toArray().length , "normal A" ); -assert.eq( 7 , s2.getDB( "test" ).foo.find().toArray().length , "other A" ); - -s.adminCommand( { split : "test.foo" , middle : { num : 4 } } ); -s.adminCommand( { movechunk : "test.foo", - find : { num : 3 }, - to : s.getOther( s.getPrimaryShard( "test" ) ).name, - _waitForDelete : true } ); - -assert( s._connections[0].getDB( "test" ).foo.find().toArray().length > 0 , "blah 1" ); -assert( s._connections[1].getDB( "test" ).foo.find().toArray().length > 0 , "blah 2" ); -assert.eq( 7 , s._connections[0].getDB( "test" ).foo.find().toArray().length + - s._connections[1].getDB( "test" ).foo.find().toArray().length , "blah 3" ); - -assert.eq( 7 , s.getDB( "test" ).foo.find().toArray().length , "normal B" ); -assert.eq( 7 , s2.getDB( "test" ).foo.find().toArray().length , "other B" ); - -s.adminCommand( { split : "test.foo" , middle : { num : 2 } } ); +s.getDB("test").foo.save({num: 1}); +s.getDB("test").foo.save({num: 2}); +s.getDB("test").foo.save({num: 3}); +s.getDB("test").foo.save({num: 4}); +s.getDB("test").foo.save({num: 5}); +s.getDB("test").foo.save({num: 6}); +s.getDB("test").foo.save({num: 7}); + +assert.eq(7, s.getDB("test").foo.find().toArray().length, "normal A"); +assert.eq(7, s2.getDB("test").foo.find().toArray().length, "other A"); + +s.adminCommand({split: "test.foo", middle: {num: 4}}); +s.adminCommand({ + movechunk: "test.foo", + find: {num: 3}, + to: s.getOther(s.getPrimaryShard("test")).name, + _waitForDelete: true +}); + +assert(s._connections[0].getDB("test").foo.find().toArray().length > 0, "blah 1"); +assert(s._connections[1].getDB("test").foo.find().toArray().length > 0, "blah 2"); +assert.eq(7, + s._connections[0].getDB("test").foo.find().toArray().length + + s._connections[1].getDB("test").foo.find().toArray().length, + "blah 3"); + +assert.eq(7, s.getDB("test").foo.find().toArray().length, "normal B"); +assert.eq(7, s2.getDB("test").foo.find().toArray().length, "other B"); + +s.adminCommand({split: "test.foo", middle: {num: 2}}); s.printChunks(); -print( "* A" ); - -assert.eq( 7 , s.getDB( "test" ).foo.find().toArray().length , "normal B 1" ); +print("* A"); -s2.getDB( "test" ).foo.save( { num : 2 } ); +assert.eq(7, s.getDB("test").foo.find().toArray().length, "normal B 1"); -assert.soon( - function(){ - return 8 == s2.getDB( "test" ).foo.find().toArray().length; - } , "other B 2" , 5000 , 100 ); +s2.getDB("test").foo.save({num: 2}); -assert.eq( 2 , s.onNumShards( "foo" ) , "on 2 shards" ); +assert.soon(function() { + return 8 == s2.getDB("test").foo.find().toArray().length; +}, "other B 2", 5000, 100); +assert.eq(2, s.onNumShards("foo"), "on 2 shards"); s.stop(); |