MongoDB масштабирование и использование памяти с очень большими наборами данных - PullRequest
4 голосов
/ 05 марта 2012

В настоящее время я работаю над системой на базе MongoDB, которая будет хранить не менее миллиарда документов.Это будет увеличиваться примерно на 50 миллионов каждый месяц.

Идентификатор основной коллекции имеет форму YYYYMM_SOURCEID_DOCTYPE_UUID и служит индексом сегмента.Каждая запись дает около 1 КБ индекса.99% операций будет происходить на самых последних трехмесячных данных.Мы хотели бы поддерживать поиск документов по ключевым словам, с очень хорошей производительностью за последние три месяца данных и, по крайней мере, с полудойной производительностью для старых материалов.

Может ли MongoDB казаться разумным решением, пока яможно сохранить активный конец индекса в памяти?

1 Ответ

2 голосов
/ 06 марта 2012

Я бы посоветовал вам изменить свой ключ шарда, так как с текущим кажется, что вы можете нажать последний шард для всего , так как бит YYYYMM ключа заставит все новые вставки переходить в " самый правый "осколок всегда. http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key#ChoosingaShardKey-Cardinality имеет больше информации об этом.

В зависимости от количества элементов в поле «ключевые слова», вы можете выбрать его в качестве ключа шарда. Таким образом, mongodb может легко получить все документы, принадлежащие ключевому слову, из одного шарда. Все записи по-прежнему будут передаваться всем осколкам, поскольку они разделены по ключевым словам.

Если количество «ключевых слов» не очень велико (т. Е. <100), тогда это не очень хороший ключ шарда, однако вы можете объединить его с годом и месяцем, например ключевые слова_YYYYMM. </p>

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