Я работаю над проектом, в котором мы периодически собираем большое количество сообщений электронной почты через IMAP или POP, выполняем их анализ (например, группируемся в разговоры, извлекаем важные предложения и т. Д.), А затем представляем представления через Интернет.до конечного пользователя.
Основным видом будет страница профиля в стиле Facebook для каждого контакта из самых последних (около 20) разговоров, которые каждый из них имел с полученной нами электронной почтой.
Для нас важно иметь возможность быстро и быстро получить страницу профиля и последние 20 элементов.Мы также можем часто вставлять последние электронные письма в этот канал.Для этого хранение документов и недорогая атомарная запись MongoDB кажутся довольно привлекательными.
Однако у нас также будет БОЛЬШОЙ объем старых разговоров по электронной почте, к которым не будет частого доступа (так как они не будутпоявляются в последних 20 элементах, люди увидят их, только если будут искать их, что будет относительно редко).Кроме того, размер этих данных будет расти быстрее, чем хранилище контактов.
Из того, что я прочитал, MongoDB, похоже, более или менее требует, чтобы весь набор данных оставался в оперативной памяти, и единственноеспособ обойти это заключается в использовании виртуальной памяти, которая может нести значительные накладные расходы.В частности, если Mongo не сможет различить изменчивые данные (профили / каналы) и энергонезависимые данные (старые электронные письма), это может оказаться довольно неприятным (и, поскольку кажется, что оно выделяет виртуальную память для ОС,Я не понимаю, как это было бы возможно для Монго).
Казалось бы, единственный выбор - либо (а) купить достаточно ОЗУ для хранения всего, что хорошо для изменчивых данных, но вряд ли экономически выгоден для захвата ТБ электронных писем, или (б) использовать виртуальную память и видеть, что чтение / запись на наших изменчивых данных замедляется до скорости сканирования.
Это правильно, или я что-то упустил?Будет ли MongoDB хорошо подходит для этой конкретной проблемы?Если это так, как будет выглядеть конфигурация?