This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 1405c48a771 [opt](coordinator) optimize parallel degree of shuffle
when use nereids (#44754) (#46397)
1405c48a771 is described below
commit 1405c48a771c7f700847326784eacb9d9a5464ef
Author: 924060929 <[email protected]>
AuthorDate: Sat Jan 4 19:04:17 2025 +0800
[opt](coordinator) optimize parallel degree of shuffle when use nereids
(#44754) (#46397)
cherry pick from #44754
---
be/src/vec/aggregate_functions/aggregate_function_collect.h | 6 ++++--
fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/be/src/vec/aggregate_functions/aggregate_function_collect.h
b/be/src/vec/aggregate_functions/aggregate_function_collect.h
index 95193d2039c..de58f628ec9 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_collect.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_collect.h
@@ -256,8 +256,10 @@ struct AggregateFunctionCollectListData<StringRef,
HasLimit> {
}
max_size = rhs.max_size;
- data->insert_range_from(*rhs.data, 0,
- std::min(assert_cast<size_t>(max_size -
size()), rhs.size()));
+ data->insert_range_from(
+ *rhs.data, 0,
+ std::min(assert_cast<size_t>(static_cast<size_t>(max_size
- size())),
+ rhs.size()));
} else {
data->insert_range_from(*rhs.data, 0, rhs.size());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
index 500ba8f22f4..df6081626ca 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
@@ -2078,7 +2078,8 @@ public class Coordinator implements CoordInterface {
exchangeInstances =
ConnectContext.get().getSessionVariable().getExchangeInstanceParallel();
}
// when we use nested loop join do right outer / semi / anti
join, the instance must be 1.
- if (leftMostNode.getNumInstances() == 1) {
+ boolean isNereids = context != null &&
context.getState().isNereids();
+ if (!isNereids && leftMostNode.getNumInstances() == 1) {
exchangeInstances = 1;
}
if (exchangeInstances > 0 &&
fragmentExecParamsMap.get(inputFragmentId)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]