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
{{ message }}
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.
The route calculation contains some clever logic to coalesce multiple recalculation requests into one. However, I am quite sure this isn't effective when receiving a deluge of topology updates on a single connection, such as can happen under load when backlogs can accumulate in tcp buffers. Each update will trigger a separate recalculation. With #1761 in mind, this is hugely costly.
The text was updated successfully, but these errors were encountered:
We could perhaps attempt to drain connections of gossip traffic before processing it in bulk. Or maybe make GossipChannels active components that have separate process and propagation phases.
Simply dropping the EnsureRecalculated calls does have quite a beneficial effect. At the cost of accuracy. Does that matter? I reckon the place where this could do the most harm is in broadcastPeerUpdate when we've just added a connection - there is a risk that the broadcast won't reach the new peer. OTOH, if it really is a new peer then we actually SendAllGossipDown the connection. And if it's not a new peer then the broadcast might still reach it via the old route.
The route calculation contains some clever logic to coalesce multiple recalculation requests into one. However, I am quite sure this isn't effective when receiving a deluge of topology updates on a single connection, such as can happen under load when backlogs can accumulate in tcp buffers. Each update will trigger a separate recalculation. With #1761 in mind, this is hugely costly.
The text was updated successfully, but these errors were encountered: