Hi I'm trying to debug a vendor product which uses Apache Tribes as its cluster communication implementation. I've identified that each member of the cluster derives the "master node" instance using the aliveTime field of all members of the cluster. The member with the largest aliveTime is elected to be the master node.
One thing I notice is that local member aliveTime is only updated when McastService.getLocalMember() is called while (remote) member aliveTime is updated constantly (by a separate thread?). Is this observation correct? If so, does this mean that using aliveTime to elect a master node might run into race conditions if it wasn't implemented carefully? For example, remote member aliveTime is always more up-to-date than the local member alive time. Assuming two members of the cluster started almost at the same time, It's possible that they always think the other member is alive longer (if the remote aliveTime is updated before local aliveTime) and, therefore, think the other member is the master node. Thanks for any clarification on the subject. eddie