Engineers at TerraCotta have detailed a new way to cluster lucene, the popular text search library from Apache. Their method involves implementing the lucene RAMDirectory interface and using TerraCotta DSO to share the RAMDirectory across JVMs.
Lucene is a popular, open-source text search library. There are several existing strategies to clustering Lucene. Steve and Orion at TerraCotta noted that it was used in several of the products they use in house and so decided it would be a good test of their clustering software. They first tried to cluster the lucene IndexWriter directly but they ran into some problems and so switched to using RAMDirectory.
Orion describes the RAMDirectory approach as being straightforward:
As you can see, dealing with the index is pretty simple. This example code isn't really any different with clustering enabled than it is without clustering. In fact, turning clustering on and off is as simple as invoking java with or without a couple of Terracotta options.
Orion has provided some example code, which he admits is unpolished, and promises to post a cleaned up version along with instructions soon.