You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/08/04 07:00:00 UTC

[iotdb] branch ml_test_1_async updated: add more metrics

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

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


The following commit(s) were added to refs/heads/ml_test_1_async by this push:
     new 5d541b72c9 add more metrics
5d541b72c9 is described below

commit 5d541b72c97a2ed2912298baf5bdf457f0229210
Author: Jinrui.Zhang <xi...@gmail.com>
AuthorDate: Tue Aug 2 14:59:45 2022 +0800

    add more metrics
---
 .../service/MultiLeaderRPCServiceProcessor.java    |  2 ++
 .../consensus/statemachine/BaseStateMachine.java   | 28 +++++++++++++---------
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/multileader/service/MultiLeaderRPCServiceProcessor.java b/consensus/src/main/java/org/apache/iotdb/consensus/multileader/service/MultiLeaderRPCServiceProcessor.java
index 08d6a3a9f4..b2018db1d8 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/multileader/service/MultiLeaderRPCServiceProcessor.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/multileader/service/MultiLeaderRPCServiceProcessor.java
@@ -73,6 +73,7 @@ public class MultiLeaderRPCServiceProcessor implements MultiLeaderConsensusIServ
       // We use synchronized to ensure atomicity of executing multiple logs
       if (!req.getBatches().isEmpty()) {
         synchronized (impl.getStateMachine()) {
+          long stateMachineStartTime = System.nanoTime();
           List<IConsensusRequest> consensusRequests = new ArrayList<>();
           long currentSearchIndex = req.getBatches().get(0).getSearchIndex();
           for (TLogBatch batch : req.getBatches()) {
@@ -95,6 +96,7 @@ public class MultiLeaderRPCServiceProcessor implements MultiLeaderConsensusIServ
                 impl.getStateMachine()
                     .write(impl.buildIndexedConsensusRequestForRemoteRequest(consensusRequests)));
           }
+          StepTracker.trace("stateMachineWriteBatch", stateMachineStartTime, System.nanoTime());
         }
       }
       logger.debug("Execute TSyncLogReq for {} with result {}", req.consensusGroupId, statuses);
diff --git a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java
index 32333f26e9..3bd74bd91a 100644
--- a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java
+++ b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/BaseStateMachine.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.consensus.statemachine;
 
+import org.apache.iotdb.commons.StepTracker;
 import org.apache.iotdb.consensus.IStateMachine;
 import org.apache.iotdb.consensus.common.request.ByteBufferConsensusRequest;
 import org.apache.iotdb.consensus.common.request.IConsensusRequest;
@@ -49,17 +50,22 @@ public abstract class BaseStateMachine implements IStateMachine, IStateMachine.E
   }
 
   protected PlanNode getPlanNode(IConsensusRequest request) {
-    PlanNode node;
-    if (request instanceof ByteBufferConsensusRequest) {
-      node = PlanNodeType.deserialize(request.serializeToByteBuffer());
-    } else if (request instanceof MultiLeaderConsensusRequest) {
-      node = WALEntry.deserializeInsertNode(request.serializeToByteBuffer());
-    } else if (request instanceof PlanNode) {
-      node = (PlanNode) request;
-    } else {
-      logger.error("Unexpected IConsensusRequest : {}", request);
-      throw new IllegalArgumentException("Unexpected IConsensusRequest!");
+    long startTime = System.nanoTime();
+    try {
+      PlanNode node;
+      if (request instanceof ByteBufferConsensusRequest) {
+        node = PlanNodeType.deserialize(request.serializeToByteBuffer());
+      } else if (request instanceof MultiLeaderConsensusRequest) {
+        node = WALEntry.deserializeInsertNode(request.serializeToByteBuffer());
+      } else if (request instanceof PlanNode) {
+        node = (PlanNode) request;
+      } else {
+        logger.error("Unexpected IConsensusRequest : {}", request);
+        throw new IllegalArgumentException("Unexpected IConsensusRequest!");
+      }
+      return node;
+    } finally {
+      StepTracker.trace("deserializePlanNode", startTime, System.nanoTime());
     }
-    return node;
   }
 }