From dc9562592d32d493989d2d22f754b1a33b957ea3 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 5 Aug 2025 14:59:45 +0800 Subject: [PATCH] triedb: add history cache metrics Signed-off-by: jsvisa --- triedb/pathdb/history_index.go | 6 ++++++ triedb/pathdb/metrics.go | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/triedb/pathdb/history_index.go b/triedb/pathdb/history_index.go index ceaee8cdec..c2cfbdf0cc 100644 --- a/triedb/pathdb/history_index.go +++ b/triedb/pathdb/history_index.go @@ -83,12 +83,14 @@ func loadIndexData(db ethdb.KeyValueReader, state stateIdent, cacher *historyCac var blob []byte if cacher != nil && cacher.index.Contains(key) { blob, _ = cacher.index.Get(key) + historyIndexCacheHitMeter.Mark(1) } else { if state.account { blob = rawdb.ReadAccountHistoryIndex(db, state.addressHash) } else { blob = rawdb.ReadStorageHistoryIndex(db, state.addressHash, state.storageHash) } + historyIndexCacheMissMeter.Mark(1) } if len(blob) == 0 { return nil, nil @@ -154,12 +156,14 @@ func (r *indexReader) readGreaterThan(id uint64) (uint64, error) { key := fmt.Sprintf("%s:%d", r.state.CacheKey(), desc.id) if r.cacher != nil && r.cacher.block.Contains(key) { blob, _ = r.cacher.block.Get(key) + historyBlockCacheHitMeter.Mark(1) } else { if r.state.account { blob = rawdb.ReadAccountHistoryIndexBlock(r.db, r.state.addressHash, desc.id) } else { blob = rawdb.ReadStorageHistoryIndexBlock(r.db, r.state.addressHash, r.state.storageHash, desc.id) } + historyBlockCacheMissMeter.Mark(1) if r.cacher != nil && len(blob) > 0 { r.cacher.block.Add(key, blob) @@ -230,12 +234,14 @@ func newIndexWriter(db ethdb.KeyValueReader, state stateIdent, cacher *historyCa key = fmt.Sprintf("%s:%d", state.CacheKey(), lastDesc.id) if cacher != nil && cacher.block.Contains(key) { indexBlock, _ = cacher.block.Get(key) + historyBlockCacheHitMeter.Mark(1) } else { if state.account { indexBlock = rawdb.ReadAccountHistoryIndexBlock(db, state.addressHash, lastDesc.id) } else { indexBlock = rawdb.ReadStorageHistoryIndexBlock(db, state.addressHash, state.storageHash, lastDesc.id) } + historyBlockCacheMissMeter.Mark(1) if cacher != nil { cacher.block.Add(key, indexBlock) } diff --git a/triedb/pathdb/metrics.go b/triedb/pathdb/metrics.go index 779f9d813f..3083b0af6e 100644 --- a/triedb/pathdb/metrics.go +++ b/triedb/pathdb/metrics.go @@ -81,6 +81,11 @@ var ( historicalAccountReadTimer = metrics.NewRegisteredResettingTimer("pathdb/history/account/reads", nil) historicalStorageReadTimer = metrics.NewRegisteredResettingTimer("pathdb/history/storage/reads", nil) + + historyIndexCacheHitMeter = metrics.NewRegisteredMeter("pathdb/history/index/cache/hit", nil) + historyIndexCacheMissMeter = metrics.NewRegisteredMeter("pathdb/history/index/cache/miss", nil) + historyBlockCacheHitMeter = metrics.NewRegisteredMeter("pathdb/history/block/cache/hit", nil) + historyBlockCacheMissMeter = metrics.NewRegisteredMeter("pathdb/history/block/cache/miss", nil) ) // Metrics in generation