mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
server: Store real rv range in hasher
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
This commit is contained in:
parent
991b429336
commit
1ff59923d6
@ -33,7 +33,7 @@ func unsafeHashByRev(tx backend.ReadTx, lower, upper int64, keep map[revision]st
|
||||
|
||||
type kvHasher struct {
|
||||
hash hash.Hash32
|
||||
lower, upper revision
|
||||
lower, upper int64
|
||||
keep map[revision]struct{}
|
||||
}
|
||||
|
||||
@ -42,20 +42,22 @@ func newKVHasher(lower, upper int64, keep map[revision]struct{}) kvHasher {
|
||||
h.Write(buckets.Key.Name())
|
||||
return kvHasher{
|
||||
hash: h,
|
||||
lower: revision{main: lower + 1},
|
||||
upper: revision{main: upper + 1},
|
||||
lower: lower,
|
||||
upper: upper,
|
||||
keep: keep,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *kvHasher) WriteKeyValue(k, v []byte) {
|
||||
kr := bytesToRev(k)
|
||||
if !h.upper.GreaterThan(kr) {
|
||||
upper := revision{main: h.upper + 1}
|
||||
if !upper.GreaterThan(kr) {
|
||||
return
|
||||
}
|
||||
lower := revision{main: h.lower + 1}
|
||||
// skip revisions that are scheduled for deletion
|
||||
// due to compacting; don't skip if there isn't one.
|
||||
if h.lower.GreaterThan(kr) && len(h.keep) > 0 {
|
||||
if lower.GreaterThan(kr) && len(h.keep) > 0 {
|
||||
if _, ok := h.keep[kr]; !ok {
|
||||
return
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user