No, at the moment Infinispan doesn't copy data from one partition to another, because it doesn't know which data is the latest. For instance, it can't differentiate from you inserting new data on Node1 and you deleting existing data on Node2.
We are planning to add support for merging data in version 6.0.
We're getting around this (for replicated caches) by adding the contents back in to the cache on a Merge event, from one node in each sub-cluster. This ensures that all the content (as we can't tell what has been updated since the split) is spread around the cluster.
A custom interceptor is then used to check the updated value against the cache value using a timestamp (nodes must be reasonably time synchronised) in our object. If the update is newer, take it, otherwise broadcast out the cache copy as it's newer.
Obviously this generates a lot of traffic but for us, data consistency is quite important.
This doesn't currently cope with deletes but that could be fixed with some sort of tombstone on the object.
Hope that helps,
Hi Matthew Wellard,
I am novice in Infinispan. I wonder what mode you use to interact with Infinispan, p2p or c/s?
Because I have a issue with form p2p clustering(distribution) in different Machine, but when the infinispan nodes in the same machine, they are working fine and detecting each other.
Furthermore, forming c/s clustering(distribution) with the same configuration in different Machine, also working fine and detecting each other.
Attached are the files that I have used for clustering
Please let me know, Is there I have to change any configurations in the attached files to achieve p2p clustering in different machines. So that it can detect the infinispan node that is running in another machine.
PS, this is using Infinispan 5.1.6 and JGroups 3.0
You should probably start a new discussion for this. You might get some more expert eyes over it that way...
Having a had a quick look, I can suggest you check the IP addresses of your jgroups.xml on both nodes.
Also, I note you're using "cache.keySet()" to list your cache content. Be wary of this with Distributed Caches as entries may not be available on the current node depending on your configuration.
Hope that helps a bit but I'm no expert ;-)