We're trying to switch to using an infinispan directory provider for Hibernate Search. Before we were using Hibernate Search with a custom rsync directory provider, and it worked okay, but it had a 120 second delay built in, and we're hoping infinispan will give us a more rapid update of the indexes.
We have taken the suggestions outlined in the documentation and are using JGroups to channel to a single IndexWriter. We have our master and one slave at the moment.
Master settings :
Code:
hibernate.search.lucene_version=LUCENE_35
hibernate.search.default.exclusive_index_use=true
hibernate.search.infinispan.configuration_resourcename=infinispan/search.xml
hibernate.search.default.directory_provider.copytask.enabled=false
hibernate.search.worker.backend=jgroupsMaster
hibernate.search.default.directory_provider=infinispan
and slave has the same except this:
Code:
hibernate.search.worker.backend=jgroupsMaster
With infinispan, I can bring up the master, and it does a full reindexing, the app works, and I see no problems in the logs. However we have a FileCacheStore set and I can't seem to find the actual lucene files in it.
Code:
<loaders passivation="true" shared="false" preload="true">
<loader class="org.infinispan.loaders.file.FileCacheStore"
fetchPersistentState="true" ignoreModifications="false"
purgerThreads="3" purgeSynchronously="true" purgeOnStartup="false">
<properties>
<property name="location" value="/var/dex/lucene" />
</properties>
<singletonStore enabled="true" pushStateWhenCoordinator="true" pushStateTimeout="20000"/>
</loader>
</loaders>
Then when I bring up the slave I see these errors:
STDOUT [ERROR] [2012.08.03 13:50:05] cacheviews.CacheViewsManagerImpl - ISPN000172: Failed to prepare view CacheView{viewId=5, members=[MarkMac-29668, firecracker-57641]} for cache LuceneIndexesData, rolling back to view CacheView{viewId=1, members=[MarkMac-29668]}
java.util.concurrent.ExecutionException: org.infinispan.CacheException: org.jgroups.TimeoutException: TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
at java.util.concurrent.FutureTask.get(FutureTask.java:119)
at org.infinispan.cacheviews.CacheViewsManagerImpl.clusterPrepareView(CacheViewsManagerImpl.java:318)
at org.infinispan.cacheviews.CacheViewsManagerImpl.clusterInstallView(CacheViewsManagerImpl.java:249)
at org.infinispan.cacheviews.CacheViewsManagerImpl$ViewInstallationTask.call(CacheViewsManagerImpl.java:875)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.infinispan.CacheException: org.jgroups.TimeoutException: TimeoutException
at org.infinispan.util.Util.rewrapAsCacheException(Util.java:525)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:172)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:489)
at org.infinispan.cacheviews.CacheViewsManagerImpl$2.call(CacheViewsManagerImpl.java:302)
at org.infinispan.cacheviews.CacheViewsManagerImpl$2.call(CacheViewsManagerImpl.java:299)
... 5 more
Caused by: org.jgroups.TimeoutException: TimeoutException
at org.jgroups.util.Promise._getResultWithTimeout(Promise.java:145)
at org.jgroups.util.Promise.getResultWithTimeout(Promise.java:40)
at org.jgroups.util.AckCollector.waitForAllAcks(AckCollector.java:93)
at org.jgroups.protocols.RSVP$Entry.block(RSVP.java:275)
at org.jgroups.protocols.RSVP.down(RSVP.java:114)
at org.jgroups.protocols.pbcast.STATE_TRANSFER.down(STATE_TRANSFER.java:238)
at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:1025)
at org.jgroups.JChannel.down(JChannel.java:729)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.down(MessageDispatcher.java:617)
at org.jgroups.blocks.RequestCorrelator.sendUnicastRequest(RequestCorrelator.java:202)
at org.jgroups.blocks.UnicastRequest.sendRequest(UnicastRequest.java:44)
at org.jgroups.blocks.Request.execute(Request.java:83)
at org.jgroups.blocks.MessageDispatcher.sendMessage(MessageDispatcher.java:366)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:270)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:165)
... 8 more
What techniques can I use to troubleshoot this? How can I monitor what infinispan is doing with regards to jgroups?