I am the technical director of Terracotta. I spent some time last month looking at Hibernate Search. It is not built to be transparent with Terracotta. That's why in a nutshell: Hibernate has custom JMS replication of Lucene indexes in the JVM.
The basic idea in the Search is that communicating with a local disk under lucene works very well, while fragmenting or splitting Lucene indexes over the network introduces sooo much latency, because Lucene seems bad when it is not a Lucene error at all. To this end, HIbernate Search does not rely on JBossCache or any partitioning / caching schemes in memory, and instead relies on JMS and each local JVM to provide the latest indexing in the cluster with simultaneous low latency. Then the beauty of Hibernate Search is that standard Hibernate queries and much more can be launched through Hibernate with these natural language indexes on each machine.
At Terracotta, it turned out that we had a similar idea with Emmanuel and the SearchableMap product was built on top of Compass. Each machine gets its own Compass storage, and the storage is configured to distribute locally to disk. Terracotta is used to create multi-master recording capabilities where any JVM can add to the index, and delta is sent via Terracotta for replay / reuse locally on each disc. It works the same as Hibernate Search, but with DSO as the network protocol instead of JMS and without using Hibernate interfaces, but instead with Compass interfaces.
I think we will support Hibernate Search w / help from JBoss (they will need to separate JMS impl as pluggable) by the end of the year.
Now right to your questions:
1.Updates / sec in Hibernate or SearchableMap should be high enough, because both send only delta. In the case of Hibernate, this is a feature of our JMS provider. In Terracotta, it scales by simply adding more Terracotta Servers to the array.
Query performance in both cases is very fast. Local memory performance in most cases. And if you need to go to disk from disk, it turns out that most OSs do an excellent job and can respond to requests faster than any network-based cluster work.
It will be, I think, when we make JBoss abandon his JMS assumptions, etc.
Greetings
- Ari
ARI ZILKA
source share