-
Notifications
You must be signed in to change notification settings - Fork 796
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
availability-recovery: bump chunk fetch threshold to 1MB for Polkadot and 4MB for Kusama + testnets #4399
Conversation
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Currently, the network up(load) requirements are quite low in this regard and making everyone download from backers in all the cases would change that quite a bit (+160MBit/s with backing group size of 3 assuming all 3 have the PoV and not just 2). I would also like to see this tested in the presence of disputes, when every paravalidator needs to download the PoV, not just 30. To be on the safer side, would it be possible to gate this change to be Kusama only? Or start with a lower limit, e.g. 1MB. |
Is this asymmetric upload/download specs documented anywhere. The specs I am looking at say:
Yeah, with a backing group of 3, the load in worst case is 50% of this network bandwidth. However in the case of disputes the backers would be hammered, so the download of the PoV will fallback to chunks so we should be fine as this is an exceptional situation. We can definitely try this scenario with subsystem benchmarks, or are you suggesting we do a Versi test ?
This is doable per chain. I'd go for that rather than 1MB. |
Yes, we're worried about variance here, since the averages stay the same. We'll presumably need the tit-for-tat game in availability rewards eventually, since you'd save lots by just not helping others check. |
…reim/bump_chunks_fetch_threshold
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Switched to 1MB ok Polkadot and 4MB on Kusama + all testnets. @ordian PTAL. |
The CI pipeline was cancelled due to failure one of the required jobs. |
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 reasonable! Don't forget to update the PR description and title (will be used for commit message and they're outdated)
… and 4MB for Kusama + testnets (paritytech#4399) Doing this change ensures that we minimize the CPU usage we spend in reed-solomon by only doing the re-encoding into chunks if PoV size is less than 4MB (which means all PoVs right now) Based on susbystem benchmark results we concluded that it is safe to bump this number higher. At worst case scenario the network pressure for a backing group of 5 is around 25% of the network bandwidth in hw specs. Assuming 6s block times (max_candidate_depth 3) and needed_approvals 30 the amount of bandwidth usage of a backing group used would hover above `30 * 4 * 3 = 360MB` per relay chain block. Given a backing group of 5 that gives 72MB per block per validator -> 12 MB/s. <details> <summary>Reality check on Kusama PoV sizes (click for chart)</summary> <br> <img width="697" alt="Screenshot 2024-05-07 at 14 30 38" src="https://github.com/paritytech/polkadot-sdk/assets/54316454/bfed32d4-8623-48b0-9ec0-8b95dd2a9d8c"> </details> --------- Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
… and 4MB for Kusama + testnets (paritytech#4399) Doing this change ensures that we minimize the CPU usage we spend in reed-solomon by only doing the re-encoding into chunks if PoV size is less than 4MB (which means all PoVs right now) Based on susbystem benchmark results we concluded that it is safe to bump this number higher. At worst case scenario the network pressure for a backing group of 5 is around 25% of the network bandwidth in hw specs. Assuming 6s block times (max_candidate_depth 3) and needed_approvals 30 the amount of bandwidth usage of a backing group used would hover above `30 * 4 * 3 = 360MB` per relay chain block. Given a backing group of 5 that gives 72MB per block per validator -> 12 MB/s. <details> <summary>Reality check on Kusama PoV sizes (click for chart)</summary> <br> <img width="697" alt="Screenshot 2024-05-07 at 14 30 38" src="https://github.com/paritytech/polkadot-sdk/assets/54316454/bfed32d4-8623-48b0-9ec0-8b95dd2a9d8c"> </details> --------- Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Doing this change ensures that we minimize the CPU usage we spend in reed-solomon by only doing the re-encoding into chunks if PoV size is less than 4MB (which means all PoVs right now)
Based on susbystem benchmark results we concluded that it is safe to bump this number higher. At worst case scenario the network pressure for a backing group of 5 is around 25% of the network bandwidth in hw specs.
Assuming 6s block times (max_candidate_depth 3) and needed_approvals 30 the amount of bandwidth usage of a backing group used would hover above
30 * 4 * 3 = 360MB
per relay chain block. Given a backing group of 5 that gives 72MB per block per validator -> 12 MB/s.Reality check on Kusama PoV sizes (click for chart)