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.
release-2.2
Yicheng Qin 2015-08-22 17:30:59 -07:00
parent 6d97dcaf3f
commit 9960651c3f
1 changed files with 7 additions and 5 deletions

View File

@ -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
}