diff --git a/swarm/storage/ldbstore.go b/swarm/storage/ldbstore.go index f98809fc6..9e4d63841 100644 --- a/swarm/storage/ldbstore.go +++ b/swarm/storage/ldbstore.go @@ -317,7 +317,6 @@ func decodeData(addr Address, data []byte) (*chunk, error) { } func (s *LDBStore) collectGarbage() error { - // prevent duplicate gc from starting when one is already running select { case <-s.gc.runC: @@ -335,7 +334,6 @@ func (s *LDBStore) collectGarbage() error { s.startGC(int(entryCnt)) log.Debug("collectGarbage", "target", s.gc.target, "entryCnt", entryCnt) - var totalDeleted int for s.gc.count < s.gc.target { it := s.db.NewIterator() ok := it.Seek([]byte{keyGCIdx}) @@ -371,15 +369,15 @@ func (s *LDBStore) collectGarbage() error { } s.writeBatch(s.gc.batch, wEntryCnt) + log.Trace("garbage collect batch done", "batch", singleIterationCount, "total", s.gc.count) s.lock.Unlock() it.Release() - log.Trace("garbage collect batch done", "batch", singleIterationCount, "total", s.gc.count) } - s.gc.runC <- struct{}{} + metrics.GetOrRegisterCounter("ldbstore.collectgarbage.delete", nil).Inc(int64(s.gc.count)) log.Debug("garbage collect done", "c", s.gc.count) + s.gc.runC <- struct{}{} - metrics.GetOrRegisterCounter("ldbstore.collectgarbage.delete", nil).Inc(int64(totalDeleted)) return nil }