summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <[email protected]>2023-08-30 22:07:10 +0300
committerhor911 <[email protected]>2023-08-30 22:30:38 +0300
commitb252459d58a3fc1a10fa18b1c7c339852b751969 (patch)
tree5c491df960a0e5f89655b6ce9c9e4b40d8022a75
parent905fc8f01a904a13c0466f458a5d05205f15ea1d (diff)
Partition (S3) to up to 120 ranges
-rw-r--r--ydb/core/kqp/query_compiler/kqp_query_compiler.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
index 84f448d36f5..0fb3a270589 100644
--- a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
+++ b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
@@ -894,7 +894,14 @@ private:
// Partitioning
TVector<TString> partitionParams;
TString clusterName;
- dqIntegration->Partition(NYql::TDqSettings(), NYql::TDqSettings::TDefault::MaxTasksPerStage, source.Ref(), partitionParams, &clusterName, ctx, false);
+ // In runtime, number of tasks with Sources is limited by 2x of node count
+ // We prepare a lot of partitions and distribute them between these tasks
+ // Constraint of 1 task per partition is NOT valid anymore
+ // We choose 120 as number with a lot of divisors for even final distribution
+ //
+ // TODO: Replace with ydb.MaxTasksPerStage when implemented
+ //
+ dqIntegration->Partition(NYql::TDqSettings(), 120, source.Ref(), partitionParams, &clusterName, ctx, false);
externalSource.SetTaskParamKey(TString(dataSourceCategory));
for (const TString& partitionParam : partitionParams) {
externalSource.AddPartitionedTaskParams(partitionParam);