-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
feat: set Bitswap.ProviderSearchDelay to 0s #9530
Conversation
14d7aa1
to
f6e8b2c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great PR description. I'm aligned with the change.
Maybe the other thing to call out is that while the resource overhead for the client node is minimal, it does drive a ~16x load to the indexers per #8807 (comment) . IPNI believes they can handle it: #8807 (comment)
Left some informational comments. However, I haven't been involved with the developments here over the past few months so do with this information what you will.
|
Ack on lack of measurements backing this change other than the assumption bitswap spam cost decrease makes it net positive. My understanding is that the TTFB tests no longer apply, multiple characteristics change in Kubo 0.18: we lowered the default number of bitswap peers AND added HTTP routing via IPNI – that is why I asked in #8807 (comment) if we should measure before making the change, or remove this artificial limit and then measure. @BigLep we've (@aschmahmann, @guseggert, infra) briefly discussed this during Content Routing WG #3 and iiuc takeaway is:
|
We should set a different The network overhead for setting the DHT's IMO it doesn't make sense to penalize DHT content routing just because IPNI has a lower capacity than the DHT. The DHT and IPNI should be treated as 2 independent Content Routers. We shouldn't need to wait on IPNI, in order to ship improvements for other content routers (Bitswap, DHT). IPNI can continue having a |
I've set Current state of this PR:
|
do you have an idea of what the increase in DHT/indexer query traffic will be? |
We expect to see an increase in the number of DHT content lookup requests of ~16x compare to what we currently have (source: #8807 (comment)). Each content request is expected to generate roughly 750 fewer Bitswap requests and 7 additional DHT request messages. So it shouldn't be a concern for DHT server nodes. The load of content routing in Bitswap is expected to drop from 8x (850 -> 100 messages per request), and the one in the DHT/Indexers to increase 16x (~0.4 -> 7 messages per request for the DHT, 1 message per request for the indexers?). Most DHT server nodes run handle both Bitswap and DHT traffic, so the proposed change should reduce their overall load. However the Indexers (not running Bitswap AFAIU), will have a load increase of 16x (compared to the current DHT load). |
Closing due to #8807 (comment) (makes more harm than good, more research/refactoring is needed). |
This PR sets
Bitswap.ProviderSearchDelay
to0s
,effectively removing the delay described in #8807
Rationale
Kubo 0.18 makes two changes that make
1s
no longer a viable default:Routing.Type=auto
(feat: Routing.Type=auto (DHT+IPNI) #9475) will now use both DHT and IPNI (HTTP router) in parallel, which makes non-bitswap routing more appealing, especially for content that is indexed by IPNI.This PR removes the delay by setting
Bitswap.ProviderSearchDelay
to0s
.Why 0s and not 200ms
This means additional DHT/IPNI lookup cost (~4 additional requests per CID) is still less than the savings around bitswap spam being 1/8 of the old default (Kubo 0.18 NOT sending ~700 bitswap requests).
TODO
0s
Closes #8807
cc @guillaumemichel @aschmahmann