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; }
