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;

Reply via email to