This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch CorrectBlockQueueTime-1.3 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit ef2ced6647ed0894caa75e92678868af5eb9d0da Author: Jackie Tien <[email protected]> AuthorDate: Fri Feb 7 14:08:56 2025 +0800 Correct Block Queue Time metric (cherry picked from commit e7d009cb725c1c030820da4415c7f08e6b742245) --- .../queryengine/execution/fragment/FragmentInstanceContext.java | 8 ++++++++ .../iotdb/db/queryengine/execution/schedule/DriverScheduler.java | 8 -------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java index 84797cbfad9..917e378fd66 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java @@ -29,6 +29,7 @@ import org.apache.iotdb.db.queryengine.common.DeviceContext; import org.apache.iotdb.db.queryengine.common.FragmentInstanceId; import org.apache.iotdb.db.queryengine.common.QueryId; import org.apache.iotdb.db.queryengine.common.SessionInfo; +import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet; import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet; import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationManager; @@ -62,6 +63,8 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import static org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet.BLOCK_QUEUED_TIME; +import static org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet.READY_QUEUED_TIME; import static org.apache.iotdb.db.storageengine.dataregion.VirtualDataRegion.EMPTY_QUERY_DATA_SOURCE; public class FragmentInstanceContext extends QueryContext { @@ -750,6 +753,11 @@ public class FragmentInstanceContext extends QueryContext { // record fragment instance execution time and metadata get time to metrics long durationTime = System.currentTimeMillis() - executionStartTime.get(); + DriverSchedulerMetricSet.getInstance() + .recordTaskQueueTime(BLOCK_QUEUED_TIME, blockQueueTime.get()); + DriverSchedulerMetricSet.getInstance() + .recordTaskQueueTime(READY_QUEUED_TIME, readyQueueTime.get()); + QueryRelatedResourceMetricSet.getInstance().updateFragmentInstanceTime(durationTime); SeriesScanCostMetricSet.getInstance() diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java index 09dab3d7819..a629c151fa9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/schedule/DriverScheduler.java @@ -43,7 +43,6 @@ import org.apache.iotdb.db.queryengine.execution.schedule.queue.multilevelqueue. import org.apache.iotdb.db.queryengine.execution.schedule.queue.multilevelqueue.MultilevelPriorityQueue; import org.apache.iotdb.db.queryengine.execution.schedule.task.DriverTask; import org.apache.iotdb.db.queryengine.execution.schedule.task.DriverTaskStatus; -import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet; import org.apache.iotdb.db.storageengine.rescon.quotas.DataNodeThrottleQuotaManager; import org.apache.iotdb.db.utils.SetThreadName; import org.apache.iotdb.mpp.rpc.thrift.TFragmentInstanceId; @@ -66,15 +65,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; -import static org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet.BLOCK_QUEUED_TIME; -import static org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet.READY_QUEUED_TIME; - /** The manager of fragment instances scheduling. */ public class DriverScheduler implements IDriverScheduler, IService { private static final Logger logger = LoggerFactory.getLogger(DriverScheduler.class); - private static final DriverSchedulerMetricSet DRIVER_SCHEDULER_METRIC_SET = - DriverSchedulerMetricSet.getInstance(); private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig(); private static final double LEVEL_TIME_MULTIPLIER = 2; @@ -480,7 +474,6 @@ public class DriverScheduler implements IDriverScheduler, IService { .getDriverContext() .getFragmentInstanceContext() .addBlockQueuedTime(blockQueuedTime); - DRIVER_SCHEDULER_METRIC_SET.recordTaskQueueTime(BLOCK_QUEUED_TIME, blockQueuedTime); task.setLastEnterReadyQueueTime(currentTime); task.resetLevelScheduledTime(); readyQueue.repush(task); @@ -504,7 +497,6 @@ public class DriverScheduler implements IDriverScheduler, IService { .getDriverContext() .getFragmentInstanceContext() .addReadyQueuedTime(readyQueuedTime); - DRIVER_SCHEDULER_METRIC_SET.recordTaskQueueTime(READY_QUEUED_TIME, readyQueuedTime); } finally { task.unlock(); }
