-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syncing warm-up time #2048
Comments
slight clarification: |
correct. pushsync should not sign receipts during the warmup period |
In my experience, 10 minutes, or any coded or user-specified time frame, is not going to solve the problem that this is trying to solve, namely services activating before the depth has been established. I believe kademlia needs to find a way to use the count of known nodes per bin in the address book to estimate what depth is likely to be achievable and provide a method that pusher, puller, and pushsync can use to determine if they are "clear" to operate, because depth has reached the estimated achievable. This "clear" flag only needs to be recalculated when the depth changes to avoid unnecessary overhead. This approach will also provide for a subsequent loss of depth to "re-block" these features if the check is made in their normal processing loops and not only a startup delay. I have seen my depth go from 15 to 3, stay there for a while, and then jump back to 15 as a single pivotal peer connection was lost from bin 4. For some real-world traces of depth changes from node startup and over time, see: https://ipfs.io/ipfs/QmSs8qGMEWyzezWtfs7fM2QuCcfjKn72J9D1zp1wBXibom bee1 took 45 minutes to initially get to depth 14 jumping from 4 And for posterity, these are the current connected counts for topology bins 0->15 from left to right: bee1: 8 8 15 10 12 20 20 20 20 19 20 17 14 8 3 4 and they are all running version 0.6.3-5b9541c4 which I believe was yesterday's master from github. |
@ldeffenb we are incrementing on this issue on all fronts, in particular kademlia. this is to improve on the protocols on top of that. |
Task
We need to add a warm-up time to pushsync and pullsync protocols.
warmup
that can be used on both protocols, default 10m, can accept 0 as immediate startup, otherwise integration tests won't work, enforce upper bound of1h
as too highpusher
andpuller
should start after the warmup time expiredpullsync
needs no changespushsync
does not give back receipts during the warmup period, stream should resetThe text was updated successfully, but these errors were encountered: