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

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


The following commit(s) were added to refs/heads/cluster_tpc by this push:
     new 38badc6  add more timers
38badc6 is described below

commit 38badc6a97dbb605e0965ca2773aa6c4fd0b9803
Author: jt <[email protected]>
AuthorDate: Thu Oct 8 15:22:51 2020 +0800

    add more timers
---
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  4 ++--
 .../engine/storagegroup/StorageGroupProcessor.java |  7 ++++++
 .../db/engine/storagegroup/TsFileProcessor.java    |  8 +++++++
 .../main/java/org/apache/iotdb/db/utils/Timer.java | 25 ++++++++++++++--------
 4 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java 
b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
index 0e15393..68dcce4 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
@@ -452,7 +452,7 @@ public class StorageEngine implements IService {
         start = System.nanoTime();
       }
       processor.writeLock();
-      Statistic.CLOSE_FILE_LOCK_PROCESSOR.addNanoFromStart(start);
+      Statistic.CLOSE_FILE_LOCK_SG_PROCESSOR.addNanoFromStart(start);
       // to avoid concurrent modification problem, we need a new array list
       List<TsFileProcessor> processors = isSeq ?
           new ArrayList<>(processor.getWorkSequenceTsFileProcessors()) :
@@ -468,7 +468,7 @@ public class StorageEngine implements IService {
             } else {
               processor.asyncCloseOneTsFileProcessor(isSeq, tsfileProcessor);
             }
-            Statistic.CLOSE_FILE_CLOSE_PROCESSOR.addNanoFromStart(start);
+            Statistic.CLOSE_FILE_CLOSE_SG_PROCESSOR.addNanoFromStart(start);
             break;
           }
         }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index e2fa4d0..3a1cbba 100755
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -88,6 +88,8 @@ import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.service.UpgradeSevice;
 import org.apache.iotdb.db.utils.CopyOnReadLinkedList;
 import org.apache.iotdb.db.utils.TestOnly;
+import org.apache.iotdb.db.utils.Timer;
+import org.apache.iotdb.db.utils.Timer.Statistic;
 import org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
@@ -1038,7 +1040,12 @@ public class StorageGroupProcessor {
     if (sequence) {
       closingSequenceTsFileProcessor.add(tsFileProcessor);
       updateEndTimeMap(tsFileProcessor);
+      long start;
+      if (Timer.ENABLE_INSTRUMENTING) {
+        start = System.nanoTime();
+      }
       tsFileProcessor.asyncClose();
+      Statistic.CLOSE_FILE_CLOSE_TSFILE_PROCESSOR.addNanoFromStart(start);
 
       workSequenceTsFileProcessors.remove(tsFileProcessor.getTimeRangeId());
       // if unsequence files don't contain this time range id, we should 
remove it's version controller
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
index 39efcf0..1140f36 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
@@ -22,6 +22,7 @@ import static 
org.apache.iotdb.db.conf.adapter.IoTDBConfigDynamicAdapter.MEMTABL
 
 import java.io.File;
 import java.io.IOException;
+import java.sql.Time;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -54,6 +55,8 @@ import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.rescon.MemTablePool;
 import org.apache.iotdb.db.utils.QueryUtils;
+import org.apache.iotdb.db.utils.Timer;
+import org.apache.iotdb.db.utils.Timer.Statistic;
 import org.apache.iotdb.db.writelog.manager.MultiFileLogNodeManager;
 import org.apache.iotdb.db.writelog.node.WriteLogNode;
 import org.apache.iotdb.rpc.RpcUtils;
@@ -376,6 +379,10 @@ public class TsFileProcessor {
 
       //we have to add the memtable into flushingList first and then set the 
shouldClose tag.
       // see https://issues.apache.org/jira/browse/IOTDB-510
+      long start;
+      if (Timer.ENABLE_INSTRUMENTING) {
+        start = System.nanoTime();
+      }
       IMemTable tmpMemTable = workMemTable == null || workMemTable.memSize() 
== 0
           ? new NotifyFlushMemTable()
           : workMemTable;
@@ -388,6 +395,7 @@ public class TsFileProcessor {
         logger.error("{}: {} async close failed, because", storageGroupName,
             tsFileResource.getTsFile().getName(), e);
       }
+      Statistic.CLOSE_FILE_MOVE_MEMTABLE_TO_FLUSH.addNanoFromStart(start);
     } finally {
       flushQueryLock.writeLock().unlock();
       if (logger.isDebugEnabled()) {
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/Timer.java 
b/server/src/main/java/org/apache/iotdb/db/utils/Timer.java
index 1a63320..e5053e1 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/Timer.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/Timer.java
@@ -31,9 +31,10 @@ public class Timer {
 
   private static final String META_GROUP_MEMBER = "Meta group member";
   private static final String DATA_GROUP_MEMBER = "Data group member";
-  private static final String RAFT_MEMBER_SENDER = " Raft member(sender)";
-  private static final String RAFT_MEMBER_RECEIVER = " Raft member(receiver)";
+  private static final String RAFT_MEMBER_SENDER = "Raft member(sender)";
+  private static final String RAFT_MEMBER_RECEIVER = "Raft member(receiver)";
   private static final String LOG_DISPATCHER = "Log dispatcher";
+  private static final String STORAGE_ENGINE = "Storage Engine";
 
   // convert nano to milli
   private static final double TIME_SCALE = 1_000_000.0;
@@ -161,15 +162,21 @@ public class Timer {
     LOG_DISPATCHER_FROM_CREATE_TO_END(
         LOG_DISPATCHER, "from create to end", TIME_SCALE, true,
         META_GROUP_MEMBER_EXECUTE_NON_QUERY_IN_LOCAL_GROUP),
-    // stand-alone operations
+    // storage engine
     CLOSE_FILE(
-        RAFT_MEMBER_SENDER, "close file", TIME_SCALE, true,
-        RAFT_SENDER_CLOSE_FILE_LOG_APPLY),
-    CLOSE_FILE_LOCK_PROCESSOR(
-        RAFT_MEMBER_SENDER, "close file - lock processor", TIME_SCALE, true,
+        STORAGE_ENGINE, "close file", TIME_SCALE, true,
+        ROOT),
+    CLOSE_FILE_LOCK_SG_PROCESSOR(
+        STORAGE_ENGINE, "close file - lock SG processor", TIME_SCALE, true,
         CLOSE_FILE),
-    CLOSE_FILE_CLOSE_PROCESSOR(
-        RAFT_MEMBER_SENDER, "close file - close processor", TIME_SCALE, true,
+    CLOSE_FILE_CLOSE_SG_PROCESSOR(
+        STORAGE_ENGINE, "close file - close SG processor", TIME_SCALE, true,
+        CLOSE_FILE),
+    CLOSE_FILE_CLOSE_TSFILE_PROCESSOR(
+        STORAGE_ENGINE, "close file - close TsFile processor", TIME_SCALE, 
true,
+        CLOSE_FILE),
+    CLOSE_FILE_MOVE_MEMTABLE_TO_FLUSH(
+        STORAGE_ENGINE, "close file - move memtable to flush", TIME_SCALE, 
true,
         CLOSE_FILE);
 
 

Reply via email to