Skip to content
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: parallel partial witness handling in the partial witness actor #12656

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

stedfn
Copy link
Contributor

@stedfn stedfn commented Dec 20, 2024

The PR unblocks the main thread of the PartialWitnessActor by detaching the handling of the partial witnesses to separate threads.

This results in a considerable reduction in the distribution latency of the state witness:
image
The image originates from a forknet experiment with 50 nodes, with each state witness artificially padded to reach a size of 30 MB.

Copy link

codecov bot commented Dec 20, 2024

Codecov Report

Attention: Patch coverage is 89.36170% with 10 lines in your changes missing coverage. Please review.

Project coverage is 70.59%. Comparing base (9d535a8) to head (0043c54).

Files with missing lines Patch % Lines
...alidation/partial_witness/partial_witness_actor.rs 82.14% 7 Missing and 3 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master   #12656   +/-   ##
=======================================
  Coverage   70.59%   70.59%           
=======================================
  Files         847      847           
  Lines      173209   173250   +41     
  Branches   173209   173250   +41     
=======================================
+ Hits       122271   122302   +31     
- Misses      45825    45841   +16     
+ Partials     5113     5107    -6     
Flag Coverage Δ
backward-compatibility 0.16% <0.00%> (-0.01%) ⬇️
db-migration 0.16% <0.00%> (-0.01%) ⬇️
genesis-check 1.36% <0.00%> (-0.01%) ⬇️
linux 69.24% <87.23%> (+0.01%) ⬆️
linux-nightly 70.19% <89.36%> (+0.01%) ⬆️
pytests 1.66% <0.00%> (-0.01%) ⬇️
sanity-checks 1.47% <0.00%> (-0.01%) ⬇️
unittests 70.42% <89.36%> (+<0.01%) ⬆️
upgradability 0.20% <0.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@stedfn stedfn changed the title parallel psw handling in actor feat: parallel partial witness handling Jan 3, 2025
@stedfn stedfn changed the title feat: parallel partial witness handling feat: parallel partial witness handling in the partial witness actor Jan 3, 2025
@stedfn stedfn self-assigned this Jan 3, 2025
@stedfn stedfn marked this pull request as ready for review January 3, 2025 13:24
@stedfn stedfn requested a review from a team as a code owner January 3, 2025 13:24
Copy link
Contributor

@shreyan-gupta shreyan-gupta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall other than a few minor comments

"Received invalid partial encoded state witness"
);
}
Err(err) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't particularly like how we have the handling of the cases here but I don't see another way out due to the async spawn..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, I wasn't sure what to do about it either

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants