Kaynağa Gözat

storage: let range work in the process of txn

range should work in the process of txn to help check the status during the
txn.
Yicheng Qin 10 yıl önce
ebeveyn
işleme
9960651c3f
1 değiştirilmiş dosya ile 7 ekleme ve 5 silme
  1. 7 5
      storage/kvstore.go

+ 7 - 5
storage/kvstore.go

@@ -259,14 +259,16 @@ func (a *store) Equal(b *store) bool {
 
 // range is a keyword in Go, add Keys suffix.
 func (s *store) rangeKeys(key, end []byte, limit, rangeRev int64) (kvs []storagepb.KeyValue, rev int64, err error) {
-	if rangeRev > s.currentRev.main {
+	curRev := int64(s.currentRev.main)
+	if s.currentRev.sub > 0 {
+		curRev += 1
+	}
+
+	if rangeRev > curRev {
 		return nil, s.currentRev.main, ErrFutureRev
 	}
 	if rangeRev <= 0 {
-		rev = int64(s.currentRev.main)
-		if s.currentRev.sub > 0 {
-			rev += 1
-		}
+		rev = curRev
 	} else {
 		rev = rangeRev
 	}