Quote:
First of all it's not very clear to me whether I need two JGroups configuration - one for Infinispan and one for the backend or will it use the same?
That is correct, Infinispan just happens to use JGroups as well and the two configurations (and channels) are created and used independently. You might actually want to make sure the two cluster names are different so that the two cluster groups are isolated from each other.
I never heard of a problem like you describe, I suspect a configuration mistake? To clarify, you do indeed need to configure the nodes in a master/slave configuration: only one node writes to the index, and the other node needs to forward requests using the jgroups backend. The node writing should NOT use the NRT backend, since this doesn't flush all writes immediately.
Quote:
This sounds similar to a master/slave replication where the changes are written to the master only, but this is true only in case I create an entity (INSERT), not if I modify (UPDATE) an existing one.
It would be very helpful if you could share a test or demo app? In case you are interested in the tests, I'd encourage you to look into the source code to see how we write tests, it's quite simple and there are plenty of helpers to reuse.
Quote:
Hibernate Search 4.3.0
Infinispan 5.2.5
JGroups 3.2.7
These are quite old versions. Would you be able to verify that you're not hitting a solved problem by updating to our latest stable release?
Hibernate Search 4.5.1.Final
Infinispan 6.0.2.Final
JGroups 3.4.3.Final
Hibernate ORM 4.3.5.Final
Final thought:
could you also try to set
hibernate.search.enable_dirty_check = false
if that helps, the problem is not clustering related at all.. ;-)
HTH