hashicorp / memberlist

Golang package for gossip based membership and failure detection
Mozilla Public License 2.0
3.65k stars 439 forks source link

gossip broadcasts different state to the random nodes in one iteration #75

Open mrjana opened 8 years ago

mrjana commented 8 years ago

Reading the code here https://github.com/hashicorp/memberlist/blob/master/state.go#L403 it looks like the broadcast queue is read each time for all the k random nodes(which re-sorts the broadcast queue) so every node selected to get a gossip update is going to get different set of data in a single gossip. Is this intentional? I would have though that the intention would have been to gossip the exact state to all the random nodes in a single iteration.

slackpad commented 8 years ago

Hi @mrjana I might be missing something, but I don't see where the broadcast queue is randomized on each trip through the loop. It looks like it runs the same steps for each randomly-chosen member and the broadcast contents will only change during that loop if a transmit limit is set.

JensRantil commented 5 years ago

Given there has been no activity here for almost three years I propose this issue can be closed.