You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, gossip keeps track of the distance from a node to the origin of a piece of gossiped info via a scalar info.Hops int count which is incremented upon receipt. Various pathological restart cases result in this value being incremented arbitrarily high, giving an incorrect distant from destination node to info origin node and causing gossip connection thrashing (see #9819).
We should replace info.Hops int with info.Nodes []roachpb.NodeID and on receipt, appropriately collapse the supplied slice of node IDs to the shortest sub-slice which contains an immediate peer node ID.
If No receives info.Nodes = []roachpb.NodeID{N1, N2, N3, N5, N6}, and No has peers []roachpb.NodeID{N2, N7, N9}, it will set info.Nodes = []roachpb.NodeID{N1, N2}.
The text was updated successfully, but these errors were encountered:
petermattis
changed the title
Replace scalar hops count in gossip with a slice of node IDs tracing path to origin
gossip: replace scalar hops count with a slice of node IDs tracing path to origin
May 1, 2017
Currently, gossip keeps track of the distance from a node to the origin of a piece of gossiped
info
via a scalarinfo.Hops int
count which is incremented upon receipt. Various pathological restart cases result in this value being incremented arbitrarily high, giving an incorrect distant from destination node to info origin node and causing gossip connection thrashing (see #9819).We should replace
info.Hops int
withinfo.Nodes []roachpb.NodeID
and on receipt, appropriately collapse the supplied slice of node IDs to the shortest sub-slice which contains an immediate peer node ID.For example:
If
No
receivesinfo.Nodes = []roachpb.NodeID{N1, N2, N3, N5, N6}
, andNo
has peers[]roachpb.NodeID{N2, N7, N9}
, it will setinfo.Nodes = []roachpb.NodeID{N1, N2}
.The text was updated successfully, but these errors were encountered: