Пример шардинга mongoDB - PullRequest
       3

Пример шардинга mongoDB

3 голосов
/ 18 декабря 2011

Новичок, использующий 32-битный mongo 2.0.1 в Windows, попытался протестировать шарды следующим образом:

(4) процесса: 2 шарда + config srver + mongos w крошечный размер фрагмента

mongod.exe --shardsvr  --port 10001  --dbpath <folder1>       > shard1.log
mongod.exe --shardsvr  --port 10002  --dbpath <folder2>       > shard2.log
mongod.exe --configsvr --port 20000  --dbpath <configfolder>  > config.log
mongos.exe --configdb localhost:20000 --chunkSize 1           > mongos.log

Я запустил оболочку и установил 2 шарда:

mongos> use admin
switched to dbadmin

mongos> db.runCommand( { addshard : "localhost:10001" } );
{ "shardAdded" : "shard0000", "ok" : 1 }

mongos> db.runCommand( { addshard : "localhost:10002" } );
{ "shardAdded" : "shard0001", "ok" : 1 }

Затем я включил шардинг для тестовой базы данных (dbTest) и коллекции (cTest):

mongos> db.runCommand( { enablesharding  : "dbTest" } );
{ "ok" : 1 }

mongos> db.runCommand( { shardcollection : "dbTest.cTest", key : { Name : 1 } } );
{ "collectionssharded" : "dbTest.cTest", "ok" : 1 }

Наконец я заполнилcTest collection (индексируется по имени) с 1 000 005 образцов записей:

mongos> use dbTest
switched to db dbTest

db.cTest.drop();
db.cTest.ensureIndex({ Name : 1 });
db.cTest.save({Name: "Frank", Age:56, Job: "Accountant", State: "NY"});
db.cTest.save({Name: "Bill" , Age:23,                    State: "CA"});
db.cTest.save({Name: "Janet", Age:34, Job: "Dancer"                 });
db.cTest.save({Name: "Andy",  Age:44                                });
db.cTest.save({Name: "Zach",  Age:23, Job: "Fireman",    State: "CA"});
i=1;
while(i<=1000) 
{ 
  j=1;
  while (j<=1000) 
  { 
    db.cTest.save({Name:"Person("+i+","+j+")", Age:i+j}); 
    j = j+1
  }; 
  i=i+1; 
};

ОДНАКО ...

Похоже, что на самом деле ничего не было осквернено.В базе данных конфигурации db.chunks.count () равен нулю, и я могу видеть из размеров файлов проводника Windows, что все данные были переданы в настройку физического файла для первого сегмента, а никакие - для второго.

Может кто-нибудь заметить, что я сделал не так, а также дать несколько советов о том, как администрировать и отлаживать подобные вещи и видеть, что происходит?

Спасибо

1 Ответ

5 голосов
/ 19 декабря 2011

Как только вы "осколок коллекций", не бросайте его.Это приведет к удалению метаданных об осколочной коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...