У меня есть следующие требования для проектирования потокового бэкэнда:
- Документы добавляются при 20 документах в секунду. У каждого документа есть поле с отметкой времени.
- Поиск в основном основан на диапазоне меток времени (например, покажите мне документы, полученные за последние 20 минут)
- Поиск QueriesPerSecond: 100 поисков / сек
- Документы старше 2 дней могут непрерывно удаляться в целях оптимизации (по cron)
Я думаю об использовании Solr (с SolrReplication / NRT). Проблема с Solr в основном частые обновления / удаления. Для самых свежих данных мне нужно будет делать коммит при каждом обновлении (иначе данные не будут видны поисковикам). Установка pollInterval ~ 1 минута может убить мастер / сервер обоих. NRT / SolrCloud может быть одним из вариантов, но не очень уверен в их стабильности.
Есть ли другие подходы / предложения, основанные на архитектурах SQL / NoSQL?