From fb17acc05c3f51a0a41789a83589a7c9fd760e2e Mon Sep 17 00:00:00 2001 From: zouyunhe Date: Wed, 4 Jun 2025 06:04:55 +0000 Subject: [PATCH 1/3] add metrics for gluten --- velox/experimental/stateful/StatefulTask.cpp | 14 ++++++++++++++ velox/experimental/stateful/StatefulTask.h | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/velox/experimental/stateful/StatefulTask.cpp b/velox/experimental/stateful/StatefulTask.cpp index 2d12a5601ec9..1a416edd2f91 100644 --- a/velox/experimental/stateful/StatefulTask.cpp +++ b/velox/experimental/stateful/StatefulTask.cpp @@ -15,6 +15,8 @@ */ #include "velox/experimental/stateful/StatefulPlanner.h" #include "velox/experimental/stateful/StatefulTask.h" +#include "velox/exec/OperatorUtils.h" +#include "velox/exec/OperatorStats.h" #include @@ -76,6 +78,18 @@ void StatefulTask::initOperators() { } } +exec::TaskStats StatefulTask::statefulTaskStats() { + exec::TaskStats taskStats; + for (auto & op : operators_) { + auto statsCopy = op->stats(false); + exec::aggregateOperatorRuntimeStats(statsCopy.runtimeStats); + exec::PipelineStats pipelineStats(false, false); + pipelineStats.operatorStats.emplace_back(statsCopy); + taskStats.pipelineStats.emplace_back(pipelineStats); + } + return taskStats; +} + RowVectorPtr StatefulTask::next(int32_t& retCode) { retCode = 0; initOperators(); diff --git a/velox/experimental/stateful/StatefulTask.h b/velox/experimental/stateful/StatefulTask.h index d7127b684fa9..26e49502f3d0 100644 --- a/velox/experimental/stateful/StatefulTask.h +++ b/velox/experimental/stateful/StatefulTask.h @@ -17,6 +17,7 @@ #include "velox/exec/Operator.h" #include "velox/exec/Task.h" +#include "velox/exec/TaskStats.h" namespace facebook::velox::stateful { @@ -59,6 +60,9 @@ class StatefulTask : public exec::Task { // The task is finished, close all operators and reset driver void finish(); + // get stats for stateful task. + exec::TaskStats statefulTaskStats(); + private: StatefulTask( From 7276e81923cdb9c708579e47343e9f6aceff25bd Mon Sep 17 00:00:00 2001 From: zouyunhe Date: Wed, 4 Jun 2025 06:08:00 +0000 Subject: [PATCH 2/3] support task get result not by jni --- velox/experimental/stateful/StatefulTask.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/velox/experimental/stateful/StatefulTask.cpp b/velox/experimental/stateful/StatefulTask.cpp index 1a416edd2f91..e97f5cf2bc58 100644 --- a/velox/experimental/stateful/StatefulTask.cpp +++ b/velox/experimental/stateful/StatefulTask.cpp @@ -92,7 +92,7 @@ exec::TaskStats StatefulTask::statefulTaskStats() { RowVectorPtr StatefulTask::next(int32_t& retCode) { retCode = 0; - initOperators(); + // initOperators(); // Run operators one by one. If an operator has output, run its downstream operators. // If the last operator has output, return the output. @@ -126,7 +126,8 @@ RowVectorPtr StatefulTask::next(int32_t& retCode) { } return nullptr; } else { - break; + // break; + return nullptr; } } From b0166c3de2baee976ebf33d457cbca65c60b7f37 Mon Sep 17 00:00:00 2001 From: zouyunhe Date: Wed, 4 Jun 2025 06:17:43 +0000 Subject: [PATCH 3/3] remove useless changes --- velox/experimental/stateful/StatefulTask.cpp | 14 -------------- velox/experimental/stateful/StatefulTask.h | 4 ---- 2 files changed, 18 deletions(-) diff --git a/velox/experimental/stateful/StatefulTask.cpp b/velox/experimental/stateful/StatefulTask.cpp index e97f5cf2bc58..dab972edc6d3 100644 --- a/velox/experimental/stateful/StatefulTask.cpp +++ b/velox/experimental/stateful/StatefulTask.cpp @@ -15,8 +15,6 @@ */ #include "velox/experimental/stateful/StatefulPlanner.h" #include "velox/experimental/stateful/StatefulTask.h" -#include "velox/exec/OperatorUtils.h" -#include "velox/exec/OperatorStats.h" #include @@ -78,18 +76,6 @@ void StatefulTask::initOperators() { } } -exec::TaskStats StatefulTask::statefulTaskStats() { - exec::TaskStats taskStats; - for (auto & op : operators_) { - auto statsCopy = op->stats(false); - exec::aggregateOperatorRuntimeStats(statsCopy.runtimeStats); - exec::PipelineStats pipelineStats(false, false); - pipelineStats.operatorStats.emplace_back(statsCopy); - taskStats.pipelineStats.emplace_back(pipelineStats); - } - return taskStats; -} - RowVectorPtr StatefulTask::next(int32_t& retCode) { retCode = 0; // initOperators(); diff --git a/velox/experimental/stateful/StatefulTask.h b/velox/experimental/stateful/StatefulTask.h index 26e49502f3d0..d7127b684fa9 100644 --- a/velox/experimental/stateful/StatefulTask.h +++ b/velox/experimental/stateful/StatefulTask.h @@ -17,7 +17,6 @@ #include "velox/exec/Operator.h" #include "velox/exec/Task.h" -#include "velox/exec/TaskStats.h" namespace facebook::velox::stateful { @@ -60,9 +59,6 @@ class StatefulTask : public exec::Task { // The task is finished, close all operators and reset driver void finish(); - // get stats for stateful task. - exec::TaskStats statefulTaskStats(); - private: StatefulTask(