The problem/use-case that the feature addresses
Currently gossip protocol chooses some random entries to send to some random node with oldest pong. So there possible a case when some node is not being pinged for a long time.
This was the cause of the test flaps, because we have the timeout on tests and we check is every node of the cluster has full topology. This cases are rare but we have many tests and a lot of pull requests that need to be checked.
We fixed this by changing the gossip part of cluster_legacy.c so that now it sends all known nodes to every other node. The clusters created for tests are small so the increased traffic is not at issue but solves our problem with the longer and not reliably start.
Description of the feature
Add option like "cluster-non-random-gossip". Option is disabled by default.
Users can turn it on when they run tests to guarantee cluster start in expected time.
The problem/use-case that the feature addresses
Currently gossip protocol chooses some random entries to send to some random node with oldest pong. So there possible a case when some node is not being pinged for a long time.
This was the cause of the test flaps, because we have the timeout on tests and we check is every node of the cluster has full topology. This cases are rare but we have many tests and a lot of pull requests that need to be checked.
We fixed this by changing the gossip part of cluster_legacy.c so that now it sends all known nodes to every other node. The clusters created for tests are small so the increased traffic is not at issue but solves our problem with the longer and not reliably start.
Description of the feature
Add option like "cluster-non-random-gossip". Option is disabled by default.
Users can turn it on when they run tests to guarantee cluster start in expected time.