Я технический директор Terracotta. Я провел некоторое время в прошлом месяце, глядя на Hibernate Search. Он не построен таким образом, чтобы быть прозрачным с помощью Terracotta. Вот почему в двух словах: Hibernate имеет настраиваемую JMS-репликацию индексов Lucene в JVM.
Основная идея поиска заключается в том, что общение с локальным диском под lucene работает очень хорошо, в то время как фрагментация или разделение индексов Lucene по сети вводит слишком много времени, так как Lucene кажется плохой, когда это не вина Lucene. С этой целью HIbernate Search не использует JBossCache или любые схемы разбиения на разделы/кэширование в памяти и вместо этого полагается на JMS и каждый локальный диск JVM, чтобы обеспечить самую последнюю индексацию в кластере с одновременной низкой задержкой , Тогда красота Hibernate Search заключается в том, что стандартные запросы Hibernate и многое другое могут запускаться через Hibernate при этих индексах естественного языка на каждой машине.
У Terracotta оказалось, что у нас была аналогичная идея с Эммануэлем и был построен продукт SearchableMap поверх Compass. Каждая машина получает свое собственное хранилище Compass, а хранилище настроено на локальное распространение на диск. Terracotta используется для создания возможности записи с несколькими мастерами, где любая JVM может добавлять к индексу, а delta отправляется через Terracotta для повторного воспроизведения/повторного использования локально на каждом диске. Он работает так же, как Hibernate Search, но с DSO в качестве сетевого протокола вместо JMS и без хороших интерфейсов Hibernate, но вместо этого с интерфейсами Compass.
Я думаю, что мы будем поддерживать Hibernate Search w/help от JBoss (им нужно будет отделить JMS impl как подключаемый) к концу года.
Теперь ваши вопросы прямо:
1.Object обновление/сек в Hibernate или SearchableMap должно быть достаточно высоко, поскольку оба посылают только дельты. В случае Hibernate это функция нашего JMS-провайдера. В Terracotta он масштабируется, просто добавив больше Terracotta Servers в массив.
Производительность запросов в обоих случаях очень быстрая. Производительность локальной памяти в большинстве случаев. И если вам нужно заходить на диск с диска, то получается, что большинство ОС отлично справляются с задачей и могут быстрее реагировать на запросы, чем любая кластерная работа на основе сети.
Это будет, я думаю, как только мы заставим JBoss отказаться от своих предположений JMS и т. Д.
Приветствия,
--Ari