This is an automated email from the ASF dual-hosted git repository.
yuyuankang pushed a commit to branch cluster_performance
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/cluster_performance by this
push:
new a3ea05e raft member wait for prev log
a3ea05e is described below
commit a3ea05e07d1aa8e1d81e8e4d018d9055b592faa1
Author: Ring-k <[email protected]>
AuthorDate: Wed Sep 2 09:47:00 2020 +0800
raft member wait for prev log
---
cluster/src/main/java/org/apache/iotdb/cluster/server/Timer.java | 9 ++++++++-
.../java/org/apache/iotdb/cluster/server/member/RaftMember.java | 3 +++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/Timer.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/Timer.java
index fe05382..c978c5a 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/Timer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/Timer.java
@@ -25,6 +25,8 @@ public class Timer {
public static AtomicLong raftFollowerAppendEntryCounter = new AtomicLong(0);
public static AtomicLong dataGroupMemberForwardPlanMS = new AtomicLong(0);
public static AtomicLong dataGroupMemberForwardPlanCounter = new
AtomicLong(0);
+ public static AtomicLong raftMemberWaitForPrevLogMS = new AtomicLong(0);
+ public static AtomicLong raftMemberWaitForPrevLogCounter = new AtomicLong(0);
private static final String dataGroupMemberProcessPlanLocallyMSString =
"Data group member - process plan locally : ";
private static final String dataGroupMemberWaitLeaderMSString = "Data group
member - wait leader: ";
@@ -36,6 +38,8 @@ public class Timer {
private static final String raftMemberCommitLogMSString = "Raft member -
commit log: ";
private static final String raftFollowerAppendEntryString = "Raft member -
follower append entry: ";
private static final String dataGroupMemberForwardPlanString = "Data group
member - forward plan: ";
+ private static final String raftMemberWaitForPrevLogString = "Raft member -
wait for prev log: ";
+
public static String getReport() {
@@ -87,7 +91,10 @@ public class Timer {
+ dataGroupMemberForwardPlanMS.get()/1000000L + ", "
+ dataGroupMemberForwardPlanCounter + ", "
+ (double) dataGroupMemberForwardPlanMS.get()/1000000L /
dataGroupMemberForwardPlanCounter.get() + "\n";
-
+ result += raftMemberWaitForPrevLogString
+ + raftMemberWaitForPrevLogMS.get()/1000000L + ", "
+ + raftMemberWaitForPrevLogCounter + ", "
+ + (double) raftMemberWaitForPrevLogMS.get()/1000000L /
raftMemberWaitForPrevLogCounter.get() + "\n";
return result;
}
}
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 76d3aa4..24056a3 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
@@ -699,11 +699,14 @@ public abstract class RaftMember {
if (node.equals(thisNode)) {
return;
}
+ long start = System.nanoTime();
Peer peer = peerMap.computeIfAbsent(node, k -> new
Peer(logManager.getLastLogIndex()));
if (!waitForPrevLog(peer, log)) {
logger.warn("{}: node {} timed out when appending {}", name, node, log);
return;
}
+ Timer.raftMemberWaitForPrevLogMS.addAndGet(System.nanoTime() - start);
+ Timer.raftMemberWaitForPrevLogCounter.incrementAndGet();
if (character != NodeCharacter.LEADER) {
return;