Skip to content

Commit 36ab52e

Browse files
authored
region_request: remove backoff for stale read (tikv#1423) (tikv#1427)
* remove stale read backoff * sort imports --------- Signed-off-by: you06 <[email protected]>
1 parent f8e321f commit 36ab52e

File tree

3 files changed

+4
-11
lines changed

3 files changed

+4
-11
lines changed

config/retry/backoff_test.go

Lines changed: 3 additions & 3 deletions
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
@@ -88,15 +88,15 @@ func TestBackoffDeepCopy(t *testing.T) {
8888
b := NewBackofferWithVars(context.TODO(), 4, nil)
8989
// 700 ms sleep in total and the backoffer will return an error next time.
9090
for i := 0; i < 3; i++ {
91-
err = b.Backoff(BoMaxDataNotReady, errors.New("data not ready"))
91+
err = b.Backoff(BoMaxRegionNotInitialized, errors.New("region not initialized"))
9292
assert.Nil(t, err)
9393
}
9494
bForked, cancel := b.Fork()
9595
defer cancel()
9696
bCloned := b.Clone()
9797
for _, b := range []*Backoffer{bForked, bCloned} {
9898
err = b.Backoff(BoTiKVRPC, errors.New("tikv rpc"))
99-
assert.ErrorIs(t, err, BoMaxDataNotReady.err)
99+
assert.ErrorIs(t, err, BoMaxRegionNotInitialized.err)
100100
}
101101
}
102102

config/retry/config.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ var (
133133
BoTxnNotFound = NewConfig("txnNotFound", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 500, NoJitter), tikverr.ErrResolveLockTimeout)
134134
BoStaleCmd = NewConfig("staleCommand", &metrics.BackoffHistogramStaleCmd, NewBackoffFnCfg(2, 1000, NoJitter), tikverr.ErrTiKVStaleCommand)
135135
BoMaxTsNotSynced = NewConfig("maxTsNotSynced", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 500, NoJitter), tikverr.ErrTiKVMaxTimestampNotSynced)
136-
BoMaxDataNotReady = NewConfig("dataNotReady", &metrics.BackoffHistogramDataNotReady, NewBackoffFnCfg(2, 2000, NoJitter), tikverr.ErrRegionDataNotReady)
137136
BoMaxRegionNotInitialized = NewConfig("regionNotInitialized", &metrics.BackoffHistogramEmpty, NewBackoffFnCfg(2, 1000, NoJitter), tikverr.ErrRegionNotInitialized)
138137
BoIsWitness = NewConfig("isWitness", &metrics.BackoffHistogramIsWitness, NewBackoffFnCfg(1000, 10000, EqualJitter), tikverr.ErrIsWitness)
139138
// TxnLockFast's `base` load from vars.BackoffLockFast when create BackoffFn.

internal/locate/region_request.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2647,13 +2647,7 @@ func (s *RegionRequestSender) onRegionError(
26472647
if s.replicaSelector != nil {
26482648
s.replicaSelector.onDataIsNotReady()
26492649
}
2650-
if !req.IsGlobalStaleRead() {
2651-
// only backoff local stale reads as global should retry immediately against the leader as a normal read
2652-
err = bo.Backoff(retry.BoMaxDataNotReady, errors.New("data is not ready"))
2653-
if err != nil {
2654-
return false, err
2655-
}
2656-
}
2650+
// do not backoff data-is-not-ready as we always retry with normal snapshot read.
26572651
return true, nil
26582652
}
26592653

0 commit comments

Comments
 (0)