-
Notifications
You must be signed in to change notification settings - Fork 766
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
glutton: also increase parachain block length #4728
Conversation
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
So, this is still a sub optimal solution. You want to benchmark something and come up with something that will again "cheat" in some way. |
That is a correct observation, PoV size is actually hard to control even without my change due to the compression. This is just a synthetic workload, from that perspective I consider it optimal solution for load testing. If we want real workload then glutton is not designed for it. Later edit: If we use random data in the inherent then we increase the PoV size further. I haven't checked yet to see if we hit max PoV size before max block size with this random data. |
I mean we don't need to fill it perfectly. We also should not try to "predict" this, but using some more random data, would be a better reproduction. |
We definitely cannot pad with zeros since some compression occurs. Actual parablocks create Merkle proofs when they access state, so the bandwidth never winds up being independent from the computation. You could compute the Merkle root of some random data, but.. In fact, hash function compression functions have similar exucution times in the two modes: |
This is a synthetic workload, but yeah not going yo use zeroes afterall. I will use trash data to make sure the block length going up increases the PoV size. There will be a:” block_length” config percentage which tells how much of max block length we want to use. Extra weight left will be consumed proportionately to “storage” parameter. This way we can do up to max block length parachain blocks. If “block_length” is zero current behaviour is kept: tiny parachain blocks that fully stress the relay chain - 2s exec and 5MB PoV. |
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
The CI pipeline was cancelled due to failure one of the required jobs. |
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
…reim/glutton_bloat_block
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Glutton currently is useful mostly for stress testing relay chain validators. It is unusable for testing the collator networking and block announcement and import scenarios. This PR resolves that by improving glutton pallet to also buff up the blocks, up to the runtime configured `BlockLength`. ### How it works Includes an additional inherent in each parachain block. The `garbage` argument passed to the inherent is filled with trash data. It's size is computed by applying the newly introduced `block_length` percentage to the maximum block length for mandatory dispatch class. After paritytech#4765 is merged, the length of inherent extrinsic will be added to the total block proof size. The remaining weight is burnt in `on_idle` as configured by the `storage` percentage parameter. TODO: - [x] PRDoc - [x] Readme update - [x] Add tests --------- Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Glutton currently is useful mostly for stress testing relay chain validators. It is unusable for testing the collator networking and block announcement and import scenarios. This PR resolves that by improving glutton pallet to also buff up the blocks, up to the runtime configured `BlockLength`. ### How it works Includes an additional inherent in each parachain block. The `garbage` argument passed to the inherent is filled with trash data. It's size is computed by applying the newly introduced `block_length` percentage to the maximum block length for mandatory dispatch class. After paritytech#4765 is merged, the length of inherent extrinsic will be added to the total block proof size. The remaining weight is burnt in `on_idle` as configured by the `storage` percentage parameter. TODO: - [x] PRDoc - [x] Readme update - [x] Add tests --------- Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Glutton currently is useful mostly for stress testing relay chain validators. It is unusable for testing the collator networking and block announcement and import scenarios. This PR resolves that by improving glutton pallet to also buff up the blocks, up to the runtime configured
BlockLength
.How it works
Includes an additional inherent in each parachain block. The
garbage
argument passed to the inherent is filled with trash data. It's size is computed by applying the newly introducedblock_length
percentage to the maximum block length for mandatory dispatch class. After #4765 is merged, the length of inherent extrinsic will be added to the total block proof size.The remaining weight is burnt in
on_idle
as configured by thestorage
percentage parameter.TODO: