@@ -195,6 +195,23 @@ class TKqpNodeService : public TActorBootstrapped<TKqpNodeService> {
195195
196196 auto schedulerNow = TlsActivationContext->Monotonic ();
197197
198+ TString schedulerGroup = msg.GetSchedulerGroup ();
199+
200+ if (SchedulerOptions.Scheduler ->Disabled (schedulerGroup)) {
201+ auto share = msg.GetPoolMaxCpuShare ();
202+ if (share > 0 ) {
203+ Scheduler->UpdateGroupShare (schedulerGroup, share, schedulerNow);
204+ Send (SchedulerActorId, new TEvSchedulerNewPool (msg.GetDatabase (), schedulerGroup));
205+ } else {
206+ schedulerGroup = " " ;
207+ }
208+ }
209+
210+ std::optional<ui64> querySchedulerGroup;
211+ if (msg.HasQueryCpuShare () && schedulerGroup) {
212+ querySchedulerGroup = Scheduler->MakePerQueryGroup (schedulerNow, msg.GetQueryCpuShare (), schedulerGroup);
213+ }
214+
198215 // start compute actors
199216 TMaybe<NYql::NDqProto::TRlPath> rlPath = Nothing ();
200217 if (msgRtSettings.HasRlPath ()) {
@@ -208,30 +225,21 @@ class TKqpNodeService : public TActorBootstrapped<TKqpNodeService> {
208225
209226 const ui32 tasksCount = msg.GetTasks ().size ();
210227 for (auto & dqTask: *msg.MutableTasks ()) {
211- TString group = msg.GetSchedulerGroup ();
212-
213228 TComputeActorSchedulingOptions schedulingTaskOptions {
214229 .Now = schedulerNow,
215230 .SchedulerActorId = SchedulerActorId,
216231 .Scheduler = Scheduler.get (),
217- .Group = group ,
232+ .Group = schedulerGroup ,
218233 .Weight = 1 ,
219- .NoThrottle = false ,
234+ .NoThrottle = schedulerGroup. empty () ,
220235 .Counters = Counters
221236 };
222237
223- if (SchedulerOptions.Scheduler ->Disabled (group)) {
224- auto share = msg.GetMaxCpuShare ();
225- if (share > 0 ) {
226- Scheduler->UpdateMaxShare (group, share, schedulerNow);
227- Send (SchedulerActorId, new TEvSchedulerNewPool (msg.GetDatabase (), group, share));
228- } else {
229- schedulingTaskOptions.NoThrottle = true ;
230- }
231- }
232-
233238 if (!schedulingTaskOptions.NoThrottle ) {
234239 schedulingTaskOptions.Handle = SchedulerOptions.Scheduler ->Enroll (schedulingTaskOptions.Group , schedulingTaskOptions.Weight , schedulingTaskOptions.Now );
240+ if (querySchedulerGroup) {
241+ Scheduler->AddToGroup (schedulerNow, *querySchedulerGroup, schedulingTaskOptions.Handle );
242+ }
235243 }
236244
237245 auto result = CaFactory_->CreateKqpComputeActor ({
0 commit comments