diff --git a/ethdb/pebble/pebble.go b/ethdb/pebble/pebble.go index 58a521f6fb..e2cb55c398 100644 --- a/ethdb/pebble/pebble.go +++ b/ethdb/pebble/pebble.go @@ -18,6 +18,7 @@ package pebble import ( + "errors" "fmt" "runtime" "strings" @@ -121,12 +122,14 @@ func (d *Database) onCompactionBegin(info pebble.CompactionInfo) { } func (d *Database) onCompactionEnd(info pebble.CompactionInfo) { - if d.activeComp == 1 { + switch d.activeComp { + case 1: d.compTime.Add(int64(time.Since(d.compStartTime))) - } else if d.activeComp == 0 { + case 0: panic("should not happen") + default: + d.activeComp-- } - d.activeComp-- } func (d *Database) onWriteStallBegin(b pebble.WriteStallBeginInfo) { @@ -690,24 +693,25 @@ func (b *batch) Replay(w ethdb.KeyValueWriter) error { } // The (k,v) slices might be overwritten if the batch is reset/reused, // and the receiver should copy them if they are to be retained long-term. - if kind == pebble.InternalKeyKindSet { + switch kind { + case pebble.InternalKeyKindSet: if err = w.Put(k, v); err != nil { return err } - } else if kind == pebble.InternalKeyKindDelete { + case pebble.InternalKeyKindDelete: if err = w.Delete(k); err != nil { return err } - } else if kind == pebble.InternalKeyKindRangeDelete { + case pebble.InternalKeyKindRangeDelete: // For range deletion, k is the start key and v is the end key if rangeDeleter, ok := w.(ethdb.KeyValueRangeDeleter); ok { if err = rangeDeleter.DeleteRange(k, v); err != nil { return err } } else { - return fmt.Errorf("ethdb.KeyValueWriter does not implement DeleteRange") + return errors.New("ethdb.KeyValueWriter does not implement DeleteRange") } - } else { + default: return fmt.Errorf("unhandled operation, keytype: %v", kind) } }