diff --git a/src/main/java/org/tikv/common/operation/RegionErrorHandler.java b/src/main/java/org/tikv/common/operation/RegionErrorHandler.java index 68237df3ba..9aa678b41e 100644 --- a/src/main/java/org/tikv/common/operation/RegionErrorHandler.java +++ b/src/main/java/org/tikv/common/operation/RegionErrorHandler.java @@ -130,12 +130,9 @@ public class RegionErrorHandler implements ErrorHandler { BackOffFunction.BackOffFuncType.BoServerBusy, new StatusRuntimeException( Status.fromCode(Status.Code.UNAVAILABLE).withDescription(error.toString()))); - return true; - } else if (error.hasRegionNotFound()) { backOffer.doBackOff( BackOffFunction.BackOffFuncType.BoRegionMiss, new GrpcException(error.getMessage())); - this.regionManager.onRegionStale(recv.getRegion()); - return false; + return true; } else if (error.hasStaleCommand()) { // this error is reported from raftstore: // command outdated, please try later diff --git a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java index ba6422a8ec..c47bb85474 100644 --- a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java +++ b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java @@ -272,7 +272,7 @@ public abstract class AbstractRegionStoreClient } if (originStore == null) { originStore = targetStore; - if (this.targetStore.getProxyStore() != null && this.timeout < conf.getForwardTimeout()) { + if (this.targetStore.getProxyStore() != null) { this.timeout = conf.getForwardTimeout(); } } diff --git a/src/main/java/org/tikv/common/util/ConcreteBackOffer.java b/src/main/java/org/tikv/common/util/ConcreteBackOffer.java index 1148f64ea5..a7af12b85c 100644 --- a/src/main/java/org/tikv/common/util/ConcreteBackOffer.java +++ b/src/main/java/org/tikv/common/util/ConcreteBackOffer.java @@ -86,29 +86,29 @@ public class ConcreteBackOffer implements BackOffer { private BackOffFunction createBackOffFunc(BackOffFunction.BackOffFuncType funcType) { BackOffFunction backOffFunction = null; switch (funcType) { + case BoUpdateLeader: + backOffFunction = BackOffFunction.create(1, 10, BackOffStrategy.NoJitter); + break; case BoTxnLockFast: backOffFunction = BackOffFunction.create(100, 3000, BackOffStrategy.EqualJitter); break; + case BoServerBusy: + backOffFunction = BackOffFunction.create(2000, 10000, BackOffStrategy.EqualJitter); + break; + case BoRegionMiss: + backOffFunction = BackOffFunction.create(100, 500, BackOffStrategy.NoJitter); + break; case BoTxnLock: backOffFunction = BackOffFunction.create(200, 3000, BackOffStrategy.EqualJitter); break; - case BoTxnNotFound: - backOffFunction = BackOffFunction.create(2, 500, BackOffStrategy.NoJitter); - break; - case BoServerBusy: - backOffFunction = BackOffFunction.create(40, 5120, BackOffStrategy.EqualJitter); - break; - case BoUpdateLeader: - backOffFunction = BackOffFunction.create(1, 10, BackOffStrategy.NoJitter); - break; - case BoRegionMiss: - backOffFunction = BackOffFunction.create(10, 640, BackOffStrategy.NoJitter); - break; case BoPDRPC: - backOffFunction = BackOffFunction.create(10, 640, BackOffStrategy.EqualJitter); + backOffFunction = BackOffFunction.create(100, 600, BackOffStrategy.EqualJitter); break; case BoTiKVRPC: - backOffFunction = BackOffFunction.create(10, 640, BackOffStrategy.EqualJitter); + backOffFunction = BackOffFunction.create(100, 400, BackOffStrategy.EqualJitter); + break; + case BoTxnNotFound: + backOffFunction = BackOffFunction.create(2, 500, BackOffStrategy.NoJitter); break; } return backOffFunction;