This continues and inherits some tasks from previous epic #13884
warmUp should use ReadOnly patricia trie implementation instead of re-implementing the trie. Assess depth of warmup commitment: warmup cache hidden behind PatriciaContext; use ReadOnly trie for warmup #20550 (not done: warmupKey still hand-decodes branch bytes, warmuper.go:150-207)
warmUp should be used while IBS executes or applyState flushing state changes to the SharedDomain - so every branch is already in cache ATM of ComputeCommitment()
warmUp cache should be hidden behind PatriciaContext implementation commitment: move warmup cache behind PatriciaContext #20277 (done in State Cache Consolidation (PR #1 of the perf stack) #21380 — WarmupCache deleted, commitment.BranchCache now sits on the commitment domain below PatriciaContext)
Configurability of the trie: tumblers for metrics, memoization, key referencing (btw not on trie side, schema here), deferred hashes derival, deferred branch writes commitment: gather trie tumblers/config into single TrieConfig struct #20553
SetTrace: replace trace bool with io.Writer commitment: replace trace bool with io.Writer (SetTraceWriter) #20551 (done in execution/commitment: route trie trace through an io.Writer #21859 )
Cell should embed cellEncodeState. So Cell become a structure of state Update and encodable information cellEncodeState (or better naming)
encoding of the hph.root and regular cell is different within 1 field ordering. Blocked by correct commit rebuild and task above Commitment: fix encoding of Root Cell and regular Cell #17612
investigate cache for deferred branch writes - should it use proxy map at all or could be better implemented
integration commitment rebuilds domain files and history with same state roots for sequential and concurrent commitment trie
fold: avoid merge with previous branchData value — encode whole row at once instead. commitment: fold — encode whole row at once, avoid merge with previous branchData #20549 (not done: commitment: eliminate BranchMerger from fold→encode→write hot path #20548 was closed unmerged; be.merger.Merge(prev, update) still in CollectUpdate, commitment.go:509)
deferred branch write re-reads previous branch value while it had it atm of being encoded into ETL
Simplify "state" value encoding - 712b could become something around 150b - no need to encode empty maps and always-zero state
move referencing/dereferencing logic of commitment outside of DB into app layer #17773
make unfold more readable commitment: replace unfold heuristics by named funcs/methods #13234
This continues and inherits some tasks from previous epic #13884
warmupKeystill hand-decodes branch bytes, warmuper.go:150-207)applyStateflushing state changes to the SharedDomain - so every branch is already in cache ATM ofComputeCommitment()PatriciaContextimplementation commitment: move warmup cache behind PatriciaContext #20277 (done in State Cache Consolidation (PR #1 of the perf stack) #21380 —WarmupCachedeleted,commitment.BranchCachenow sits on the commitment domain belowPatriciaContext)cellEncodeState. So Cell become a structure of stateUpdateand encodable informationcellEncodeState(or better naming)hph.rootand regular cell is different within 1 field ordering. Blocked by correct commit rebuild and task above Commitment: fix encoding ofRoot Celland regularCell#17612integration commitment rebuilds domain files and history with same state roots for sequential and concurrent commitment triefold: avoid merge with previous branchData value — encode whole row at once instead. commitment: fold — encode whole row at once, avoid merge with previous branchData #20549 (not done: commitment: eliminate BranchMerger from fold→encode→write hot path #20548 was closed unmerged;be.merger.Merge(prev, update)still inCollectUpdate, commitment.go:509)unfoldmore readable commitment: replaceunfoldheuristics by named funcs/methods #13234