MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да дефинирам диапазон на шардинг за всеки шард в Mongo?

Можеш. Възможно е предварително разделяне на парчета ръчно, това е описано тук:http://www. mongodb.org/display/DOCS/Splitting+Chunks

Помислете внимателно как разделяте вашите парчета. Ако го направите зле, можете да получите много проблеми с производителността, но ако знаете достатъчно за ключовете си, можете да спечелите много.

Ако го направите, вероятно искате да изключите балансира:

> use config
> db.settings.update({_id: "balancer"}, {$set: {stopped: true}}, true);

(това е описано тук:http://www.mongodb.org/display/DOCS /Sharding+Administration )

Това е пример за това как можете да го направите. В зависимост от това какво точно искате да направите, ще трябва да го модифицирате (предполагам, че вашият шард ключ не е с име x , например и диапазонът ви не е от -1000 до 2000).

> use admin
> db.runCommand({split: "my_db.my_coll", middle: {x: 0}})
> db.runCommand({split: "my_db.my_coll", middle: {x: 1000}})
> db.runCommand({movechunk: "my_db.my_coll", find: {x:   -1}, to: "shard_1_name"})
> db.runCommand({movechunk: "my_db.my_coll", find: {x:    0}, to: "shard_2_name"})
> db.runCommand({movechunk: "my_db.my_coll", find: {x: 1000}, to: "shard_3_name"})

split командите създават парчетата. Всяка команда разделя частта, съдържаща средната стойност, на две, така че първата разделя частта, съдържаща min_value -> max_value в min_value -> 0 и 0 -> max_value . След това втората команда разделя парчето, съдържащо 1000, второто парче, създадено от предишната команда, на две нови парчета. След тази команда имате три части:

  • min_value -> 0
  • 0 -> 1000
  • 1000 -> max_value

Следните три команди преместват тези парчета в отделни фрагменти. В документите се казва, че командата ще премести частта, съдържаща стойността в find , така че избрах три стойности, за които знам, че са в различни части, и ги използвах (има символ в BSON за min_key и max_key , но не съм сигурен как да го използвам правилно в този контекст).

Прочетете и тази страница http://www.mongodb.org/display/DOCS/Moving +Чънкове




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изпълним addToSet с официалния драйвер на Go?

  2. Как да изчислим разликата в времевата марка в mongodb (в часове)?

  3. Как да управлявате шаблони за конфигурация за вашите бази данни с ClusterControl

  4. Как мога да извлека datetiime от mongodb? Чрез сравняване на данните с jDateChosser Java

  5. Игнориране на свойства в съставно свойство с BsonIgnore