server: Pass revision as int

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
This commit is contained in:
Marek Siarkowicz 2022-05-19 14:08:52 +02:00
parent 21e5d5d2b6
commit 2b8dd0de4e
3 changed files with 6 additions and 6 deletions

View File

@ -22,7 +22,7 @@ import (
"go.etcd.io/etcd/server/v3/mvcc/buckets" "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) h := newKVHasher(lower, upper, keep)
err := tx.UnsafeForEach(buckets.Key, func(k, v []byte) error { err := tx.UnsafeForEach(buckets.Key, func(k, v []byte) error {
h.WriteKeyValue(k, v) h.WriteKeyValue(k, v)
@ -37,13 +37,13 @@ type kvHasher struct {
keep map[revision]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 := crc32.New(crc32.MakeTable(crc32.Castagnoli))
h.Write(buckets.Key.Name()) h.Write(buckets.Key.Name())
return kvHasher{ return kvHasher{
hash: h, hash: h,
lower: lower, lower: revision{main: lower},
upper: upper, upper: revision{main: upper},
keep: keep, keep: keep,
} }
} }

View File

@ -189,7 +189,7 @@ func (s *store) HashByRev(rev int64) (hash uint32, currentRev int64, compactRev
tx.RLock() tx.RLock()
defer tx.RUnlock() defer tx.RUnlock()
s.mu.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()) hashRevSec.Observe(time.Since(start).Seconds())
return hash, currentRev, compactRev, err return hash, currentRev, compactRev, err
} }

View File

@ -38,7 +38,7 @@ func (s *store) scheduleCompaction(compactMainRev, prevCompactRev int64) (uint32
binary.BigEndian.PutUint64(end, uint64(compactMainRev+1)) binary.BigEndian.PutUint64(end, uint64(compactMainRev+1))
batchNum := s.cfg.CompactionBatchLimit 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) last := make([]byte, 8+1+8)
for { for {
var rev revision var rev revision