-
Notifications
You must be signed in to change notification settings - Fork 107
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
change(state): Write finalized blocks to the state in a separate thread, to avoid network and RPC hangs #5134
Conversation
1cd837d
to
2a044fc
Compare
6ba58f8
to
e7b070d
Compare
0082a2b
to
9fe233a
Compare
e7b070d
to
5e7943a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
9fe233a
to
56e36f4
Compare
a7c50ad
to
fc476f3
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
5544cfa
to
96d3966
Compare
That's not possible, so I just updated the docs. |
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.
Excellent.
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.
Looks great. I left one minor q.
Co-authored-by: Marek <[email protected]>
One last fix to the block height check in b150e3f, and I think we're done. |
Motivation
This PR starts moving state block write requests into their own task.
When it is finished, it will make state block writes fully concurrent.
Part of #4937.
Closes #5125.
Designs
See #4937 and https://docs.google.com/drawings/d/1FXpAUlenDAjl8nkftrypdAPsj0jr-Ut9gZlSP57nuyc/edit
Solution
Add a block write task:
Add block write channels:
block_in_place()
Deal with errors & shutdowns:
Related fixes:
Related cleanups:
Testing
We should run a full sync on this before we merge, and make sure it is not significantly slower than the
main
branch.Review
This PR is part of regular scheduled work.
Reviewer Checklist
Follow Up Work
Handle non-finalized blocks.
Handle task exits and panics correctly.
Testing.