2012-02-07 3 views
1

Я работаю с системой, в которой мы выполняем много пакетной обработки. У нас есть кэши, которые предварительно загружены, чтобы помочь с эффективностью поиска данных. Однако есть сценарии, когда я не могу кэшировать весь набор данных в память. До этого момента я возвращался к запуску запроса для поиска данных, которые убивают производительность. В попытке решить, я добавил гибридный кэш, где я использую HashMap до порога, а затем я перехожу к индексу Lucene (локальная файловая система). Это определенное улучшение по сравнению с выполнением запроса (от 6 до 10 раз быстрее, чем запрос к базе данных). Тем не менее, я надеялся на немного лучше, и мне было интересно, есть ли альтернативы для такого рода вещей. Я использую одну строку в качестве моего ключа и кэширую объекты Java. Я хотел бы придерживаться библиотеки Java, чтобы не усложнять мое развертывание. (Я бы хотел избежать отдельного процесса сервера.) Мне было интересно, использует ли кто-нибудь другой Lucene для этой цели. Есть ли лучшие альтернативы для этого?Lucene как большой объем кэша?

ответ

1

Я думаю, что если вы используете одну строку в качестве ключа и вам не нужно запускать запросы в хранящихся данных, вы можете использовать LevelDB от Google. Он обладает хорошей производительностью и низким потреблением памяти. Проверьте это: http://code.google.com/p/leveldb/

1

Доступно несколько библиотек кэш-памяти, которые должны иметь возможность обрабатывать вашу ситуацию, записывая записи кэша на диск, если достигнут определенный порог. Хорошей стратегией является запись записей на диск, доступ к которым осуществляется в лизинг. Также есть кеши, которые распределяют записи кэша через кластер, сохраняя все в памяти.

Раствор кэша, который я использую часто Infinispan: http://www.jboss.org/infinispan

Это быстрое, простое в использовании, масштабируемое и, безусловно, может справиться с вашей проблемой.

+0

Спасибо. Я проверю это. – kturner75

1

EhCache! кажется, хорошо подходит для того, что мне нужно. Он работает намного лучше, чем Lucene для этого единственного ключевого поиска. Он поддерживает переполнение диска и прост в использовании.