Производительность чтения Java Berkeley DB с документами на 100 млн.

Мне интересно, подходит ли Berkeley DB JE для хранения простой пары ключ / значение для 100 миллионов документов.

Мне нужно достичь <75 мс при получении времени на BDB, при получении одного документа.

заранее спасибо

2 ответа

Почему бы не использовать Apache Lucene - механизм поиска информации с открытым исходным кодом? Я бы использовал lucene для ведения индекса: ключевые слова для документов, идентификаторы. Теперь вы можете опубликовать ключевое слово (или набор ключевых слов) в lucene, получить идентификатор документа и получить документ из Berkley DB.

Вы можете обсудить свои требования к производительности на дискуссионном форуме Berkeley DB Java Edition. Главный вопрос в конечном итоге звучит так: "Сколько операций ввода / вывода вам нужно выполнить, чтобы получить доступ к данным?" Если ответ "нет", то время отклика 75 мс - это просто. Если ответ "много", то это будет зависеть от того, сколько "много" и скорости вашего диска.

На странице часто задаваемых вопросов о BDB JE есть несколько быстрых ссылок. В частности, этот может быть немедленного использования. По сути, вы хотите изменить размер кэша так, чтобы по крайней мере все узлы индекса помещались в память. Если индексные узлы помещаются в памяти, вам нужно будет сделать не более одного ввода / вывода, чтобы получить данные (конечный узел), если они уже не находятся в кэше.

Другие вопросы по тегам