You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2020/10/08 06:27:06 UTC
[iotdb] branch cluster_tpc created (now e9081cc)
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a change to branch cluster_tpc
in repository https://gitbox.apache.org/repos/asf/iotdb.git.
at e9081cc add timers
This branch includes the following new commits:
new e9081cc add timers
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[iotdb] 01/01: add timers
Posted by ji...@apache.org.
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
commit e9081ccace9a0c9f9d17238c44d91584e599e0b7
Author: jt <jt...@163.com>
AuthorDate: Thu Oct 8 14:26:43 2020 +0800
add timers
---
.../org/apache/iotdb/cluster/log/applier/DataLogApplier.java | 7 +++++++
.../src/main/java/org/apache/iotdb/cluster/server/Timer.java | 9 +++++++++
server/pom.xml | 5 +++++
.../main/java/org/apache/iotdb/db/engine/StorageEngine.java | 12 ++++++++++++
4 files changed, 33 insertions(+)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
index ab332d4..cdc1b89 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
@@ -25,6 +25,8 @@ import org.apache.iotdb.cluster.log.Log;
import org.apache.iotdb.cluster.log.logtypes.CloseFileLog;
import org.apache.iotdb.cluster.log.logtypes.PhysicalPlanLog;
import org.apache.iotdb.cluster.partition.slot.SlotPartitionTable;
+import org.apache.iotdb.cluster.server.Timer;
+import org.apache.iotdb.cluster.server.Timer.Statistic;
import org.apache.iotdb.cluster.server.member.DataGroupMember;
import org.apache.iotdb.cluster.server.member.MetaGroupMember;
import org.apache.iotdb.db.engine.StorageEngine;
@@ -68,9 +70,14 @@ public class DataLogApplier extends BaseApplier {
}
} else if (log instanceof CloseFileLog) {
CloseFileLog closeFileLog = ((CloseFileLog) log);
+ long start;
+ if (Timer.ENABLE_INSTRUMENTING) {
+ start = System.nanoTime();
+ }
StorageEngine.getInstance().closeProcessor(new PartialPath(closeFileLog.getStorageGroupName()),
closeFileLog.getPartitionId(),
closeFileLog.isSeq(), false);
+ Statistic.RAFT_SENDER_CLOSE_FILE_LOG_APPLY.addNanoFromStart(start);
} else {
logger.error("Unsupported log: {}", log);
}
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 6adf4fb..9c1c0d0 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
@@ -131,6 +131,15 @@ public class Timer {
RAFT_SENDER_DATA_LOG_APPLY(
RAFT_MEMBER_SENDER, "apply data log", TIME_SCALE, true,
RAFT_SENDER_COMMIT_WAIT_LOG_APPLY_V2),
+ RAFT_SENDER_CLOSE_FILE_LOG_APPLY(
+ RAFT_MEMBER_SENDER, "apply close file log", TIME_SCALE, true,
+ RAFT_SENDER_DATA_LOG_APPLY),
+ RAFT_SENDER_CLOSE_FILE_LOCK_PROCESSOR(
+ RAFT_MEMBER_SENDER, "close file - lock processor", TIME_SCALE, true,
+ RAFT_SENDER_CLOSE_FILE_LOG_APPLY),
+ RAFT_SENDER_CLOSE_FILE_CLOSE_PROCESSOR(
+ RAFT_MEMBER_SENDER, "close file - close processor", TIME_SCALE, true,
+ RAFT_SENDER_CLOSE_FILE_LOG_APPLY),
RAFT_SENDER_LOG_FROM_CREATE_TO_ACCEPT(
RAFT_MEMBER_SENDER, "log from create to accept", TIME_SCALE,
RaftMember.USE_LOG_DISPATCHER, DATA_GROUP_MEMBER_LOCAL_EXECUTION),
diff --git a/server/pom.xml b/server/pom.xml
index 157e677..00a76d1 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -76,6 +76,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>cluster</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</dependency>
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 7fc24dc..ef04d30 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
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.engine;
import java.io.File;
import java.io.IOException;
+import java.sql.Time;
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
@@ -36,6 +37,8 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.io.FileUtils;
+import org.apache.iotdb.cluster.server.Timer;
+import org.apache.iotdb.cluster.server.Timer.Statistic;
import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -441,7 +444,12 @@ public class StorageEngine implements IService {
if (processor != null) {
logger.info("async closing sg processor is called for closing {}, seq = {}, partitionId = {}",
storageGroupPath, isSeq, partitionId);
+ long start;
+ if (Timer.ENABLE_INSTRUMENTING) {
+ start = System.nanoTime();
+ }
processor.writeLock();
+ Statistic.RAFT_SENDER_CLOSE_FILE_LOCK_PROCESSOR.addNanoFromStart(start);
// to avoid concurrent modification problem, we need a new array list
List<TsFileProcessor> processors = isSeq ?
new ArrayList<>(processor.getWorkSequenceTsFileProcessors()) :
@@ -449,11 +457,15 @@ public class StorageEngine implements IService {
try {
for (TsFileProcessor tsfileProcessor : processors) {
if (tsfileProcessor.getTimeRangeId() == partitionId) {
+ if (Timer.ENABLE_INSTRUMENTING) {
+ start = System.nanoTime();
+ }
if (isSync) {
processor.syncCloseOneTsFileProcessor(isSeq, tsfileProcessor);
} else {
processor.asyncCloseOneTsFileProcessor(isSeq, tsfileProcessor);
}
+ Statistic.RAFT_SENDER_CLOSE_FILE_CLOSE_PROCESSOR.addNanoFromStart(start);
break;
}
}