You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/11/29 11:40:20 UTC
[iotdb] 02/04: Add more query statistics
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/tsbs
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 11965cf31e4be3a1617d42753fc235eb007b44f3
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue Nov 29 11:13:41 2022 +0800
Add more query statistics
---
.../iotdb/db/mpp/execution/driver/Driver.java | 22 ++++++++++++++++++++++
.../iotdb/db/mpp/statistics/QueryStatistics.java | 8 ++++++++
2 files changed, 30 insertions(+)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
index 086234fa12..8514f4946e 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
@@ -45,6 +45,10 @@ import static com.google.common.base.Throwables.throwIfUnchecked;
import static com.google.common.util.concurrent.MoreExecutors.directExecutor;
import static java.lang.Boolean.TRUE;
import static org.apache.iotdb.db.mpp.execution.operator.Operator.NOT_BLOCKED;
+import static org.apache.iotdb.db.mpp.statistics.QueryStatistics.DRIVER_CLOSE;
+import static org.apache.iotdb.db.mpp.statistics.QueryStatistics.DRIVER_INTERNAL_PROCESS;
+import static org.apache.iotdb.db.mpp.statistics.QueryStatistics.SEND_TSBLOCK;
+import static org.apache.iotdb.db.mpp.statistics.QueryStatistics.SET_NO_MORE_TSBLOCK;
public abstract class Driver implements IDriver {
@@ -173,6 +177,7 @@ public abstract class Driver implements IDriver {
}
private ListenableFuture<?> processInternal() {
+ long startTimeNanos = System.nanoTime();
try {
ListenableFuture<?> blocked = root.isBlocked();
if (!blocked.isDone()) {
@@ -185,7 +190,11 @@ public abstract class Driver implements IDriver {
if (root.hasNext()) {
TsBlock tsBlock = root.next();
if (tsBlock != null && !tsBlock.isEmpty()) {
+ long startTime = System.nanoTime();
sinkHandle.send(tsBlock);
+ driverContext
+ .getFragmentInstanceContext()
+ .addOperationTime(SEND_TSBLOCK, System.nanoTime() - startTime);
}
}
return NOT_BLOCKED;
@@ -205,6 +214,10 @@ public abstract class Driver implements IDriver {
newException.addSuppressed(t);
driverContext.failed(newException);
throw newException;
+ } finally {
+ driverContext
+ .getFragmentInstanceContext()
+ .addOperationTime(DRIVER_INTERNAL_PROCESS, System.nanoTime() - startTimeNanos);
}
}
@@ -330,8 +343,17 @@ public abstract class Driver implements IDriver {
Throwable inFlightException = null;
try {
+ long startTime = System.nanoTime();
root.close();
+ long endTime = System.nanoTime();
+ driverContext
+ .getFragmentInstanceContext()
+ .addOperationTime(DRIVER_CLOSE, endTime - startTime);
+ startTime = endTime;
sinkHandle.setNoMoreTsBlocks();
+ driverContext
+ .getFragmentInstanceContext()
+ .addOperationTime(SET_NO_MORE_TSBLOCK, System.nanoTime() - startTime);
} catch (InterruptedException t) {
// don't record the stack
wasInterrupted = true;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java b/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
index 9b0dd7e985..50f79d1d5a 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
@@ -82,6 +82,14 @@ public class QueryStatistics {
public static final String DISTRIBUTION_PLANNER = "DistributionPlanner";
public static final String DISPATCHER = "Dispatcher";
+ public static final String DRIVER_CLOSE = "CloseDriver";
+
+ public static final String DRIVER_INTERNAL_PROCESS = "DriverInternalProcess";
+
+ public static final String SEND_TSBLOCK = "SendTsBlock";
+
+ public static final String SET_NO_MORE_TSBLOCK = "SetNoMoreTsBlock";
+
public static final String SERVER_RPC_RT = "ServerRpcRT";
private QueryStatistics() {