LINUX.ORG.RU

MongoDB. Очень много записей

 


1

4

Так получается, что в проекте в коллекцию пишется около 750000 записей в час. Нужно как-то грамотно организовать работу с ними.

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

Решал кто подобные задачи? Как?


Создавай новую коллекцию раз в сутки :-) А вообще по идее правильно было бы юзать всетаки одну коллекцию, просто шардить ее.

anonymous
()

и конечно все эти записи нужны для adhoc выборок?

anonymous
()

Не очень уверен что монга потянет, это база для чтения, а не для записи, разве что сильно расшардить. Возможно еще можно аллокейтить размер коллекции заранее, может помочь

Для записи оптимальна Cassandra

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от anonymous

Кассандра пишет в бинарный журнал и в мапы в памяти, а потом фоновый процесс иногда, по достижению размера, собирает кусок БД в памяти в SSTable и сохраняет. При этом запись моментально переключается на новый бинарный журнал. Тут еще поспорить нужно быстрее ли бинарный журнал по сравнению с текстовым логом.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Кассандру надо еще дернуть. А скорость записи текста, как правило, ограничена только скоростью диска.

anonymous
()
Ответ на: комментарий от stevejobs

при этом кассандра - бд, а текстовый лог - текстовый лог

Легким движением хадупа лог превращается в элегантные шорты. А свернутые данные можно уже пихать куда удобно.

anonymous
()

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

В логах вот что:

mmap() failed for /data/db/archives.4 len:268435456 errno:12 Cannot allocate memory
mmap failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64

Нашел настройку «serverStatus.metrics.repl.buffer.maxSizeBytes» с неменяемым значением «268435456». Из-за чего может возникать эта проблема?

qq6ka
() автор топика

В яндекс-лекциях по файлохранилкам кто-то говорил, что у тех, кто делал сторадж на монге, она вставала колом после 400 миллионов записей.

Бить на разные коллекции - точно не вариант, для этого есть шардинг. Дальше aggregation. Но вы проверьте сначала, что монга сумеет переварить те объемы, что вы собираетесь хранить. Я как-то пытался найти абсолютные цифры, но не смог.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.