Rework storage iterators (#13284)
* Rework storage iterators * Make sure storage iteration is also accounted for when benchmarking * Use `trie-db` from crates.io * Appease clippy * Bump `trie-bench` to 0.35.0 * Fix tests' compilation * Update comment to clarify how `IterArgs::start_at` works * Add extra tests * Fix iterators on `Client` so that they behave as before * Add extra `unwrap`s in tests * More clippy fixes * Come on clippy, give me a break already * Rename `allow_missing` to `stop_on_incomplete_database` * Add `#[inline]` to `with_recorder_and_cache` * Use `with_recorder_and_cache` in `with_trie_db`; add doc comment * Simplify code: use `with_trie_db` in `next_storage_key_from_root` * Remove `expect`s in the benchmarking CLI * Add extra doc comments * Move `RawIter` before `TrieBackendEssence` (no code changes; just cut-paste) * Remove a TODO in tests * Update comment for `StorageIterator::was_complete` * Update `trie-db` to 0.25.1
Showing
- substrate/Cargo.lock 9 additions, 5 deletionssubstrate/Cargo.lock
- substrate/client/api/src/backend.rs 126 additions, 60 deletionssubstrate/client/api/src/backend.rs
- substrate/client/db/Cargo.toml 1 addition, 0 deletionssubstrate/client/db/Cargo.toml
- substrate/client/db/src/bench.rs 131 additions, 97 deletionssubstrate/client/db/src/bench.rs
- substrate/client/db/src/lib.rs 31 additions, 51 deletionssubstrate/client/db/src/lib.rs
- substrate/client/db/src/record_stats_state.rs 36 additions, 50 deletionssubstrate/client/db/src/record_stats_state.rs
- substrate/client/rpc/src/state/state_full.rs 14 additions, 8 deletionssubstrate/client/rpc/src/state/state_full.rs
- substrate/client/service/src/chain_ops/export_raw_state.rs 22 additions, 24 deletionssubstrate/client/service/src/chain_ops/export_raw_state.rs
- substrate/client/service/src/client/client.rs 16 additions, 46 deletionssubstrate/client/service/src/client/client.rs
- substrate/client/service/test/src/client/mod.rs 84 additions, 18 deletionssubstrate/client/service/test/src/client/mod.rs
- substrate/primitives/state-machine/Cargo.toml 3 additions, 3 deletionssubstrate/primitives/state-machine/Cargo.toml
- substrate/primitives/state-machine/src/backend.rs 213 additions, 23 deletionssubstrate/primitives/state-machine/src/backend.rs
- substrate/primitives/state-machine/src/ext.rs 31 additions, 24 deletionssubstrate/primitives/state-machine/src/ext.rs
- substrate/primitives/state-machine/src/lib.rs 1 addition, 1 deletionsubstrate/primitives/state-machine/src/lib.rs
- substrate/primitives/state-machine/src/testing.rs 6 additions, 1 deletionsubstrate/primitives/state-machine/src/testing.rs
- substrate/primitives/state-machine/src/trie_backend.rs 184 additions, 52 deletionssubstrate/primitives/state-machine/src/trie_backend.rs
- substrate/primitives/state-machine/src/trie_backend_essence.rs 162 additions, 251 deletions...rate/primitives/state-machine/src/trie_backend_essence.rs
- substrate/primitives/storage/src/lib.rs 1 addition, 0 deletionssubstrate/primitives/storage/src/lib.rs
- substrate/primitives/trie/Cargo.toml 2 additions, 2 deletionssubstrate/primitives/trie/Cargo.toml
- substrate/primitives/trie/src/cache/mod.rs 2 additions, 2 deletionssubstrate/primitives/trie/src/cache/mod.rs
Please register or sign in to comment