This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new eff0805a418 [chore](test) add fuzzy blockable pipeline task (#56734)
eff0805a418 is described below
commit eff0805a4182128754bab5a8b6f6453fbdfd1426
Author: Jerry Hu <[email protected]>
AuthorDate: Fri Oct 10 11:18:13 2025 +0800
[chore](test) add fuzzy blockable pipeline task (#56734)
---
be/src/pipeline/pipeline_task.cpp | 7 +++++++
be/src/runtime/runtime_state.h | 5 +++++
.../src/main/java/org/apache/doris/qe/SessionVariable.java | 9 ++++++++-
gensrc/thrift/PaloInternalService.thrift | 2 ++
.../performance/clickbench/conf/opt_session_variables.sql | 1 +
5 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/be/src/pipeline/pipeline_task.cpp
b/be/src/pipeline/pipeline_task.cpp
index 5a86dd2626a..6b1b5b2f9cb 100644
--- a/be/src/pipeline/pipeline_task.cpp
+++ b/be/src/pipeline/pipeline_task.cpp
@@ -302,6 +302,13 @@ bool PipelineTask::is_blockable() const {
// 1. Execution dependency is ready (which is controlled by FE 2-phase
commit)
// 2. Runtime filter dependencies are ready
// 3. All tablets are loaded into local storage
+
+ if (_state->enable_fuzzy_blockable_task()) {
+ if ((_schedule_time + _task_idx) % 2 == 0) {
+ return true;
+ }
+ }
+
return _need_to_revoke_memory ||
std::ranges::any_of(_operators,
[&](OperatorPtr op) -> bool { return
op->is_blockable(_state); }) ||
diff --git a/be/src/runtime/runtime_state.h b/be/src/runtime/runtime_state.h
index 7c27892cfba..c2183c6dd59 100644
--- a/be/src/runtime/runtime_state.h
+++ b/be/src/runtime/runtime_state.h
@@ -391,6 +391,11 @@ public:
return _query_options.return_object_data_as_binary;
}
+ bool enable_fuzzy_blockable_task() const {
+ return _query_options.__isset.enable_fuzzy_blockable_task &&
+ _query_options.enable_fuzzy_blockable_task;
+ }
+
segment_v2::CompressionTypePB fragement_transmission_compression_type()
const {
if (_query_options.__isset.fragment_transmission_compression_codec) {
if (_query_options.fragment_transmission_compression_codec ==
"lz4") {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index 7712b4fc2de..6381773d09f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -613,6 +613,8 @@ public class SessionVariable implements Serializable,
Writable {
public static final String LOW_MEMORY_MODE_BUFFER_LIMIT =
"low_memory_mode_buffer_limit";
public static final String DUMP_HEAP_PROFILE_WHEN_MEM_LIMIT_EXCEEDED =
"dump_heap_profile_when_mem_limit_exceeded";
+ public static final String ENABLE_FUZZY_BLOCKABLE_TASK =
"enable_fuzzy_blockable_task";
+
public static final String GENERATE_STATS_FACTOR = "generate_stats_factor";
public static final String HUGE_TABLE_AUTO_ANALYZE_INTERVAL_IN_MILLIS
@@ -2795,6 +2797,10 @@ public class SessionVariable implements Serializable,
Writable {
needForward = true)
public boolean dumpHeapProfileWhenMemLimitExceeded = false;
+ @VariableMgr.VarAttr(
+ name = ENABLE_FUZZY_BLOCKABLE_TASK, fuzzy = true)
+ public boolean enableFuzzyBlockableTask = false;
+
@VariableMgr.VarAttr(name = USE_MAX_LENGTH_OF_VARCHAR_IN_CTAS, needForward
= true, description = {
"在CTAS中,如果 CHAR / VARCHAR 列不来自于源表,是否是将这一列的长度设置为 MAX,即65533。默认为
true。",
"In CTAS (Create Table As Select), if CHAR/VARCHAR columns do not
originate from the source table,"
@@ -3115,7 +3121,7 @@ public class SessionVariable implements Serializable,
Writable {
this.batchSize = 1024;
this.enableFoldConstantByBe = false;
}
-
+ this.enableFuzzyBlockableTask = random.nextBoolean();
}
this.runtimeFilterWaitInfinitely = random.nextBoolean();
@@ -4593,6 +4599,7 @@ public class SessionVariable implements Serializable,
Writable {
tResult.setRuntimeBloomFilterMinSize(runtimeBloomFilterMinSize);
tResult.setRuntimeBloomFilterMaxSize(runtimeBloomFilterMaxSize);
tResult.setRuntimeFilterWaitInfinitely(runtimeFilterWaitInfinitely);
+ tResult.setEnableFuzzyBlockableTask(enableFuzzyBlockableTask);
if (cpuResourceLimit > 0) {
TResourceLimit resourceLimit = new TResourceLimit();
diff --git a/gensrc/thrift/PaloInternalService.thrift
b/gensrc/thrift/PaloInternalService.thrift
index 16cd37c8264..d193afe412f 100644
--- a/gensrc/thrift/PaloInternalService.thrift
+++ b/gensrc/thrift/PaloInternalService.thrift
@@ -408,6 +408,8 @@ struct TQueryOptions {
173: optional i64 query_freshness_tolerance_ms
174: optional i64 merge_read_slice_size = 8388608;
+ 175: optional bool enable_fuzzy_blockable_task = false;
+
// For cloud, to control if the content would be written into file cache
// In write path, to control if the content would be written into file cache.
// In read path, read from file cache or remote storage when execute query.
diff --git
a/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
b/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
index 742d613c14f..33cb502267e 100644
---
a/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
+++
b/regression-test/pipeline/performance/clickbench/conf/opt_session_variables.sql
@@ -5,3 +5,4 @@ set global enable_single_distinct_column_opt=true;
set global enable_function_pushdown=true;
set global forbid_unknown_col_stats=false;
set global runtime_filter_mode=GLOBAL;
+set global enable_sql_cache=false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]