File tree Expand file tree Collapse file tree 4 files changed +12
-1
lines changed Expand file tree Collapse file tree 4 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -279,8 +279,14 @@ std::unique_ptr<IEventHandle> TKqpPlanner::AssignTasksToNodes() {
279
279
280
280
auto placingOptions = ResourceManager_->GetPlacingOptions ();
281
281
282
+ ui64 nonParallelLimit = placingOptions.MaxNonParallelTasksExecutionLimit ;
283
+ if (MayRunTasksLocally) {
284
+ // not applied to column shards and external sources
285
+ nonParallelLimit = placingOptions.MaxNonParallelDataQueryTasksLimit ;
286
+ }
287
+
282
288
bool singleNodeExecutionMakeSence = (
283
- ResourceEstimations.size () <= placingOptions. MaxNonParallelTasksExecutionLimit ||
289
+ ResourceEstimations.size () <= nonParallelLimit ||
284
290
// all readers are located on the one node.
285
291
TasksPerNode.size () == 1
286
292
);
Original file line number Diff line number Diff line change @@ -187,6 +187,7 @@ class TKqpResourceManager : public IKqpResourceManager {
187
187
TPlannerPlacingOptions GetPlacingOptions () override {
188
188
return TPlannerPlacingOptions{
189
189
.MaxNonParallelTasksExecutionLimit = MaxNonParallelTasksExecutionLimit.load (),
190
+ .MaxNonParallelDataQueryTasksLimit = MaxNonParallelDataQueryTasksLimit.load (),
190
191
.MaxNonParallelTopStageExecutionLimit = MaxNonParallelTopStageExecutionLimit.load (),
191
192
.PreferLocalDatacenterExecution = PreferLocalDatacenterExecution.load (),
192
193
};
@@ -476,6 +477,7 @@ class TKqpResourceManager : public IKqpResourceManager {
476
477
MaxNonParallelTopStageExecutionLimit.store (config.GetMaxNonParallelTopStageExecutionLimit ());
477
478
MaxNonParallelTasksExecutionLimit.store (config.GetMaxNonParallelTasksExecutionLimit ());
478
479
PreferLocalDatacenterExecution.store (config.GetPreferLocalDatacenterExecution ());
480
+ MaxNonParallelDataQueryTasksLimit.store (config.GetMaxNonParallelDataQueryTasksLimit ());
479
481
}
480
482
481
483
ui32 GetNodeId () override {
@@ -526,6 +528,7 @@ class TKqpResourceManager : public IKqpResourceManager {
526
528
std::atomic<ui64> MaxNonParallelTopStageExecutionLimit = 1 ;
527
529
std::atomic<ui64> MaxNonParallelTasksExecutionLimit = 8 ;
528
530
std::atomic<bool > PreferLocalDatacenterExecution = true ;
531
+ std::atomic<ui64> MaxNonParallelDataQueryTasksLimit = 1000 ;
529
532
530
533
// current state
531
534
std::atomic<ui64> LastResourceBrokerTaskId = 0 ;
Original file line number Diff line number Diff line change @@ -238,6 +238,7 @@ struct TKqpLocalNodeResources {
238
238
239
239
struct TPlannerPlacingOptions {
240
240
ui64 MaxNonParallelTasksExecutionLimit = 8 ;
241
+ ui64 MaxNonParallelDataQueryTasksLimit = 1000 ;
241
242
ui64 MaxNonParallelTopStageExecutionLimit = 1 ;
242
243
bool PreferLocalDatacenterExecution = true ;
243
244
};
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ message TTableServiceConfig {
50
50
optional uint64 MaxNonParallelTasksExecutionLimit = 25 [default = 8 ];
51
51
optional uint64 MaxNonParallelTopStageExecutionLimit = 26 [default = 1 ];
52
52
optional bool PreferLocalDatacenterExecution = 27 [ default = true ];
53
+ optional uint64 MaxNonParallelDataQueryTasksLimit = 28 [default = 1000 ];
53
54
}
54
55
55
56
message TSpillingServiceConfig {
You can’t perform that action at this time.
0 commit comments