fix: remove recomputing memtrie node memory usages #12362
Merged
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.
Issue: #12361
After #12359, we can take memory usages from
updated_nodes
instead of recomputing them again.The original plan was to remove reading child nodes completely, where it is not necessary. However, we still need to read hash, and hash is still a part of child'
MemTrieNodeId
... Moreover, it doesn't make sense to store hashes of children in the node for memory savings.I think we just need to live with it then. At least the usecase is very clear now. If we ever want to make memtrie recording cleaner (make it a side effect of
MemTrieNodePtr::view
?), we need to skip recording node only if its hash is needed.