Skip to content

Commit 895e035

Browse files
authored
YQ-3371 fixed WM useg without feature flag (#6203)
1 parent 00612bd commit 895e035

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

ydb/core/kqp/common/events/query.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,11 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
330330
return ProgressStatsPeriod;
331331
}
332332

333+
void SetPoolId(const TString& poolId) {
334+
PoolId = poolId;
335+
Record.MutableRequest()->SetPoolId(PoolId);
336+
}
337+
333338
TString GetPoolId() const {
334339
if (PoolId) {
335340
return PoolId;

ydb/core/kqp/proxy_service/kqp_proxy_service.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <ydb/core/kqp/session_actor/kqp_worker_common.h>
1919
#include <ydb/core/kqp/node_service/kqp_node_service.h>
2020
#include <ydb/core/kqp/workload_service/kqp_workload_service.h>
21+
#include <ydb/core/resource_pools/resource_pool_settings.h>
2122
#include <ydb/core/tx/schemeshard/schemeshard.h>
2223
#include <ydb/library/yql/dq/actors/spilling/spilling_file.h>
2324
#include <ydb/library/yql/dq/actors/spilling/spilling.h>
@@ -187,6 +188,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
187188
): LogConfig(logConfig)
188189
, TableServiceConfig(tableServiceConfig)
189190
, QueryServiceConfig(queryServiceConfig)
191+
, FeatureFlags()
190192
, KqpSettings(std::make_shared<const TKqpSettings>(std::move(settings)))
191193
, FederatedQuerySetupFactory(federatedQuerySetupFactory)
192194
, QueryReplayFactory(std::move(queryReplayFactory))
@@ -199,6 +201,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
199201
void Bootstrap(const TActorContext &ctx) {
200202
NLwTraceMonPage::ProbeRegistry().AddProbesList(LWTRACE_GET_PROBES(KQP_PROVIDER));
201203
Counters = MakeIntrusive<TKqpCounters>(AppData()->Counters, &TlsActivationContext->AsActorContext());
204+
FeatureFlags = AppData()->FeatureFlags;
202205
// NOTE: some important actors are constructed within next call
203206
FederatedQuerySetup = FederatedQuerySetupFactory->Make(ctx.ActorSystem());
204207
AsyncIoFactory = CreateKqpAsyncIoFactory(Counters, FederatedQuerySetup, S3ActorsFactory);
@@ -219,12 +222,13 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
219222

220223
UpdateYqlLogLevels();
221224

222-
// Subscribe for TableService & Logger config changes
225+
// Subscribe for TableService & Logger & FeatureFlags config changes
223226
ui32 tableServiceConfigKind = (ui32)NKikimrConsole::TConfigItem::TableServiceConfigItem;
224227
ui32 logConfigKind = (ui32)NKikimrConsole::TConfigItem::LogConfigItem;
228+
ui32 featureFlagsKind = (ui32)NKikimrConsole::TConfigItem::FeatureFlagsItem;
225229
Send(NConsole::MakeConfigsDispatcherID(SelfId().NodeId()),
226230
new NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionRequest(
227-
{tableServiceConfigKind, logConfigKind}),
231+
{tableServiceConfigKind, logConfigKind, featureFlagsKind}),
228232
IEventHandle::FlagTrackDelivery);
229233

230234
WhiteBoardService = NNodeWhiteboard::MakeNodeWhiteboardServiceId(SelfId().NodeId());
@@ -482,6 +486,8 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
482486
LogConfig.Swap(event.MutableConfig()->MutableLogConfig());
483487
UpdateYqlLogLevels();
484488

489+
FeatureFlags.Swap(event.MutableConfig()->MutableFeatureFlags());
490+
485491
auto responseEv = MakeHolder<NConsole::TEvConsole::TEvConfigNotificationResponse>(event);
486492
Send(ev->Sender, responseEv.Release(), IEventHandle::FlagTrackDelivery, ev->Cookie);
487493
PublishResourceUsage();
@@ -681,6 +687,13 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
681687
LocalSessions->AttachQueryText(sessionInfo, ev->Get()->GetQuery());
682688
}
683689

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+
684697
TActorId targetId;
685698
if (sessionInfo) {
686699
targetId = sessionInfo->WorkerId;
@@ -1742,6 +1755,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
17421755
NKikimrConfig::TLogConfig LogConfig;
17431756
NKikimrConfig::TTableServiceConfig TableServiceConfig;
17441757
NKikimrConfig::TQueryServiceConfig QueryServiceConfig;
1758+
NKikimrConfig::TFeatureFlags FeatureFlags;
17451759
TKqpSettings::TConstPtr KqpSettings;
17461760
IKqpFederatedQuerySetupFactory::TPtr FederatedQuerySetupFactory;
17471761
std::optional<TKqpFederatedQuerySetup> FederatedQuerySetup;

ydb/core/kqp/session_actor/kqp_session_actor.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,11 @@ class TKqpSessionActor : public TActorBootstrapped<TKqpSessionActor> {
454454

455455
QueryState->UpdateTempTablesState(TempTablesState);
456456

457-
PassRequestToResourcePool();
457+
if (QueryState->UserRequestContext->PoolId) {
458+
PassRequestToResourcePool();
459+
} else {
460+
CompileQuery();
461+
}
458462
}
459463

460464
void Handle(TEvents::TEvUndelivered::TPtr& ev) {

0 commit comments

Comments
 (0)