diff --git a/server/mvcc/hash.go b/server/mvcc/hash.go index 84000f9da..16dcb13f1 100644 --- a/server/mvcc/hash.go +++ b/server/mvcc/hash.go @@ -22,7 +22,7 @@ import ( "go.etcd.io/etcd/server/v3/mvcc/buckets" ) -func unsafeHashByRev(tx backend.ReadTx, lower, upper revision, keep map[revision]struct{}) (uint32, error) { +func unsafeHashByRev(tx backend.ReadTx, lower, upper int64, keep map[revision]struct{}) (uint32, error) { h := newKVHasher(lower, upper, keep) err := tx.UnsafeForEach(buckets.Key, func(k, v []byte) error { h.WriteKeyValue(k, v) @@ -37,13 +37,13 @@ type kvHasher struct { keep map[revision]struct{} } -func newKVHasher(lower, upper revision, keep map[revision]struct{}) kvHasher { +func newKVHasher(lower, upper int64, keep map[revision]struct{}) kvHasher { h := crc32.New(crc32.MakeTable(crc32.Castagnoli)) h.Write(buckets.Key.Name()) return kvHasher{ hash: h, - lower: lower, - upper: upper, + lower: revision{main: lower}, + upper: revision{main: upper}, keep: keep, } } diff --git a/server/mvcc/kvstore.go b/server/mvcc/kvstore.go index 15eb4e6b7..290deee28 100644 --- a/server/mvcc/kvstore.go +++ b/server/mvcc/kvstore.go @@ -189,7 +189,7 @@ func (s *store) HashByRev(rev int64) (hash uint32, currentRev int64, compactRev tx.RLock() defer tx.RUnlock() s.mu.RUnlock() - hash, err = unsafeHashByRev(tx, revision{main: compactRev + 1}, revision{main: rev + 1}, keep) + hash, err = unsafeHashByRev(tx, compactRev+1, rev+1, keep) hashRevSec.Observe(time.Since(start).Seconds()) return hash, currentRev, compactRev, err } diff --git a/server/mvcc/kvstore_compaction.go b/server/mvcc/kvstore_compaction.go index c07b9e96e..b4091c7ff 100644 --- a/server/mvcc/kvstore_compaction.go +++ b/server/mvcc/kvstore_compaction.go @@ -38,7 +38,7 @@ func (s *store) scheduleCompaction(compactMainRev, prevCompactRev int64) (uint32 binary.BigEndian.PutUint64(end, uint64(compactMainRev+1)) batchNum := s.cfg.CompactionBatchLimit - h := newKVHasher(revision{main: prevCompactRev + 1}, revision{main: compactMainRev + 1}, keep) + h := newKVHasher(prevCompactRev+1, compactMainRev+1, keep) last := make([]byte, 8+1+8) for { var rev revision