I'm looking for correct algorithm, that merges states of some clustered service when parition merge occurs.
Consider following scenario:
1. Running 8 node cluster
2. Added key "name" with value="beforesplit" into state (state is replicated across all nodes of cluster)
3. Because of network failure cluster is splited into two groups (each with 4 nodes)
4. On first group key "name" is modified to value "groupone"
5. On second group key "name" is modified to value "grouptwo"
6. Network is recovered. Cluster partion merge occurs.
After merge all nodes should have one value for key "name" but which value? (groupone, grouptwo, beforesplit) or exception should be raised?
If we drop one value, what if already this value was used in some computation or output and simple drop will cause inconsistent behavior?
Current JBoss clustering services doesn't throw light at it now. DistributedStateService doesn't handle partion merge at all and DistributedReplicaManager simply drops one of values when there are differend values for one key.
Thank you for any thoughts
David Klimek
-- http://www.sweb.cz/david.klimek
------------------------------------------------------- This SF.net email is sponsored by: The Definitive IT and Networking Event. Be There! NetWorld+Interop Las Vegas 2003 -- Register today! http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
