Что именно блокируется при выполнении сжатия в MongoDB? - PullRequest
2 голосов
/ 19 октября 2011

При запуске новой, компактной команды 2.0+ в коллекции в сегменте MongoDB в документации говорится, что команды блокируются во время работы компакта. У меня вопрос, что именно заблокировано? Команды против этой коллекции только на этом осколке? Все команды для этой коллекции по всему кластеру? Все операции, независимо от сбора на этом осколке?

Ну и так далее ...

Кто-нибудь знает?

Я бы подумал, что это просто команды против этой коллекции на этом осколке, поскольку сжатие коллекции на одном осколке, теоретически, должно быть независимым от других осколков, отсюда и точка шардинга.

Спасибо, Джастин

1 Ответ

1 голос
/ 16 февраля 2012

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

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

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