Skip to content

Commit 19a5289

Browse files
Lara AraujoGitHub Enterprise
Lara Araujo
authored and
GitHub Enterprise
committed
Merge pull request tikv#9 from airbnb/la--cp-no-backoff
region_request: remove backoff for stale read (tikv#1423) (tikv#1428)
2 parents 392ee20 + f378953 commit 19a5289

File tree

3 files changed

+4
-11
lines changed

3 files changed

+4
-11
lines changed

internal/locate/region_request.go

+1-7
Original file line numberDiff line numberDiff line change
@@ -2252,13 +2252,7 @@ func (s *RegionRequestSender) onRegionError(
22522252
zap.Uint64("safe-ts", regionErr.GetDataIsNotReady().GetSafeTs()),
22532253
zap.Stringer("ctx", ctx),
22542254
)
2255-
if !req.IsGlobalStaleRead() {
2256-
// only backoff local stale reads as global should retry immediately against the leader as a normal read
2257-
err = bo.Backoff(retry.BoMaxDataNotReady, errors.New("data is not ready"))
2258-
if err != nil {
2259-
return false, err
2260-
}
2261-
}
2255+
// do not backoff data-is-not-ready as we always retry with normal snapshot read.
22622256
return true, nil
22632257
}
22642258

internal/retry/backoff_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestBackoffErrorType(t *testing.T) {
5757
assert.Nil(t, err)
5858
// 6ms sleep at most in total
5959
for i := 0; i < 2; i++ {
60-
err = b.Backoff(BoMaxDataNotReady, errors.New("data not ready"))
60+
err = b.Backoff(BoMaxRegionNotInitialized, errors.New("region not initialized"))
6161
assert.Nil(t, err)
6262
}
6363
// 100ms sleep at most in total
@@ -87,15 +87,15 @@ func TestBackoffDeepCopy(t *testing.T) {
8787
b := NewBackofferWithVars(context.TODO(), 4, nil)
8888
// 700 ms sleep in total and the backoffer will return an error next time.
8989
for i := 0; i < 3; i++ {
90-
err = b.Backoff(BoMaxDataNotReady, errors.New("data not ready"))
90+
err = b.Backoff(BoMaxRegionNotInitialized, errors.New("region not initialized"))
9191
assert.Nil(t, err)
9292
}
9393
bForked, cancel := b.Fork()
9494
defer cancel()
9595
bCloned := b.Clone()
9696
for _, b := range []*Backoffer{bForked, bCloned} {
9797
err = b.Backoff(BoTiKVRPC, errors.New("tikv rpc"))
98-
assert.ErrorIs(t, err, BoMaxDataNotReady.err)
98+
assert.ErrorIs(t, err, BoMaxRegionNotInitialized.err)
9999
}
100100
}
101101

internal/retry/config.go

-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ var (
123123
BoTxnNotFound = NewConfig("txnNotFound", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 500, NoJitter), tikverr.ErrResolveLockTimeout)
124124
BoStaleCmd = NewConfig("staleCommand", &metrics.BackoffHistogramStaleCmd, NewBackoffFnCfg(2, 1000, NoJitter), tikverr.ErrTiKVStaleCommand)
125125
BoMaxTsNotSynced = NewConfig("maxTsNotSynced", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 500, NoJitter), tikverr.ErrTiKVMaxTimestampNotSynced)
126-
BoMaxDataNotReady = NewConfig("dataNotReady", &metrics.BackoffHistogramDataNotReady, NewBackoffFnCfg(2, 2000, NoJitter), tikverr.ErrRegionDataNotReady)
127126
BoMaxRegionNotInitialized = NewConfig("regionNotInitialized", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 1000, NoJitter), tikverr.ErrRegionNotInitialized)
128127
BoIsWitness = NewConfig("isWitness", &metrics.BackoffHistogramIsWitness, NewBackoffFnCfg(1000, 10000, EqualJitter), tikverr.ErrIsWitness)
129128
// TxnLockFast's `base` load from vars.BackoffLockFast when create BackoffFn.

0 commit comments

Comments
 (0)