This is an automated email from the ASF dual-hosted git repository.

lta pushed a commit to branch cluster_scalability
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3a91a25b63c96f4bd0a4c44a7c830b6544032dd7
Author: lta <[email protected]>
AuthorDate: Mon Apr 19 16:30:55 2021 +0800

    remove useless parameter
---
 .../iotdb/cluster/server/member/RaftMember.java     | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java 
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index 813dbf3..4ce2ac4 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
@@ -124,7 +124,7 @@ public abstract class RaftMember {
    * when there is no leader, wait for waitLeaderTimeMs before return a 
NoLeader response to the
    * client.
    **/
-  private static long waitLeaderTimeMs = 60 * 1000L;
+  private static long waitLeaderTimeMs = 2 * 1000L;
 
   /**
    * when the leader of this node changes, the condition will be notified so 
other threads that wait
@@ -244,8 +244,6 @@ public abstract class RaftMember {
    */
   private LogDispatcher logDispatcher;
 
-  private volatile boolean hasSyncedLeaderBeforeRemoved = false;
-
   /**
    * If this node can not be the leader, this parameter will be set true.
    */
@@ -799,9 +797,6 @@ public abstract class RaftMember {
    * Wait until the leader of this node becomes known or time out.
    */
   public void waitLeader() {
-    if (hasSyncedLeaderBeforeRemoved) {
-      return;
-    }
     long startTime = System.currentTimeMillis();
     while (leader.get() == null || 
ClusterConstant.EMPTY_NODE.equals(leader.get())) {
       synchronized (waitLeaderCondition) {
@@ -845,6 +840,12 @@ public abstract class RaftMember {
       return false;
     }
     logger.debug("Start to sync with leader, leader commit id is {}", 
leaderCommitId);
+
+    // If the leader and follower logs differ too much, local query is not 
allowed
+    if (leaderCommitId - logManager.getMaxHaveAppliedCommitIndex() > 1000) {
+      logger.info("{}: The raft log of this member is too backward to provide 
service directly.", name);
+      return false;
+    }
     return waitUtil(leaderCommitId);
   }
 
@@ -1914,14 +1915,6 @@ public abstract class RaftMember {
     OK, TIME_OUT, LEADERSHIP_STALE
   }
 
-  public boolean isHasSyncedLeaderBeforeRemoved() {
-    return hasSyncedLeaderBeforeRemoved;
-  }
-
-  public void setHasSyncedLeaderBeforeRemoved(boolean 
hasSyncedLeaderAfterRemoved) {
-    this.hasSyncedLeaderBeforeRemoved = hasSyncedLeaderAfterRemoved;
-  }
-
   public Object getHeartBeatWaitObject() {
     return heartBeatWaitObject;
   }

Reply via email to