Comment #9 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
Correction to the comment above
We had an offline talk with Bark.
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, we have no way of doing the election process correctly,
basically every backup buddies would recover the dead node which is not
acceptable
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.