From bc592c7b013de9fc4ed23de5da584b63a9335777 Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Tue, 17 May 2022 13:45:18 +0200 Subject: [PATCH] server: Extract unsafeHashByRev function Signed-off-by: Marek Siarkowicz --- server/mvcc/kvstore.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/server/mvcc/kvstore.go b/server/mvcc/kvstore.go index ae31d968c..ba5e87f98 100644 --- a/server/mvcc/kvstore.go +++ b/server/mvcc/kvstore.go @@ -191,12 +191,16 @@ func (s *store) HashByRev(rev int64) (hash uint32, currentRev int64, compactRev defer tx.RUnlock() s.mu.RUnlock() - upper := revision{main: rev + 1} - lower := revision{main: compactRev + 1} + hash, err = unsafeHashByRev(tx, revision{main: compactRev + 1}, revision{main: rev + 1}, keep) + hashRevSec.Observe(time.Since(start).Seconds()) + return hash, currentRev, compactRev, err +} + +func unsafeHashByRev(tx backend.ReadTx, lower, upper revision, keep map[revision]struct{}) (uint32, error) { h := crc32.New(crc32.MakeTable(crc32.Castagnoli)) h.Write(buckets.Key.Name()) - err = tx.UnsafeForEach(buckets.Key, func(k, v []byte) error { + err := tx.UnsafeForEach(buckets.Key, func(k, v []byte) error { kr := bytesToRev(k) if !upper.GreaterThan(kr) { return nil @@ -212,10 +216,7 @@ func (s *store) HashByRev(rev int64) (hash uint32, currentRev int64, compactRev h.Write(v) return nil }) - hash = h.Sum32() - - hashRevSec.Observe(time.Since(start).Seconds()) - return hash, currentRev, compactRev, err + return h.Sum32(), err } func (s *store) updateCompactRev(rev int64) (<-chan struct{}, error) {