-
Notifications
You must be signed in to change notification settings - Fork 110
investigate restarting of networks and traffic incurred #1396
Comments
when we start a swarm node, we should know what our previous kademlia table was (who our peers were) and peers that we were connected to should have priority over peers we |
peers exchange information regarding their view of the network (the hive protocol), if they also say how many peers they are connected to in a given bin, we could maybe start dropping redundant connections/peers. |
How this relates to #1436 ? |
@kortatu good question, sorry about the confusion. Currently by design, we should have only K peers in every bucket. This is what is mentioned in this issue here. However as explained in #1436 , this is not a great solution because:
I believe the correct solution is to use I will check #1833 but based on what you say, you've implemented a better strategy than the one we currently have and discussed here. |
@kortatu then again, ideally we should have functionality to drop redundant peers and some way of determining which peer connection is redundant. |
I think one of the things we are not considering in suggest peer is the address space covered by each peer. This problem is more sever in bin 0 but it can happen in every bin. That's why I think that, even though is a good thing to have a Load Balancing when several peers are the same distance away from the destination, a better selection of peers will improve performance and distribution. |
@kortatu you are right about that. There is not guarantee that the space will be split between the peers in a given bin, and they can be skewed a lot. |
And if the case we have the three peers And other consequence of the address space is that, by looking at the stats of connections per peers, we can decide to get a new peer near the the ones more overloaded. So if the previous example, I have much more connections to |
when we restart a swarm node the kademlia table's connection changes - nodes which are known about and that were with established connections to us are not prioritized over other nodes.
this, in turn, incurs a big traffic load as a node suddenly has to push for example half of its chunks (bin 0) to all of the new peers in bin 0
this is easily reproducible when running a persistent cluster, shutting it down, then starting the nodes again.
we should prioritize known peers when reconnecting
The text was updated successfully, but these errors were encountered: