Last active
August 29, 2015 14:19
-
-
Save ObjectIsAdvantag/4e1cf932ddd326c27592 to your computer and use it in GitHub Desktop.
M202 week5 sample
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Here is one possible solution to the Game of Thrones problem we posed. Please note that we are passing a configuration document to ShardingTest. This will ensure the mongods are created using small files and without preallocating data files and journal files. It should eliminate problems with disk space that some students have reported when using ShardingTest. | |
config = { d0 : { smallfiles : "", noprealloc : "", nopreallocj : ""}, d1 : { smallfiles : "", noprealloc : "", nopreallocj : "" }, d2 : { smallfiles : "", noprealloc : "", nopreallocj : ""}}; | |
cluster = new ShardingTest( { shards : config } ); | |
// shard db | |
sh.enableSharding("houses"); | |
// shard collections | |
sh.shardCollection("houses.stark", {dire_wolves_owned:1}); | |
sh.shardCollection("houses.lannister", {debt_owed:1}); | |
sh.shardCollection("houses.targaryen", {followers:1}); | |
// Insert sample data | |
use houses; | |
var bulk = db.stark.initializeUnorderedBulkOp(); | |
for (var i=0; i < 100000; i++) { bulk.insert({dire_wolves_owned: Math.random()}); } | |
bulk.execute(); | |
bulk = db.lannister.initializeUnorderedBulkOp(); | |
for (var i=0; i < 100000; i++) { bulk.insert({debt_owed: Math.random()}); } | |
bulk.execute(); | |
bulk = db.targaryen.initializeUnorderedBulkOp(); | |
for (var i=0; i < 100000; i++) { bulk.insert({followers: Math.random()}); } | |
bulk.execute(); | |
sh.addShardTag("shard0000", "sta"); | |
sh.addShardTag("shard0001", "lan"); | |
sh.addShardTag("shard0002", "tar"); | |
sh.addTagRange("houses.stark", {dire_wolves_owned:MinKey}, {dire_wolves_owned:MaxKey}, "sta"); | |
sh.addTagRange("houses.lannister", {debt_owed:MinKey}, {debt_owed:MaxKey}, "lan"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment