При добавлении осколок в существующий кластер, он автоматически становится осколок с наименьшим количеством порций для каждого sharded коллекции. Это означает, что это будет мишень по умолчанию для миграции (из осколка с наибольшим количеством кусков), пока вещи не станут более сбалансированными. Однако каждый первичный осколок (который отвечает за миграцию) может принимать участие только в одной миграции за раз. Таким образом, балансировка займет некоторое время, особенно если вещи находятся под нагрузкой.
С точки зрения самих миграций вы уже видите их в своем нынешнем кластере, так что, как можно судить об их воздействии. Вы можете просмотреть последние миграции в журналах, или вы посмотрите на список изменений (в 10MB колпачком коллекцию, содержащую самые последние миграции перелетных/шпагат и т.д.) могут:
// connect to a mongos, switch to the config DB
use config
// look at the changelog
db.changelog.find()
В плане того, что произойдет операции, хорошо, чтобы переместить кусок:
- документов, которые составляют этот кусок должен быть прочитан в память на исходном осколке уже, если не существует (так довольно стандартное для чтения)
- Они затем направляются осколок назначения (довольно стандартная вставка/запись)
- Наконец, после того, как метаданные были обновлены, они удаляются из исходного осколка.
Шаг 3 - это удаление, которое требует блокировки записи на исходном осколке, но оно должно быть довольно быстрым - документы уже находятся в памяти из миграции.
Еще одно влиянием увеличения частоты миграций является то, что версия осколка будет обновляться чаще. - в частности, основную версия осколка (так, что он имеет до даты отображения кусков в черепки
Это означает, что вы увидите больше зарегистрированных сообщений о монго, которые нуждаются в обновлении своей конфигурации и обновлении ее версии осколков. Также может быть хорошей идеей запустить flushRouterConfig command, прежде чем начинать длительные операции, такие как Map/Reduce или findAndModify.
Если ваши осколки имеют периоды низкого использования, вы увидите, что миграции происходят быстрее, и вы также можете рассмотреть возможность использования balancer window возможность балансировки только в определенные моменты, если вы заметили значительное влияние.
Спасибо Адам Я ценю информацию – scarpacci