From 157bc26b5a4e1ff39386f5d6cced7ec508df76e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 7 Jun 2022 17:36:55 +0300 Subject: [PATCH] core/state/snapshot: fix expensive metric, track snapshot flushed keys --- core/state/snapshot/snapshot.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/state/snapshot/snapshot.go b/core/state/snapshot/snapshot.go index e71ce0be93..0d62185db1 100644 --- a/core/state/snapshot/snapshot.go +++ b/core/state/snapshot/snapshot.go @@ -550,8 +550,10 @@ func diffToDisk(bottom *diffLayer) *diskLayer { base.cache.Set(hash[:], data) snapshotCleanAccountWriteMeter.Mark(int64(len(data))) + snapshotFlushAccountItemMeter.Mark(1) - snapshotFlushAccountSizeMeter.Mark(int64(len(data))) + snapshotFlushAccountSizeMeter.Mark(common.HashLength + int64(len(data))) + if metrics.EnabledExpensive { if oldbytes := len(rawdb.ReadAccountSnapshot(base.diskdb, hash)); oldbytes == 0 { snapshotAccountCountGrowthMeter.Mark(1) @@ -596,16 +598,19 @@ func diffToDisk(bottom *diffLayer) *diskLayer { } else { snapshotStorageBytesGrowthMeter.Mark(int64(len(data) - oldbytes)) } + snapshotFlushStorageItemMeter.Mark(1) + snapshotFlushStorageSizeMeter.Mark(2*common.HashLength + int64(len(data))) } } else { rawdb.DeleteStorageSnapshot(batch, accountHash, storageHash) base.cache.Set(append(accountHash[:], storageHash[:]...), nil) - snapshotStorageCountGrowthMeter.Mark(-1) - snapshotStorageBytesGrowthMeter.Mark(-int64(2*common.HashLength + len(rawdb.ReadStorageSnapshot(base.diskdb, accountHash, storageHash)))) + if metrics.EnabledExpensive { + snapshotStorageCountGrowthMeter.Mark(-1) + snapshotStorageBytesGrowthMeter.Mark(-int64(2*common.HashLength + len(rawdb.ReadStorageSnapshot(base.diskdb, accountHash, storageHash)))) + } + snapshotFlushStorageItemMeter.Mark(1) } - snapshotFlushStorageItemMeter.Mark(1) - snapshotFlushStorageSizeMeter.Mark(int64(len(data))) } } // Update the snapshot block marker and write any remainder data