Выбор кусков MongoDB для перемещения - PullRequest
1 голос
/ 01 марта 2012

Если говорят, что у осколка 200 кусков, и пришло время переместить некоторые из этих кусков в другой осколок,

1> как Монго БД решает, какие куски перемещать?

2> Это логика перемещения в конфигурационном сервере или в mongos?

3> Как я могу влиять на алгоритм выбора чанков / управлять им таким образом, чтобы mongodb перемещал чанки в другие осколки так, чтобы он помогал распределятьмои чтения на основе шаблона доступа моих пользователей?

1 Ответ

4 голосов
/ 01 марта 2012

Движение кусков между осколками вызывается монгосами. Монгос будет перемещать куски при двух обстоятельствах. Если один осколок содержит 9 или более чанков, чем любой другой, монго запускают балансировочный раунд и перераспределяют чанки между другими осколками. В этой ситуации части с самыми низкими ключами шарда будут перемещены. Кроме того, если самый верхний чанк разделен, монго переместят чанк с более высоким ключом шарда в другой шард.

Одной из особенностей Mongo является то, что в правильно настроенном защищенном кластере фрагменты разделяются и перемещаются автоматически, так что вашему приложению не нужно знать, что оно взаимодействует с защищенной базой данных. Все происходит за кадром.

Однако можно разделить и переместить фрагменты вручную, используя команды «split» и «moveChunks». Пожалуйста, смотрите документацию по Монго для примеров использования этих команд: «Разделение осколков» http://www.mongodb.org/display/DOCS/Splitting+Shard+Chunks и «Перемещение» Куски "http://www.mongodb.org/display/DOCS/Moving+Chunks Были случаи, когда пользователи писали свои собственные настраиваемые балансировщики, привязанные к их собственным приложениям, но это не распространено, и предпринимаются только самыми опытными пользователями.

В качестве альтернативы, можно указать окно балансировщика времени, когда он может работать, или полностью его отключить. Некоторые пользователи временно отключают балансировщик для технического обслуживания или предоставляют ему окно, чтобы он не конкурировал за блокировки записи в те моменты, когда они ожидают, что их приложение будет помещать БД под высокие нагрузки.

Дополнительную информацию о балансировщике можно найти в разделах «Балансировка» и «Окно балансировщика» документации «Администрирование шардинга».
http://www.mongodb.org/display/DOCS/Sharding+Administration

Надеемся, что приведенные выше ресурсы помогут вам лучше понять, как работает шардинг и как куски сбалансированы между шардами.

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