[WIP] perf: remove TrieUpdates::removed_nodes and StorageTrieUpdates::removed_nodes (attempt 2) #13929
+190
−360
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Replaces #13872. This PR is
only slightly worse thanas good as #13872, but the code changes are minimal.Checklist
benches/*
Motivation
Under high load (TPS > 50,000),
MemoryOverlayStateProviderRef::trie_state
is taking a considerable amount of time (over 200ms). One factor contributing to this is theTrieUpdates::extend_ref
function. Optimizing the struct definition ofTrieUpdates
could help improve the performance of theextend_ref
function.Notable changes
Benchmarks