18
18
#include < ydb/core/kqp/session_actor/kqp_worker_common.h>
19
19
#include < ydb/core/kqp/node_service/kqp_node_service.h>
20
20
#include < ydb/core/kqp/workload_service/kqp_workload_service.h>
21
+ #include < ydb/core/resource_pools/resource_pool_settings.h>
21
22
#include < ydb/core/tx/schemeshard/schemeshard.h>
22
23
#include < ydb/library/yql/dq/actors/spilling/spilling_file.h>
23
24
#include < ydb/library/yql/dq/actors/spilling/spilling.h>
@@ -187,6 +188,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
187
188
): LogConfig(logConfig)
188
189
, TableServiceConfig(tableServiceConfig)
189
190
, QueryServiceConfig(queryServiceConfig)
191
+ , FeatureFlags()
190
192
, KqpSettings(std::make_shared<const TKqpSettings>(std::move(settings)))
191
193
, FederatedQuerySetupFactory(federatedQuerySetupFactory)
192
194
, QueryReplayFactory(std::move(queryReplayFactory))
@@ -199,6 +201,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
199
201
void Bootstrap (const TActorContext &ctx) {
200
202
NLwTraceMonPage::ProbeRegistry ().AddProbesList (LWTRACE_GET_PROBES (KQP_PROVIDER));
201
203
Counters = MakeIntrusive<TKqpCounters>(AppData ()->Counters , &TlsActivationContext->AsActorContext ());
204
+ FeatureFlags = AppData ()->FeatureFlags ;
202
205
// NOTE: some important actors are constructed within next call
203
206
FederatedQuerySetup = FederatedQuerySetupFactory->Make (ctx.ActorSystem ());
204
207
AsyncIoFactory = CreateKqpAsyncIoFactory (Counters, FederatedQuerySetup, S3ActorsFactory);
@@ -219,12 +222,13 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
219
222
220
223
UpdateYqlLogLevels ();
221
224
222
- // Subscribe for TableService & Logger config changes
225
+ // Subscribe for TableService & Logger & FeatureFlags config changes
223
226
ui32 tableServiceConfigKind = (ui32)NKikimrConsole::TConfigItem::TableServiceConfigItem;
224
227
ui32 logConfigKind = (ui32)NKikimrConsole::TConfigItem::LogConfigItem;
228
+ ui32 featureFlagsKind = (ui32)NKikimrConsole::TConfigItem::FeatureFlagsItem;
225
229
Send (NConsole::MakeConfigsDispatcherID (SelfId ().NodeId ()),
226
230
new NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionRequest (
227
- {tableServiceConfigKind, logConfigKind}),
231
+ {tableServiceConfigKind, logConfigKind, featureFlagsKind }),
228
232
IEventHandle::FlagTrackDelivery);
229
233
230
234
WhiteBoardService = NNodeWhiteboard::MakeNodeWhiteboardServiceId (SelfId ().NodeId ());
@@ -482,6 +486,8 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
482
486
LogConfig.Swap (event.MutableConfig ()->MutableLogConfig ());
483
487
UpdateYqlLogLevels ();
484
488
489
+ FeatureFlags.Swap (event.MutableConfig ()->MutableFeatureFlags ());
490
+
485
491
auto responseEv = MakeHolder<NConsole::TEvConsole::TEvConfigNotificationResponse>(event);
486
492
Send (ev->Sender , responseEv.Release (), IEventHandle::FlagTrackDelivery, ev->Cookie );
487
493
PublishResourceUsage ();
@@ -681,6 +687,13 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
681
687
LocalSessions->AttachQueryText (sessionInfo, ev->Get ()->GetQuery ());
682
688
}
683
689
690
+ if (!FeatureFlags.GetEnableResourcePools ()) {
691
+ ev->Get ()->SetPoolId (" " );
692
+ } else if (!ev->Get ()->GetPoolId ()) {
693
+ // TODO: do not use default pool if there is no limits
694
+ ev->Get ()->SetPoolId (NResourcePool::DEFAULT_POOL_ID);
695
+ }
696
+
684
697
TActorId targetId;
685
698
if (sessionInfo) {
686
699
targetId = sessionInfo->WorkerId ;
@@ -1742,6 +1755,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
1742
1755
NKikimrConfig::TLogConfig LogConfig;
1743
1756
NKikimrConfig::TTableServiceConfig TableServiceConfig;
1744
1757
NKikimrConfig::TQueryServiceConfig QueryServiceConfig;
1758
+ NKikimrConfig::TFeatureFlags FeatureFlags;
1745
1759
TKqpSettings::TConstPtr KqpSettings;
1746
1760
IKqpFederatedQuerySetupFactory::TPtr FederatedQuerySetupFactory;
1747
1761
std::optional<TKqpFederatedQuerySetup> FederatedQuerySetup;
0 commit comments