Производительность чтения Java Berkeley DB с документами на 100 млн. - PullRequest
0 голосов
/ 04 апреля 2011

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

Мне нужно добиться <75 мс при времени выборки на BDB, при загрузке одного документа.</p>

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

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

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

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

0 голосов
/ 04 апреля 2011

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

...