Comment #8 on issue 1526 by jean.deruelle: Buddy replication not working
with MSS Fault Tolerant Timers
http://code.google.com/p/mobicents/issues/detail?id=1526
We had an offline talk with Bark.
And since JBoss Cache doesn't offer any way of knowing on
onViewChangedEvent or onBuddyGroupChangedEvent the buddies that were the
backup nodes of the node that died.
So we devised the following solution :
store the back up nodes for each node retrieved through
http://docs.jboss.org/jbosscache/3.1.0.CR1/apidocs/org/jboss/cache/buddyreplication/BuddyGroup.html#getBuddies()
in the cache itself in the following structure
BUDDIES_BACKUP_NODES/<node_address>/<list of back up nodes addresses>
on the onViewChangedEvent.
This will allow when the view changes to store the new topology. Then we
starts the failover process, each node that will get notify will check if
it has it's own address in the <list of back up nodes addresses> of the
node that just died <node_address>, if it has then it will do the election
process against the other nodes address present in <list of back up nodes
addresses> and the node that will win the election will remove the
<node_address> from the BUDDIES_BACKUP_NODES.