diff options
author | grigoriypisar <grigoriypisar@yandex-team.com> | 2023-09-22 12:57:57 +0300 |
---|---|---|
committer | grigoriypisar <grigoriypisar@yandex-team.com> | 2023-09-22 13:45:55 +0300 |
commit | 324cb5794148d2294025c9a5ca40a0166bb293c1 (patch) | |
tree | 1b53ae8423d6a3a54f6cbd6c03855d63a4e4aa56 | |
parent | fc805a145e9dd59a78bca584f85fd5178a6f75ad (diff) | |
download | ydb-324cb5794148d2294025c9a5ca40a0166bb293c1.tar.gz |
fix dependencies between QueryServiceConfig and TableServiceConfig
Fixed config dependencies
5 files changed, 66 insertions, 57 deletions
diff --git a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp index a9a83440192..e9137fb35fc 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp +++ b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp @@ -58,7 +58,8 @@ public: } TKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings, - const TTableServiceConfig& serviceConfig, + const TTableServiceConfig& tableServiceConfig, + const TQueryServiceConfig& queryServiceConfig, const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, const TString& uid, const TKqpQueryId& queryId, @@ -77,7 +78,7 @@ public: , DbCounters(dbCounters) , Config(MakeIntrusive<TKikimrConfiguration>()) , MetadataProviderConfig(metadataProviderConfig) - , CompilationTimeout(TDuration::MilliSeconds(serviceConfig.GetCompileTimeoutMs())) + , CompilationTimeout(TDuration::MilliSeconds(tableServiceConfig.GetCompileTimeoutMs())) , UserRequestContext(userRequestContext) , CompileActorSpan(TWilsonKqp::CompileActor, std::move(traceId), "CompileActor") , TempTablesState(std::move(tempTablesState)) @@ -88,7 +89,12 @@ public: Config->_KqpTablePathPrefix = QueryId.Database; } - ApplyServiceConfig(*Config, serviceConfig); + ApplyServiceConfig(*Config, tableServiceConfig); + + if (QueryId.Settings.QueryType == NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT) { + ui32 scriptResultRowsLimit = queryServiceConfig.GetScriptResultRowsLimit(); + Config->_ResultRowsLimit = scriptResultRowsLimit ? scriptResultRowsLimit : std::numeric_limits<ui32>::max(); + } Config->FreezeDefaults(); } @@ -381,7 +387,7 @@ private: TIntrusiveConstPtr<NACLib::TUserToken> UserToken; TKqpDbCountersPtr DbCounters; TKikimrConfiguration::TPtr Config; - NKikimrConfig::TMetadataProviderConfig MetadataProviderConfig; + TMetadataProviderConfig MetadataProviderConfig; TDuration CompilationTimeout; TInstant StartTime; TDuration CompileCpuTime; @@ -424,15 +430,16 @@ void ApplyServiceConfig(TKikimrConfiguration& kqpConfig, const TTableServiceConf } IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings, - const TTableServiceConfig& serviceConfig, - const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, + const TTableServiceConfig& tableServiceConfig, + const TQueryServiceConfig& queryServiceConfig, + const TMetadataProviderConfig& metadataProviderConfig, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, const TString& uid, const TKqpQueryId& query, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, std::optional<TKqpFederatedQuerySetup> federatedQuerySetup, TKqpDbCountersPtr dbCounters, const TIntrusivePtr<TUserRequestContext>& userRequestContext, NWilson::TTraceId traceId, TKqpTempTablesState::TConstPtr tempTablesState) { - return new TKqpCompileActor(owner, kqpSettings, serviceConfig, metadataProviderConfig, + return new TKqpCompileActor(owner, kqpSettings, tableServiceConfig, queryServiceConfig, metadataProviderConfig, moduleResolverState, counters, uid, query, userToken, dbCounters, federatedQuerySetup, userRequestContext, diff --git a/ydb/core/kqp/compile_service/kqp_compile_service.cpp b/ydb/core/kqp/compile_service/kqp_compile_service.cpp index 4f70f8e8b4b..02bf1204422 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_service.cpp +++ b/ydb/core/kqp/compile_service/kqp_compile_service.cpp @@ -330,19 +330,20 @@ public: return NKikimrServices::TActivity::KQP_COMPILE_SERVICE; } - TKqpCompileService(const TTableServiceConfig& serviceConfig, - const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, const TKqpSettings::TConstPtr& kqpSettings, + TKqpCompileService(const TTableServiceConfig& tableServiceConfig, const TQueryServiceConfig& queryServiceConfig, + const TMetadataProviderConfig& metadataProviderConfig, const TKqpSettings::TConstPtr& kqpSettings, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory, std::optional<TKqpFederatedQuerySetup> federatedQuerySetup ) - : Config(serviceConfig) + : TableServiceConfig(tableServiceConfig) + , QueryServiceConfig(queryServiceConfig) , MetadataProviderConfig(metadataProviderConfig) , KqpSettings(kqpSettings) , ModuleResolverState(moduleResolverState) , Counters(counters) - , QueryCache(Config.GetCompileQueryCacheSize(), TDuration::Seconds(Config.GetCompileQueryCacheTTLSec())) - , RequestsQueue(Config.GetCompileRequestQueueSize()) + , QueryCache(TableServiceConfig.GetCompileQueryCacheSize(), TDuration::Seconds(TableServiceConfig.GetCompileQueryCacheTTLSec())) + , RequestsQueue(TableServiceConfig.GetCompileRequestQueueSize()) , QueryReplayFactory(std::move(queryReplayFactory)) , FederatedQuerySetup(federatedQuerySetup) {} @@ -350,7 +351,7 @@ public: void Bootstrap(const TActorContext& ctx) { Y_UNUSED(ctx); - QueryReplayBackend.Reset(CreateQueryReplayBackend(Config, Counters, QueryReplayFactory)); + QueryReplayBackend.Reset(CreateQueryReplayBackend(TableServiceConfig, Counters, QueryReplayFactory)); // Subscribe for TableService config changes ui32 tableServiceConfigKind = (ui32) NKikimrConsole::TConfigItem::TableServiceConfigItem; Send(NConsole::MakeConfigsDispatcherID(SelfId().NodeId()), @@ -358,7 +359,7 @@ public: IEventHandle::FlagTrackDelivery); Become(&TKqpCompileService::MainState); - if (Config.GetCompileQueryCacheTTLSec()) { + if (TableServiceConfig.GetCompileQueryCacheTTLSec()) { StartCheckQueriesTtlTimer(); } } @@ -390,50 +391,50 @@ private: void HandleConfig(NConsole::TEvConsole::TEvConfigNotificationRequest::TPtr& ev) { auto &event = ev->Get()->Record; - bool enableKqpDataQueryStreamLookup = Config.GetEnableKqpDataQueryStreamLookup(); - bool enableKqpScanQueryStreamLookup = Config.GetEnableKqpScanQueryStreamLookup(); - bool enableKqpScanQueryStreamIdxLookupJoin = Config.GetEnableKqpScanQueryStreamIdxLookupJoin(); + bool enableKqpDataQueryStreamLookup = TableServiceConfig.GetEnableKqpDataQueryStreamLookup(); + bool enableKqpScanQueryStreamLookup = TableServiceConfig.GetEnableKqpScanQueryStreamLookup(); + bool enableKqpScanQueryStreamIdxLookupJoin = TableServiceConfig.GetEnableKqpScanQueryStreamIdxLookupJoin(); - bool enableKqpDataQuerySourceRead = Config.GetEnableKqpDataQuerySourceRead(); - bool enableKqpScanQuerySourceRead = Config.GetEnableKqpScanQuerySourceRead(); + bool enableKqpDataQuerySourceRead = TableServiceConfig.GetEnableKqpDataQuerySourceRead(); + bool enableKqpScanQuerySourceRead = TableServiceConfig.GetEnableKqpScanQuerySourceRead(); - bool enableKqpDataQueryPredicateExtract = Config.GetEnablePredicateExtractForDataQueries(); - bool enableKqpScanQueryPredicateExtract = Config.GetEnablePredicateExtractForScanQueries(); - bool predicateExtract20 = Config.GetPredicateExtract20(); + bool enableKqpDataQueryPredicateExtract = TableServiceConfig.GetEnablePredicateExtractForDataQueries(); + bool enableKqpScanQueryPredicateExtract = TableServiceConfig.GetEnablePredicateExtractForScanQueries(); + bool predicateExtract20 = TableServiceConfig.GetPredicateExtract20(); - bool enableSequentialReads = Config.GetEnableSequentialReads(); - bool defaultSyntaxVersion = Config.GetSqlVersion(); - bool enableKqpImmediateEffects = Config.GetEnableKqpImmediateEffects(); + bool enableSequentialReads = TableServiceConfig.GetEnableSequentialReads(); + bool defaultSyntaxVersion = TableServiceConfig.GetSqlVersion(); + bool enableKqpImmediateEffects = TableServiceConfig.GetEnableKqpImmediateEffects(); - bool indexAutoChooser = Config.GetEnableIndexAutoChooser(); + bool indexAutoChooser = TableServiceConfig.GetEnableIndexAutoChooser(); - Config.Swap(event.MutableConfig()->MutableTableServiceConfig()); + TableServiceConfig.Swap(event.MutableConfig()->MutableTableServiceConfig()); LOG_INFO(*TlsActivationContext, NKikimrServices::KQP_COMPILE_SERVICE, "Updated config"); auto responseEv = MakeHolder<NConsole::TEvConsole::TEvConfigNotificationResponse>(event); Send(ev->Sender, responseEv.Release(), IEventHandle::FlagTrackDelivery, ev->Cookie); - if (Config.GetSqlVersion() != defaultSyntaxVersion || - Config.GetEnableKqpDataQueryStreamLookup() != enableKqpDataQueryStreamLookup || - Config.GetEnableKqpScanQueryStreamLookup() != enableKqpScanQueryStreamLookup || - Config.GetEnableKqpScanQueryStreamIdxLookupJoin() != enableKqpScanQueryStreamIdxLookupJoin || - Config.GetEnableKqpDataQuerySourceRead() != enableKqpDataQuerySourceRead || - Config.GetEnableKqpScanQuerySourceRead() != enableKqpScanQuerySourceRead || - Config.GetEnablePredicateExtractForDataQueries() != enableKqpDataQueryPredicateExtract || - Config.GetEnablePredicateExtractForScanQueries() != enableKqpScanQueryPredicateExtract || - Config.GetPredicateExtract20() != predicateExtract20 || - Config.GetEnableSequentialReads() != enableSequentialReads || - Config.GetEnableKqpImmediateEffects() != enableKqpImmediateEffects || - Config.GetEnableIndexAutoChooser() != indexAutoChooser) { + if (TableServiceConfig.GetSqlVersion() != defaultSyntaxVersion || + TableServiceConfig.GetEnableKqpDataQueryStreamLookup() != enableKqpDataQueryStreamLookup || + TableServiceConfig.GetEnableKqpScanQueryStreamLookup() != enableKqpScanQueryStreamLookup || + TableServiceConfig.GetEnableKqpScanQueryStreamIdxLookupJoin() != enableKqpScanQueryStreamIdxLookupJoin || + TableServiceConfig.GetEnableKqpDataQuerySourceRead() != enableKqpDataQuerySourceRead || + TableServiceConfig.GetEnableKqpScanQuerySourceRead() != enableKqpScanQuerySourceRead || + TableServiceConfig.GetEnablePredicateExtractForDataQueries() != enableKqpDataQueryPredicateExtract || + TableServiceConfig.GetEnablePredicateExtractForScanQueries() != enableKqpScanQueryPredicateExtract || + TableServiceConfig.GetPredicateExtract20() != predicateExtract20 || + TableServiceConfig.GetEnableSequentialReads() != enableSequentialReads || + TableServiceConfig.GetEnableKqpImmediateEffects() != enableKqpImmediateEffects || + TableServiceConfig.GetEnableIndexAutoChooser() != indexAutoChooser) { LOG_NOTICE_S(*TlsActivationContext, NKikimrServices::KQP_COMPILE_SERVICE, "Iterator read flags was changed. StreamLookup from " << enableKqpDataQueryStreamLookup << - " to " << Config.GetEnableKqpDataQueryStreamLookup() << " for data queries, from " << - enableKqpScanQueryStreamLookup << " to " << Config.GetEnableKqpScanQueryStreamLookup() << ", from " - << enableKqpScanQueryStreamIdxLookupJoin << " to " << Config.GetEnableKqpScanQueryStreamIdxLookupJoin() + " to " << TableServiceConfig.GetEnableKqpDataQueryStreamLookup() << " for data queries, from " << + enableKqpScanQueryStreamLookup << " to " << TableServiceConfig.GetEnableKqpScanQueryStreamLookup() << ", from " + << enableKqpScanQueryStreamIdxLookupJoin << " to " << TableServiceConfig.GetEnableKqpScanQueryStreamIdxLookupJoin() << " scan queries. Sources for data queries from " << enableKqpDataQuerySourceRead << " to " - << Config.GetEnableKqpDataQuerySourceRead() << "for scan queries from " << enableKqpScanQuerySourceRead - << " to " << Config.GetEnableKqpScanQuerySourceRead()); + << TableServiceConfig.GetEnableKqpDataQuerySourceRead() << "for scan queries from " << enableKqpScanQuerySourceRead + << " to " << TableServiceConfig.GetEnableKqpScanQuerySourceRead()); QueryCache.Clear(); } @@ -739,7 +740,7 @@ private: private: void ProcessQueue(const TActorContext& ctx) { - auto maxActiveRequests = Config.GetCompileMaxActiveRequests(); + auto maxActiveRequests = TableServiceConfig.GetCompileMaxActiveRequests(); while (RequestsQueue.ActiveRequestsCount() < maxActiveRequests) { auto request = RequestsQueue.Dequeue(); @@ -766,7 +767,7 @@ private: } void StartCompilation(TKqpCompileRequest&& request, const TActorContext& ctx) { - auto compileActor = CreateKqpCompileActor(ctx.SelfID, KqpSettings, Config, MetadataProviderConfig, ModuleResolverState, Counters, + auto compileActor = CreateKqpCompileActor(ctx.SelfID, KqpSettings, TableServiceConfig, QueryServiceConfig, MetadataProviderConfig, ModuleResolverState, Counters, request.Uid, request.Query, request.UserToken, FederatedQuerySetup, request.DbCounters, request.UserRequestContext, request.CompileServiceSpan.GetTraceId(), std::move(request.TempTablesState)); auto compileActorId = ctx.ExecutorThread.RegisterActor(compileActor, TMailboxType::HTSwap, @@ -781,7 +782,7 @@ private: } void StartCheckQueriesTtlTimer() { - Schedule(TDuration::Seconds(Config.GetCompileQueryCacheTTLSec()), new TEvents::TEvWakeup()); + Schedule(TDuration::Seconds(TableServiceConfig.GetCompileQueryCacheTTLSec()), new TEvents::TEvWakeup()); } void Reply(const TActorId& sender, const TKqpCompileResult::TConstPtr& compileResult, @@ -846,8 +847,9 @@ private: } private: - TTableServiceConfig Config; - NKikimrConfig::TMetadataProviderConfig MetadataProviderConfig; + TTableServiceConfig TableServiceConfig; + TQueryServiceConfig QueryServiceConfig; + TMetadataProviderConfig MetadataProviderConfig; TKqpSettings::TConstPtr KqpSettings; TIntrusivePtr<TModuleResolverState> ModuleResolverState; TIntrusivePtr<TKqpCounters> Counters; @@ -859,14 +861,14 @@ private: std::optional<TKqpFederatedQuerySetup> FederatedQuerySetup; }; -IActor* CreateKqpCompileService(const TTableServiceConfig& serviceConfig, - const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, const TKqpSettings::TConstPtr& kqpSettings, +IActor* CreateKqpCompileService(const TTableServiceConfig& tableServiceConfig, const TQueryServiceConfig& queryServiceConfig, + const TMetadataProviderConfig& metadataProviderConfig, const TKqpSettings::TConstPtr& kqpSettings, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory, std::optional<TKqpFederatedQuerySetup> federatedQuerySetup ) { - return new TKqpCompileService(serviceConfig, metadataProviderConfig, kqpSettings, moduleResolverState, counters, + return new TKqpCompileService(tableServiceConfig, queryServiceConfig, metadataProviderConfig, kqpSettings, moduleResolverState, counters, std::move(queryReplayFactory), federatedQuerySetup); } diff --git a/ydb/core/kqp/compile_service/kqp_compile_service.h b/ydb/core/kqp/compile_service/kqp_compile_service.h index 9a536a9f683..1f6caee851c 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_service.h +++ b/ydb/core/kqp/compile_service/kqp_compile_service.h @@ -8,7 +8,8 @@ namespace NKikimr { namespace NKqp { -IActor* CreateKqpCompileService(const NKikimrConfig::TTableServiceConfig& serviceConfig, +IActor* CreateKqpCompileService(const NKikimrConfig::TTableServiceConfig& tableServiceConfig, + const NKikimrConfig::TQueryServiceConfig& queryServiceConfig, const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, const TKqpSettings::TConstPtr& kqpSettings, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, std::shared_ptr<IQueryReplayBackendFactory> queryReplayFactory, @@ -19,7 +20,8 @@ IActor* CreateKqpCompileComputationPatternService(const NKikimrConfig::TTableSer TIntrusivePtr<TKqpCounters> counters); IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstPtr& kqpSettings, - const NKikimrConfig::TTableServiceConfig& serviceConfig, + const NKikimrConfig::TTableServiceConfig& tableServiceConfig, + const NKikimrConfig::TQueryServiceConfig& queryServiceConfig, const NKikimrConfig::TMetadataProviderConfig& metadataProviderConfig, TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters, const TString& uid, const TKqpQueryId& query, diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp index c42ad4a89c9..f04daf02ca5 100644 --- a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp +++ b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp @@ -217,7 +217,7 @@ public: } // Create compile service - CompileService = TlsActivationContext->ExecutorThread.RegisterActor(CreateKqpCompileService(TableServiceConfig, MetadataProviderConfig, + CompileService = TlsActivationContext->ExecutorThread.RegisterActor(CreateKqpCompileService(TableServiceConfig, QueryServiceConfig, MetadataProviderConfig, KqpSettings, ModuleResolverState, Counters, std::move(QueryReplayFactory), FederatedQuerySetup)); TlsActivationContext->ExecutorThread.ActorSystem->RegisterLocalService( MakeKqpCompileServiceID(SelfId().NodeId()), CompileService); diff --git a/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp b/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp index 718988eba90..ea3a77a0d01 100644 --- a/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp +++ b/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp @@ -662,7 +662,6 @@ Y_UNIT_TEST_SUITE(KqpQueryServiceScripts) { NKikimrConfig::TAppConfig appCfg; appCfg.MutableQueryServiceConfig()->set_scriptresultrowslimit(ROWS_LIMIT); - appCfg.MutableTableServiceConfig()->MutableQueryLimits()->set_resultrowslimit(ROWS_LIMIT); auto kikimr = DefaultKikimrRunner({}, appCfg); auto db = kikimr.GetQueryClient(); @@ -683,7 +682,6 @@ Y_UNIT_TEST_SUITE(KqpQueryServiceScripts) { NKikimrConfig::TAppConfig appCfg; appCfg.MutableQueryServiceConfig()->set_scriptresultsizelimit(NUMER_ROWS / 2); - appCfg.MutableTableServiceConfig()->MutableQueryLimits()->set_resultrowslimit(NUMER_ROWS); auto kikimr = DefaultKikimrRunner({}, appCfg); auto db = kikimr.GetQueryClient(); |