This is an automated email from the ASF dual-hosted git repository. tanxinyu pushed a commit to branch iotconsensus_retry in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 175e0ac3c8de412b5b56b8074985c4fcad12aead Author: OneSizeFitQuorum <[email protected]> AuthorDate: Mon Feb 5 15:23:54 2024 +0800 finish Signed-off-by: OneSizeFitQuorum <[email protected]> --- .../statemachine/dataregion/DataRegionStateMachine.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java index f916d480fdc..38a973d554d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/dataregion/DataRegionStateMachine.java @@ -65,6 +65,8 @@ public class DataRegionStateMachine extends BaseStateMachine { protected DataRegion region; + private static final int MAX_WRITE_RETRY_TIMES = 5; + private static final long WRITE_RETRY_WAIT_TIME_IN_MS = 1000; public DataRegionStateMachine(DataRegion region) { @@ -241,18 +243,18 @@ public class DataRegionStateMachine extends BaseStateMachine { protected TSStatus write(PlanNode planNode) { // To ensure the Data inconsistency between multiple replications, we add retry in write // operation. - TSStatus result; + TSStatus result = null; int retryTime = 0; - while (true) { + while (retryTime < MAX_WRITE_RETRY_TIMES) { result = planNode.accept(new DataExecutionVisitor(), region); if (needRetry(result.getCode())) { retryTime++; logger.debug( "write operation failed because {}, retryTime: {}.", result.getCode(), retryTime); - if (retryTime % 5 == 0) { + if (retryTime == MAX_WRITE_RETRY_TIMES) { logger.error( "write operation still failed after {} retry times, because {}.", - retryTime, + MAX_WRITE_RETRY_TIMES, result.getCode()); } try {
