summaryrefslogtreecommitdiff
path: root/jstests/sharding/presplit.js
diff options
context:
space:
mode:
authorAlberto Lerner <alerner@10gen.com>2010-07-14 13:58:14 -0400
committerAlberto Lerner <alerner@10gen.com>2010-07-14 13:58:14 -0400
commit9891a1d54596d7910d25279bd55ed413394dd263 (patch)
tree3a302173ba64fc41783796449982d0bfb0b837d3 /jstests/sharding/presplit.js
parent00d085ca50c180ce6f7545c8a4e2c6a5ea02b141 (diff)
downloadmongo-9891a1d54596d7910d25279bd55ed413394dd263.tar.gz
SERVER-1185 split->multi-split and testing
Diffstat (limited to 'jstests/sharding/presplit.js')
-rw-r--r--jstests/sharding/presplit.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/jstests/sharding/presplit.js b/jstests/sharding/presplit.js
new file mode 100644
index 00000000000..68154923ae4
--- /dev/null
+++ b/jstests/sharding/presplit.js
@@ -0,0 +1,37 @@
+// presplit.js
+
+// Starts a new sharding environment limiting the chunksize to 1MB.
+s = new ShardingTest( "presplit" , 2 , 2 , 1 , { chunksize : 1 } );
+
+// Insert enough data in 'test.foo' to fill several chunks, if it was sharded.
+bigString = "";
+while ( bigString.length < 10000 ){
+ bigString += "asdasdasdasdadasdasdasdasdasdasdasdasda";
+}
+
+db = s.getDB( "test" );
+inserted = 0;
+num = 0;
+while ( inserted < ( 20 * 1024 * 1024 ) ){
+ db.foo.insert( { _id : num++ , s : bigString } );
+ inserted += bigString.length;
+}
+db.getLastError();
+
+// Make sure that there's only one chunk holding all the data.
+s.printChunks();
+primary = s.getServer( "test" ).getDB( "test" );
+assert.eq( 0 , s.config.chunks.count() , "single chunk assertion" );
+assert.eq( num , primary.foo.count() );
+
+// Turn on sharding on the 'test.foo' collection
+s.adminCommand( { enablesharding : "test" } );
+s.adminCommand( { shardcollection : "test.foo" , key : { _id : 1 } } );
+
+// Make sure the collection's original chunk got split
+s.printChunks();
+assert.lt( 20 , s.config.chunks.count() , "many chunks assertion" );
+assert.eq( num , primary.foo.count() );
+
+s.printChangeLog();
+s.stop(); \ No newline at end of file