aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrigoriypisar <grigoriypisar@yandex-team.com>2023-09-22 12:57:57 +0300
committergrigoriypisar <grigoriypisar@yandex-team.com>2023-09-22 13:45:55 +0300
commit324cb5794148d2294025c9a5ca40a0166bb293c1 (patch)
tree1b53ae8423d6a3a54f6cbd6c03855d63a4e4aa56
parentfc805a145e9dd59a78bca584f85fd5178a6f75ad (diff)
downloadydb-324cb5794148d2294025c9a5ca40a0166bb293c1.tar.gz
fix dependencies between QueryServiceConfig and TableServiceConfig
Fixed config dependencies
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_actor.cpp21
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_service.cpp92
-rw-r--r--ydb/core/kqp/compile_service/kqp_compile_service.h6
-rw-r--r--ydb/core/kqp/proxy_service/kqp_proxy_service.cpp2
-rw-r--r--ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp2
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();