Производительность чтения Java Berkeley DB с документами на 100 млн.
Мне интересно, подходит ли Berkeley DB JE для хранения простой пары ключ / значение для 100 миллионов документов.
Мне нужно достичь <75 мс при получении времени на BDB, при получении одного документа.
заранее спасибо
2 ответа
Почему бы не использовать Apache Lucene - механизм поиска информации с открытым исходным кодом? Я бы использовал lucene для ведения индекса: ключевые слова для документов, идентификаторы. Теперь вы можете опубликовать ключевое слово (или набор ключевых слов) в lucene, получить идентификатор документа и получить документ из Berkley DB.
Вы можете обсудить свои требования к производительности на дискуссионном форуме Berkeley DB Java Edition. Главный вопрос в конечном итоге звучит так: "Сколько операций ввода / вывода вам нужно выполнить, чтобы получить доступ к данным?" Если ответ "нет", то время отклика 75 мс - это просто. Если ответ "много", то это будет зависеть от того, сколько "много" и скорости вашего диска.
На странице часто задаваемых вопросов о BDB JE есть несколько быстрых ссылок. В частности, этот может быть немедленного использования. По сути, вы хотите изменить размер кэша так, чтобы по крайней мере все узлы индекса помещались в память. Если индексные узлы помещаются в памяти, вам нужно будет сделать не более одного ввода / вывода, чтобы получить данные (конечный узел), если они уже не находятся в кэше.