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 {

Reply via email to