uber-node / ringpop-node

Scalable, fault-tolerant application-layer sharding for Node.js applications
http://uber.github.io/ringpop/
MIT License
1.18k stars 146 forks source link

When creating the change for reincarnation use your self as the source. #282

Closed thanodnl closed 8 years ago

thanodnl commented 8 years ago

When a gossip was received that would overwrite the state of the local node we overwrite this change with a reincarnated version of our self. However we used the source of the original change as the source for this change making it harder for the reincarnated change to reach the node that declared it a suspect in the first place.

This change will use the source and new reincarnation number of the local node for this new change. This prevents the reincarnation change to be filtered out in pings to the original source causing convergence to speedup and potentially prevent fullsyncs from happening.

CorgiMan commented 8 years ago

Looks good after you handled Motiejus' comments.

mennopruijssers commented 8 years ago

Nice! LGTM

motiejus commented 8 years ago

LGTM