From bf5f6f9e30635881b8dea5914fe6ae769f70364f Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Sun, 12 Mar 2023 20:56:11 +0100 Subject: [PATCH] Limit the number of db size on disc calculations --- db/rocksdb.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/db/rocksdb.go b/db/rocksdb.go index f911cb1f..2c47c971 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -1651,13 +1651,26 @@ func dirSize(path string) (int64, error) { return size, err } +// limit the number of size on disk calculations by restricting it to once a minute +var databaseSizeOnDisk int64 +var nextDatabaseSizeOnDisk time.Time +var databaseSizeOnDiskMux sync.Mutex + // DatabaseSizeOnDisk returns size of the database in bytes func (d *RocksDB) DatabaseSizeOnDisk() int64 { + databaseSizeOnDiskMux.Lock() + defer databaseSizeOnDiskMux.Unlock() + now := time.Now().UTC() + if now.Before(nextDatabaseSizeOnDisk) { + return databaseSizeOnDisk + } size, err := dirSize(d.path) if err != nil { glog.Warning("rocksdb: DatabaseSizeOnDisk: ", err) return 0 } + databaseSizeOnDisk = size + nextDatabaseSizeOnDisk = now.Add(60 * time.Second) return size }