-
Notifications
You must be signed in to change notification settings - Fork 467
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
Help review and get DHT pipelining merged (go-libp2p-kad-dht) #433
Comments
PR which adds tests to |
I've rebased vyzo's branch onto master and fixed some conflicts. As per my conversation with @whyrusleeping , changes introduced in commit I will spend the remainder of the day looking through the contents of |
I've run some tests and found some interesting data:
https://docs.google.com/spreadsheets/d/1f4fWeepjNOAOh_-eEGREkxcyRCjxfFxCQGHvPvATL3o/edit?usp=sharing I ran my perf test 10 times with requests=60 against the master branch (no pipelining), pipelining branch (pre-rebase) and pipelining (post-rebase). The data show that, post-rebase, the pipelining branch doesn't perform much better than master (which doesn't include pipelining). |
Good find, I think you talked to @Stebalien and are moving forward with a different method of simulating latency, right? |
Yes. The intrusive (not suitable for test cases) method I tried (introducing ~100ms of latency in the handler loop) showed a ~5x performance increase on rights and ~6x on reads. |
I just pushed an update to the PR's branch which replaces the delayed datastore with a Mocknet configured with 100ms of latency. |
Cole will review on Wed 6/13. |
@laser @acruikshank is this still blocked? |
@dignifiedquire - Just spoke with Cole about this. He said:
|
@mishmosh - Can you help me figure out how to get this thing merged? I could use the help. |
@laser I'll get @mgoelzer on it |
Almost-Halloween is a great time for PRs to come back from the dead 👻. Got 75% of the way through this recap before @mgoelzer was summoned, so here it is anyway. I'll watch for pings, but otherwise over to you @mgoelzer. IIUC here is the state of things:
Current blockers for libp2p/go-libp2p-kad-dht#92:
Does it make sense for @laser to investigate? Or someone from libp2p land? |
let's try and get someone from libp2p-land to investigate, but its not a super high priority, so not too much pressure on them. |
Hi @phritz @mishmosh @laser, I did some digging into this and I think that @vyzo probably needs to be the one to rebase this. It changes code in places that have since changed in master, so it's going to be a complex rebase. One question: is there a particular reason why this bubbled up again recently? We're definitely aware of sporadic instances of extremely slow DHT lookups (on the order of minutes), but our solution to that is to instrument the code and run it in a test harness to understand what's happening before making any changes. Right now, we don't have any data to suggest it's related to this particular lock. By the way, if you all have a reproducible case where the DHT is either slow or loses values, we would love to study that. |
Hi @mgoelzer
Not a particularly-good one. I noticed that the issue was still assigned to me and had been for several weeks in spite of me having no plan to move the work forward. Thanks again for following up. |
@vyzo What's the status on this? |
@anacrolix is taking the torch on merging; we will remove the timing test and fix the regression before merging. |
@ZenGround0 assigning over to you as the person with the relationship on the gfc side |
I'm actively working on this now. I'm hoping to get it wrapped up soon. |
Update: @anacrolix has been working on an alternative pool-based approach to achieve the same effect (enable parallel requests to the same peer). Our tests show no worthwhile improvement under the 99th percentile, under test loads. See discussion in the linked issue for more details. We should validate these results with more realistic loads (e.g. within an IPFS node or a DHT booster). |
Split out from @whyrusleeping 's original catch-all issue.
Description
vyzo's DHT Request Pipelining story appears to be code-complete, but requires additional tests in order for @whyrusleeping to feel good about merging it:
The text was updated successfully, but these errors were encountered: