From ca530362ca083e335c50a0c84fb6b81c4ce3b7ab Mon Sep 17 00:00:00 2001 From: Delweng Date: Wed, 12 Mar 2025 05:30:02 +0800 Subject: [PATCH] ethdb: no need to check the metric nilness (#31353) The metric always has a value, no need to check for the nil. Seems this code was first introduced here https://github.com/ethereum/go-ethereum/blob/054412e33528e53f6deae940c870217b614707b9/metrics/meter.go#L45-L48 As the `nilMeter` was removed, so this check seems is useless. Signed-off-by: jsvisa --- ethdb/leveldb/leveldb.go | 32 ++++++++------------------------ ethdb/pebble/pebble.go | 33 +++++++++------------------------ 2 files changed, 17 insertions(+), 48 deletions(-) diff --git a/ethdb/leveldb/leveldb.go b/ethdb/leveldb/leveldb.go index 1d88ed460b..7f47523b82 100644 --- a/ethdb/leveldb/leveldb.go +++ b/ethdb/leveldb/leveldb.go @@ -368,29 +368,17 @@ func (db *Database) meter(refresh time.Duration, namespace string) { compactions[i%2][2] = stats.LevelRead.Sum() compactions[i%2][3] = stats.LevelWrite.Sum() // Update all the requested meters - if db.diskSizeGauge != nil { - db.diskSizeGauge.Update(compactions[i%2][0]) - } - if db.compTimeMeter != nil { - db.compTimeMeter.Mark(compactions[i%2][1] - compactions[(i-1)%2][1]) - } - if db.compReadMeter != nil { - db.compReadMeter.Mark(compactions[i%2][2] - compactions[(i-1)%2][2]) - } - if db.compWriteMeter != nil { - db.compWriteMeter.Mark(compactions[i%2][3] - compactions[(i-1)%2][3]) - } + db.diskSizeGauge.Update(compactions[i%2][0]) + db.compTimeMeter.Mark(compactions[i%2][1] - compactions[(i-1)%2][1]) + db.compReadMeter.Mark(compactions[i%2][2] - compactions[(i-1)%2][2]) + db.compWriteMeter.Mark(compactions[i%2][3] - compactions[(i-1)%2][3]) var ( delayN = int64(stats.WriteDelayCount) duration = stats.WriteDelayDuration paused = stats.WritePaused ) - if db.writeDelayNMeter != nil { - db.writeDelayNMeter.Mark(delayN - delaystats[0]) - } - if db.writeDelayMeter != nil { - db.writeDelayMeter.Mark(duration.Nanoseconds() - delaystats[1]) - } + db.writeDelayNMeter.Mark(delayN - delaystats[0]) + db.writeDelayMeter.Mark(duration.Nanoseconds() - delaystats[1]) // If a warning that db is performing compaction has been displayed, any subsequent // warnings will be withheld for one minute not to overwhelm the user. if paused && delayN-delaystats[0] == 0 && duration.Nanoseconds()-delaystats[1] == 0 && @@ -404,12 +392,8 @@ func (db *Database) meter(refresh time.Duration, namespace string) { nRead = int64(stats.IORead) nWrite = int64(stats.IOWrite) ) - if db.diskReadMeter != nil { - db.diskReadMeter.Mark(nRead - iostats[0]) - } - if db.diskWriteMeter != nil { - db.diskWriteMeter.Mark(nWrite - iostats[1]) - } + db.diskReadMeter.Mark(nRead - iostats[0]) + db.diskWriteMeter.Mark(nWrite - iostats[1]) iostats[0], iostats[1] = nRead, nWrite db.memCompGauge.Update(int64(stats.MemComp)) diff --git a/ethdb/pebble/pebble.go b/ethdb/pebble/pebble.go index 8d6fcd2d51..b87ecb2595 100644 --- a/ethdb/pebble/pebble.go +++ b/ethdb/pebble/pebble.go @@ -465,12 +465,8 @@ func (d *Database) meter(refresh time.Duration, namespace string) { compReads[i%2] = compRead nWrites[i%2] = nWrite - if d.writeDelayNMeter != nil { - d.writeDelayNMeter.Mark(writeDelayCounts[i%2] - writeDelayCounts[(i-1)%2]) - } - if d.writeDelayMeter != nil { - d.writeDelayMeter.Mark(writeDelayTimes[i%2] - writeDelayTimes[(i-1)%2]) - } + d.writeDelayNMeter.Mark(writeDelayCounts[i%2] - writeDelayCounts[(i-1)%2]) + d.writeDelayMeter.Mark(writeDelayTimes[i%2] - writeDelayTimes[(i-1)%2]) // Print a warning log if writing has been stalled for a while. The log will // be printed per minute to avoid overwhelming users. if d.writeStalled.Load() && writeDelayCounts[i%2] == writeDelayCounts[(i-1)%2] && @@ -478,24 +474,13 @@ func (d *Database) meter(refresh time.Duration, namespace string) { d.log.Warn("Database compacting, degraded performance") lastWriteStallReport = time.Now() } - if d.compTimeMeter != nil { - d.compTimeMeter.Mark(compTimes[i%2] - compTimes[(i-1)%2]) - } - if d.compReadMeter != nil { - d.compReadMeter.Mark(compReads[i%2] - compReads[(i-1)%2]) - } - if d.compWriteMeter != nil { - d.compWriteMeter.Mark(compWrites[i%2] - compWrites[(i-1)%2]) - } - if d.diskSizeGauge != nil { - d.diskSizeGauge.Update(int64(stats.DiskSpaceUsage())) - } - if d.diskReadMeter != nil { - d.diskReadMeter.Mark(0) // pebble doesn't track non-compaction reads - } - if d.diskWriteMeter != nil { - d.diskWriteMeter.Mark(nWrites[i%2] - nWrites[(i-1)%2]) - } + d.compTimeMeter.Mark(compTimes[i%2] - compTimes[(i-1)%2]) + d.compReadMeter.Mark(compReads[i%2] - compReads[(i-1)%2]) + d.compWriteMeter.Mark(compWrites[i%2] - compWrites[(i-1)%2]) + d.diskSizeGauge.Update(int64(stats.DiskSpaceUsage())) + d.diskReadMeter.Mark(0) // pebble doesn't track non-compaction reads + d.diskWriteMeter.Mark(nWrites[i%2] - nWrites[(i-1)%2]) + // See https://github.com/cockroachdb/pebble/pull/1628#pullrequestreview-1026664054 manuallyAllocated := stats.BlockCache.Size + int64(stats.MemTable.Size) + int64(stats.MemTable.ZombieSize) d.manualMemAllocGauge.Update(manuallyAllocated)