-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Data Streaming Service] Add support for dynamic prefetching #11951
Conversation
⏱️ 12h 38m total CI duration on this PR
🚨 1 job on the last run was significantly faster/slower than expected
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #11951 +/- ##
========================================
Coverage 69.8% 69.8%
========================================
Files 2199 2200 +1
Lines 416774 417399 +625
========================================
+ Hits 291116 291742 +626
+ Misses 125658 125657 -1 ☔ View full report in Codecov by Sentry. |
1df7efc
to
8088b11
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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.
LGTM
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
Note: > 80% of this PR is just unit test changes/additions.
Description
This PR adds dynamic prefetching support to the data streaming service. Instead of having a static (config-defined) maximum number of in-flight requests, we now dynamically increase/decrease the maximum based on successful RPC responses and timeouts, i.e., for each successful response we increase the value (e.g., +1), for each timeout we decrease the value (e.g., -3), and when we see a timeout, freeze the increases for some time (e.g., 30 secs), to regain stability.
The feature is config gated, and the experiments show significant improvements for
mainnet
PFNs running in GCP, e.g., a40%
improvement in fast syncing time when combined with latency aware peer dialing (already landed).The PR offers several commits:
Test Plan
New and existing tests.