Я начал сталкиваться с проблемой несколько дней назад, когда данные, поступающие в монго, больше не распространяются по кластеру. Все, кроме очень небольшого количества данных, поступает в основной осколок базы данных, даже если ключ осколка не изменился. Клавиши осколка представляют собой суммы MD5 другого поля документа, похожие на хэшированные ключи осколка в v2.4 монго, поэтому должно быть более чем достаточно изменчивости для распыления документов по трем осколкам. Сейчас мы работаем 2.0.5.Mongodb 2.0.5 sharding больше не сбалансирован
Я не могу найти что-либо в базе данных конфигурации, которая указывала бы, почему документы идут только на основной. Каждый день мы создаем новую коллекцию и записываем в нее около 40 миллионов документов. Я проверял, что они оштукатурены, и балансир медленно перемещает куски из основного, но недостаточно быстро, чтобы не отставать от скорости записи.
Каждый сервер, который пишет в mongo, имеет свой собственный экземпляр mongos, и есть несколько экземпляров mongos для процессов, которые читают данные. Общее число, которое у нас работает, немного больше 25. Может ли количество экземпляров mongos вызвать эту проблему? Кажется, мне нужно вручную определить диапазоны для осколков, но это кажется мне проблематичным. Я хотел бы сохранить автоматическое ошпаривание на месте. Где в базе данных config находится эта информация? Можно ли узнать, какие диапазоны используются экземплярами mongos для автоматического очертания?
Мы оставляем коллекции только тогда, когда они не нужны. Коллекции создаются с конфигурациями индексов и осколков до ввода данных в них. – cischmidt