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

backport parity storage limitation test #655

Merged
merged 1 commit into from Aug 14, 2022

Conversation

ETeissonniere
Copy link
Member

Backport paritytech/substrate#11699 so we can start monitoring our storage size.

Learning from the Parity Parachain Summit, it sounds like we need to start
limited our storage element sizes in order to keep our PoV size under control
and avoid having our parachain stop.

@ETeissonniere
Copy link
Member Author

Ignored as it fails currently due to pallet-preimage (being refactored by parity as we speak). Example output:

❯ cargo test -p runtime-eden tests::check_pallet_storage_sizes -- --ignored
    Finished test [unoptimized + debuginfo] target(s) in 1.07s
     Running unittests src/lib.rs (target/debug/deps/runtime_eden-88b1e26f21a8b8bf)

running 1 test
test tests::check_pallet_storage_sizes ... FAILED

failures:

---- tests::check_pallet_storage_sizes stdout ----
|             Pallet             |            Storage             | Max Values |    Max Size     |
| ------------------------------ | ------------------------------ | ---------- | --------------- |
| Preimage                       | PreimageFor                    | None       | Some(4194340)   |
| AuraExt                        | Authorities                    | Some(1)    | Some(3200004)   |
| Aura                           | Authorities                    | Some(1)    | Some(3200004)   |
| Vesting                        | VestingSchedules               | None       | Some(2850)      |
| RandomnessCollectiveFlip       | RandomMaterial                 | Some(1)    | Some(2594)      |
| AllocationsOracles             | Members                        | Some(1)    | Some(1601)      |
| ValidatorsSet                  | Members                        | Some(1)    | Some(1601)      |
| TechnicalMembership            | Members                        | Some(1)    | Some(1601)      |
| Balances                       | Locks                          | None       | Some(1299)      |
| Authorship                     | Uncles                         | Some(1)    | Some(727)       |
| Uniques                        | Attribute                      | None       | Some(364)       |
| Uniques                        | Class                          | None       | Some(178)       |
| Uniques                        | Asset                          | None       | Some(122)       |
| Balances                       | Account                        | None       | Some(112)       |
| Uniques                        | InstanceMetadataOf             | None       | Some(108)       |
| Uniques                        | ClassMetadataOf                | None       | Some(88)        |
| Uniques                        | Account                        | None       | Some(88)        |
| Preimage                       | StatusFor                      | None       | Some(82)        |
| Uniques                        | ClassAccount                   | None       | Some(68)        |
| Uniques                        | OwnershipAcceptance            | None       | Some(52)        |
| Balances                       | Reserves                       | None       | Some(49)        |
| AllocationsOracles             | Prime                          | Some(1)    | Some(32)        |
| ValidatorsSet                  | Prime                          | Some(1)    | Some(32)        |
| Authorship                     | Author                         | Some(1)    | Some(32)        |
| TechnicalMembership            | Prime                          | Some(1)    | Some(32)        |
| Uniques                        | CollectionMaxSupply            | None       | Some(24)        |
| TransactionPayment             | NextFeeMultiplier              | Some(1)    | Some(16)        |
| Balances                       | TotalIssuance                  | Some(1)    | Some(16)        |
| Aura                           | CurrentSlot                    | Some(1)    | Some(8)         |
| Timestamp                      | Now                            | Some(1)    | Some(8)         |
| ParachainInfo                  | ParachainId                    | Some(1)    | Some(4)         |
| Vesting                        | CounterForVestingSchedules     | Some(1)    | Some(4)         |
| Allocations                    | StorageVersion                 | Some(1)    | Some(1)         |
| Poa                            | StorageVersion                 | Some(1)    | Some(1)         |
| Authorship                     | DidSetUncles                   | Some(1)    | Some(1)         |
| Vesting                        | StorageVersion                 | Some(1)    | Some(1)         |
| TransactionPayment             | StorageVersion                 | Some(1)    | Some(1)         |
| Balances                       | StorageVersion                 | Some(1)    | Some(1)         |
| Timestamp                      | DidUpdate                      | Some(1)    | Some(1)         |
| Multisig                       | Calls                          | None       | None            |
| Multisig                       | Multisigs                      | None       | None            |
| ParachainSystem                | CustomValidationHeadData       | Some(1)    | None            |
| ParachainSystem                | AuthorizedUpgrade              | Some(1)    | None            |
| ParachainSystem                | ReservedDmpWeightOverride      | Some(1)    | None            |
| ParachainSystem                | ReservedXcmpWeightOverride     | Some(1)    | None            |
| ParachainSystem                | AnnouncedHrmpMessagesPerCandidate | Some(1)    | None            |
| ParachainSystem                | PendingUpwardMessages          | Some(1)    | None            |
| ParachainSystem                | UpwardMessages                 | Some(1)    | None            |
| ParachainSystem                | HrmpOutboundMessages           | Some(1)    | None            |
| ParachainSystem                | HrmpWatermark                  | Some(1)    | None            |
| ParachainSystem                | ProcessedDownwardMessages      | Some(1)    | None            |
| ParachainSystem                | LastHrmpMqcHeads               | Some(1)    | None            |
| ParachainSystem                | LastDmqMqcHead                 | Some(1)    | None            |
| ParachainSystem                | HostConfiguration              | Some(1)    | None            |
| ParachainSystem                | RelevantMessagingState         | Some(1)    | None            |
| ParachainSystem                | RelayStateProof                | Some(1)    | None            |
| ParachainSystem                | UpgradeRestrictionSignal       | Some(1)    | None            |
| ParachainSystem                | LastRelayChainBlockNumber      | Some(1)    | None            |
| ParachainSystem                | DidSetValidationCode           | Some(1)    | None            |
| ParachainSystem                | ValidationData                 | Some(1)    | None            |
| ParachainSystem                | NewValidationCode              | Some(1)    | None            |
| ParachainSystem                | PendingValidationCode          | Some(1)    | None            |
| Session                        | KeyOwner                       | None       | None            |
| Session                        | NextKeys                       | None       | None            |
| Session                        | DisabledValidators             | Some(1)    | None            |
| Session                        | QueuedKeys                     | Some(1)    | None            |
| Session                        | QueuedChanged                  | Some(1)    | None            |
| Session                        | CurrentIndex                   | Some(1)    | None            |
| Session                        | Validators                     | Some(1)    | None            |
| TechnicalCommittee             | Prime                          | Some(1)    | None            |
| TechnicalCommittee             | Members                        | Some(1)    | None            |
| TechnicalCommittee             | ProposalCount                  | Some(1)    | None            |
| TechnicalCommittee             | Voting                         | None       | None            |
| TechnicalCommittee             | ProposalOf                     | None       | None            |
| TechnicalCommittee             | Proposals                      | Some(1)    | None            |
| Scheduler                      | Lookup                         | None       | None            |
| Scheduler                      | Agenda                         | None       | None            |
| System                         | ExecutionPhase                 | Some(1)    | None            |
| System                         | UpgradedToTripleRefCount       | Some(1)    | None            |
| System                         | UpgradedToU32RefCount          | Some(1)    | None            |
| System                         | LastRuntimeUpgrade             | Some(1)    | None            |
| System                         | EventTopics                    | None       | None            |
| System                         | EventCount                     | Some(1)    | None            |
| System                         | Events                         | Some(1)    | None            |
| System                         | Digest                         | Some(1)    | None            |
| System                         | ParentHash                     | Some(1)    | None            |
| System                         | Number                         | Some(1)    | None            |
| System                         | ExtrinsicData                  | None       | None            |
| System                         | BlockHash                      | None       | None            |
| System                         | AllExtrinsicsLen               | Some(1)    | None            |
| System                         | BlockWeight                    | Some(1)    | None            |
| System                         | ExtrinsicCount                 | Some(1)    | None            |
| System                         | Account                        | None       | None            |
thread 'tests::check_pallet_storage_sizes' panicked at '1 pallets have too big storage', runtimes/eden/src/lib.rs:420:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    tests::check_pallet_storage_sizes

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.01s

error: test failed, to rerun pass '-p runtime-eden --lib'

@ETeissonniere ETeissonniere requested a review from a team August 5, 2022 13:20
@codecov
Copy link

codecov bot commented Aug 5, 2022

Codecov Report

Merging #655 (db3b46d) into master (0f00c7b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #655   +/-   ##
=======================================
  Coverage   89.64%   89.64%           
=======================================
  Files          33       33           
  Lines        6169     6169           
=======================================
  Hits         5530     5530           
  Misses        639      639           
Impacted Files Coverage Δ
runtimes/eden/src/lib.rs 4.39% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@ETeissonniere ETeissonniere merged commit 5e90244 into master Aug 14, 2022
@ETeissonniere ETeissonniere deleted the feat/measure-pallet-storage-size branch August 14, 2022 09:35
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.

None yet

2 participants