akalend
@akalend
программирую

шардинг MongoDb и дальнейшая расширяемость

нашел прекрасное руководство как все сделать шапрдинг (что-то подобное было даже на Хабре),
gliffer.ru/articles/nosql--sharding-mongodb-na-paltsah/
www.mongodb.org/display/DOCS/Sharding
blog.zawodny.com/2011/03/06/mongodb-pre-splitting-for-faster-data-loading-and-importing/

но есть несколько вопросов осталось за кадром:

1) я как понял — вторичные ключи могут быть ключами шардинга, т.е.ключ шардинга не обязан быть уникальным,
например шардить данные по регионам / странам / городам

2) если мы расшардили данные, то через какое-то время решили доставить физических серваков, то можно перестроить конфиг, переконфигурировать шарды. Это понятно, Но могу ли я добавить новые монго-д инстансы таким образом, чтоб не потерять данные?
Пример: шардим по первой букве алфавита:
server 1 A-E
server 2 E-Л
server 3 Л-М
server 4 М-P
server 5 Р-Я

и тут оказывается, тчо сервер 4 начинает переполняться и приходится его делить пополам:
server 4 М-О
server 6 О-P

как в этом случае будут перемещаться данные, которые были ранее размещены на сервере 4, но теперь должны входть в состав сервера 6?
  • Вопрос задан
  • 9848 просмотров
Пригласить эксперта
Ответы на вопрос 2
Насколько я помню, балансировка нагрузки автоматическая. Субд сама перенесет данные с перегруженных серверов на простаивающие.
Ответ написан
@sevmax
Но есть один нюанс!
Chunk'и будут сохранены на сервере 4, то есть используемое дисковое пространство не уменьшится. Следует удалять чанки старше определенного времени (например 1 день) по крону.
Эта функциональность будет добавлена в mongod в следующей версии.
Ответ про удаление чанков — официальная рекомендация 10gen.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы