From a455f4949e02f96dbdeb55417be2c3466aaa72f1 Mon Sep 17 00:00:00 2001 From: Grigoriy Pisarenko Date: Thu, 18 Jul 2024 06:39:08 +0000 Subject: [PATCH 1/4] Added feature flag for sls --- ydb/core/kqp/workload_service/actors/actors.h | 4 ++-- .../workload_service/actors/scheme_actors.cpp | 23 +++++++++++++------ .../workload_service/kqp_workload_service.cpp | 4 +++- .../ut/kqp_workload_service_actors_ut.cpp | 2 +- ydb/core/protos/feature_flags.proto | 3 ++- ...eshard__operation_create_resource_pool.cpp | 7 ++++++ ydb/core/tx/schemeshard/schemeshard_impl.cpp | 1 + ydb/core/tx/schemeshard/schemeshard_impl.h | 1 + 8 files changed, 33 insertions(+), 12 deletions(-) diff --git a/ydb/core/kqp/workload_service/actors/actors.h b/ydb/core/kqp/workload_service/actors/actors.h index 5d9c576889c0..9e2b7db2e575 100644 --- a/ydb/core/kqp/workload_service/actors/actors.h +++ b/ydb/core/kqp/workload_service/actors/actors.h @@ -9,10 +9,10 @@ namespace NKikimr::NKqp::NWorkload { NActors::IActor* CreatePoolHandlerActor(const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, NMonitoring::TDynamicCounterPtr counters); // Fetch pool and create default pool if needed -NActors::IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists); +NActors::IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess); // Fetch and create pool in scheme shard -NActors::IActor* CreatePoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken); +NActors::IActor* CreatePoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess); NActors::IActor* CreatePoolCreatorActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, TIntrusiveConstPtr userToken, NACLibProto::TDiffACL diffAcl); // Cpu load fetcher actor diff --git a/ydb/core/kqp/workload_service/actors/scheme_actors.cpp b/ydb/core/kqp/workload_service/actors/scheme_actors.cpp index d05a4dde96a5..00009fcc4017 100644 --- a/ydb/core/kqp/workload_service/actors/scheme_actors.cpp +++ b/ydb/core/kqp/workload_service/actors/scheme_actors.cpp @@ -20,8 +20,9 @@ using namespace NActors; class TPoolResolverActor : public TActorBootstrapped { public: - TPoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists) + TPoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess) : Event(std::move(event)) + , EnableOnServerLess(enableOnServerLess) { if (!Event->Get()->PoolId) { Event->Get()->PoolId = NResourcePool::DEFAULT_POOL_ID; @@ -36,7 +37,7 @@ class TPoolResolverActor : public TActorBootstrapped { void StartPoolFetchRequest() const { LOG_D("Start pool fetching"); - Register(CreatePoolFetcherActor(SelfId(), Event->Get()->Database, Event->Get()->PoolId, Event->Get()->UserToken)); + Register(CreatePoolFetcherActor(SelfId(), Event->Get()->Database, Event->Get()->PoolId, Event->Get()->UserToken, EnableOnServerLess)); } void Handle(TEvPrivate::TEvFetchPoolResponse::TPtr& ev) { @@ -107,6 +108,7 @@ class TPoolResolverActor : public TActorBootstrapped { private: TEvPlaceRequestIntoPool::TPtr Event; + const bool EnableOnServerLess; bool CanCreatePool = false; bool DefaultPoolCreated = false; }; @@ -114,11 +116,12 @@ class TPoolResolverActor : public TActorBootstrapped { class TPoolFetcherActor : public TSchemeActorBase { public: - TPoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken) + TPoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess) : ReplyActorId(replyActorId) , Database(database) , PoolId(poolId) , UserToken(userToken) + , EnableOnServerLess(enableOnServerLess) {} void DoBootstrap() { @@ -133,6 +136,11 @@ class TPoolFetcherActor : public TSchemeActorBase { } const auto& result = results[0]; + if (!EnableOnServerLess && result.DomainInfo && result.DomainInfo->IsServerless()) { + Reply(Ydb::StatusIds::UNSUPPORTED, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + return; + } + switch (result.Status) { case EStatus::Unknown: case EStatus::PathNotTable: @@ -222,6 +230,7 @@ class TPoolFetcherActor : public TSchemeActorBase { const TString Database; const TString PoolId; const TIntrusiveConstPtr UserToken; + const bool EnableOnServerLess; NResourcePool::TPoolSettings PoolConfig; NKikimrProto::TPathID PathId; @@ -365,12 +374,12 @@ class TPoolCreatorActor : public TSchemeActorBase { } // anonymous namespace -IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists) { - return new TPoolResolverActor(std::move(event), defaultPoolExists); +IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess) { + return new TPoolResolverActor(std::move(event), defaultPoolExists, enableOnServerLess); } -IActor* CreatePoolFetcherActor(const TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken) { - return new TPoolFetcherActor(replyActorId, database, poolId, userToken); +IActor* CreatePoolFetcherActor(const TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess) { + return new TPoolFetcherActor(replyActorId, database, poolId, userToken, enableOnServerLess); } IActor* CreatePoolCreatorActor(const TActorId& replyActorId, const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, TIntrusiveConstPtr userToken, NACLibProto::TDiffACL diffAcl) { diff --git a/ydb/core/kqp/workload_service/kqp_workload_service.cpp b/ydb/core/kqp/workload_service/kqp_workload_service.cpp index d3de8654636e..4ed30cc1ceb3 100644 --- a/ydb/core/kqp/workload_service/kqp_workload_service.cpp +++ b/ydb/core/kqp/workload_service/kqp_workload_service.cpp @@ -84,6 +84,7 @@ class TKqpWorkloadService : public TActorBootstrapped { const auto& event = ev->Get()->Record; EnabledResourcePools = event.GetConfig().GetFeatureFlags().GetEnableResourcePools(); + EnabledResourcePoolsOnServerLess = event.GetConfig().GetFeatureFlags().GetEnableResourcePoolsOnServerLess(); if (EnabledResourcePools) { LOG_I("Resource pools was enanbled"); InitializeWorkloadService(); @@ -135,7 +136,7 @@ class TKqpWorkloadService : public TActorBootstrapped { LOG_D("Recieved new request from " << workerActorId << ", Database: " << ev->Get()->Database << ", PoolId: " << ev->Get()->PoolId << ", SessionId: " << ev->Get()->SessionId); bool hasDefaultPool = DatabasesWithDefaultPool.contains(CanonizePath(ev->Get()->Database)); - Register(CreatePoolResolverActor(std::move(ev), hasDefaultPool)); + Register(CreatePoolResolverActor(std::move(ev), hasDefaultPool, EnabledResourcePoolsOnServerLess)); } void Handle(TEvCleanupRequest::TPtr& ev) { @@ -520,6 +521,7 @@ class TKqpWorkloadService : public TActorBootstrapped { NMonitoring::TDynamicCounterPtr Counters; bool EnabledResourcePools = false; + bool EnabledResourcePoolsOnServerLess = false; bool ServiceInitialized = false; bool IdleChecksStarted = false; ETablesCreationStatus TablesCreationStatus = ETablesCreationStatus::Cleanup; diff --git a/ydb/core/kqp/workload_service/ut/kqp_workload_service_actors_ut.cpp b/ydb/core/kqp/workload_service/ut/kqp_workload_service_actors_ut.cpp index d1748959e473..2c259f9f601a 100644 --- a/ydb/core/kqp/workload_service/ut/kqp_workload_service_actors_ut.cpp +++ b/ydb/core/kqp/workload_service/ut/kqp_workload_service_actors_ut.cpp @@ -16,7 +16,7 @@ TEvPrivate::TEvFetchPoolResponse::TPtr FetchPool(TIntrusivePtr ydb, c auto runtime = ydb->GetRuntime(); const auto& edgeActor = runtime->AllocateEdgeActor(); - runtime->Register(CreatePoolFetcherActor(edgeActor, settings.DomainName_, poolId ? poolId : settings.PoolId_, MakeIntrusive(userSID, TVector{}))); + runtime->Register(CreatePoolFetcherActor(edgeActor, settings.DomainName_, poolId ? poolId : settings.PoolId_, MakeIntrusive(userSID, TVector{}), true)); return runtime->GrabEdgeEvent(edgeActor, FUTURE_WAIT_TIMEOUT); } diff --git a/ydb/core/protos/feature_flags.proto b/ydb/core/protos/feature_flags.proto index ae9441143a3b..03600a4cb767 100644 --- a/ydb/core/protos/feature_flags.proto +++ b/ydb/core/protos/feature_flags.proto @@ -141,7 +141,8 @@ message TFeatureFlags { optional bool EnableExternalSourceSchemaInference = 126 [default = false]; optional bool EnableDbMetadataCache = 127 [default = false]; optional bool EnableTableDatetime64 = 128 [default = true]; - optional bool EnableResourcePools = 129 [default = false]; + optional bool EnableResourcePools = 129 [default = false]; optional bool EnableColumnStatistics = 130 [default = false]; optional bool EnableSingleCompositeActionGroup = 131 [default = false]; + optional bool EnableResourcePoolsOnServerLess = 132 [default = false]; } diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp index 29c5aa399e72..c24481b19ba0 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp @@ -155,6 +155,13 @@ class TCreateResourcePool : public TSubOperation { static_cast(OperationId.GetTxId()), static_cast(context.SS->SelfTabletId())); + if (context.SS->IsServerlessDomain(TPath::Init(context.SS->RootPathId(), context.SS))) { + if (!context.SS->EnableResourcePoolsOnServerLess) { + result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + return result; + } + } + const TPath& parentPath = TPath::Resolve(parentPathStr, context.SS); RETURN_RESULT_UNLESS(NResourcePool::IsParentPathValid(result, parentPath)); diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.cpp b/ydb/core/tx/schemeshard/schemeshard_impl.cpp index 765401edd1f7..5ef178dd0a33 100644 --- a/ydb/core/tx/schemeshard/schemeshard_impl.cpp +++ b/ydb/core/tx/schemeshard/schemeshard_impl.cpp @@ -7010,6 +7010,7 @@ void TSchemeShard::ApplyConsoleConfigs(const NKikimrConfig::TFeatureFlags& featu EnableTempTables = featureFlags.GetEnableTempTables(); EnableReplaceIfExistsForExternalEntities = featureFlags.GetEnableReplaceIfExistsForExternalEntities(); EnableTableDatetime64 = featureFlags.GetEnableTableDatetime64(); + EnableResourcePoolsOnServerLess = featureFlags.GetEnableResourcePoolsOnServerLess(); } void TSchemeShard::ConfigureStatsBatching(const NKikimrConfig::TSchemeShardConfig& config, const TActorContext& ctx) { diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.h b/ydb/core/tx/schemeshard/schemeshard_impl.h index 7a9eb9586dd6..2dd94bc7b44c 100644 --- a/ydb/core/tx/schemeshard/schemeshard_impl.h +++ b/ydb/core/tx/schemeshard/schemeshard_impl.h @@ -326,6 +326,7 @@ class TSchemeShard bool EnableReplaceIfExistsForExternalEntities = false; bool EnableTempTables = false; bool EnableTableDatetime64 = false; + bool EnableResourcePoolsOnServerLess = false; TShardDeleter ShardDeleter; From 19ef0e207847fb91fe3d56a3ae0632813db92742 Mon Sep 17 00:00:00 2001 From: Grigoriy Pisarenko Date: Fri, 19 Jul 2024 07:17:07 +0000 Subject: [PATCH 2/4] Fixed feature flag check for drop query --- .../behaviour/resource_pool/manager.cpp | 21 ++++++++++++------- .../gateway/behaviour/resource_pool/manager.h | 2 +- ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp | 14 +++++++++---- ...meshard__operation_alter_resource_pool.cpp | 7 +++++++ 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/ydb/core/kqp/gateway/behaviour/resource_pool/manager.cpp b/ydb/core/kqp/gateway/behaviour/resource_pool/manager.cpp index 69447732cfc8..d3196d1f2f85 100644 --- a/ydb/core/kqp/gateway/behaviour/resource_pool/manager.cpp +++ b/ydb/core/kqp/gateway/behaviour/resource_pool/manager.cpp @@ -192,19 +192,19 @@ TResourcePoolManager::TAsyncStatus TResourcePoolManager::DoModify(const NYql::TO TResourcePoolManager::TAsyncStatus TResourcePoolManager::CreateResourcePool(const NYql::TCreateObjectSettings& settings, TInternalModificationContext& context, ui32 nodeId) const { NKqpProto::TKqpSchemeOperation schemeOperation; PrepareCreateResourcePool(schemeOperation, settings, context); - return ExecuteSchemeRequest(schemeOperation.GetCreateResourcePool(), context.GetExternalData(), nodeId); + return ExecuteSchemeRequest(schemeOperation.GetCreateResourcePool(), context.GetExternalData(), nodeId, NKqpProto::TKqpSchemeOperation::kCreateResourcePool); } TResourcePoolManager::TAsyncStatus TResourcePoolManager::AlterResourcePool(const NYql::TCreateObjectSettings& settings, TInternalModificationContext& context, ui32 nodeId) const { NKqpProto::TKqpSchemeOperation schemeOperation; PrepareAlterResourcePool(schemeOperation, settings, context); - return ExecuteSchemeRequest(schemeOperation.GetAlterResourcePool(), context.GetExternalData(), nodeId); + return ExecuteSchemeRequest(schemeOperation.GetAlterResourcePool(), context.GetExternalData(), nodeId, NKqpProto::TKqpSchemeOperation::kAlterResourcePool); } TResourcePoolManager::TAsyncStatus TResourcePoolManager::DropResourcePool(const NYql::TCreateObjectSettings& settings, TInternalModificationContext& context, ui32 nodeId) const { NKqpProto::TKqpSchemeOperation schemeOperation; PrepareDropResourcePool(schemeOperation, settings, context); - return ExecuteSchemeRequest(schemeOperation.GetDropResourcePool(), context.GetExternalData(), nodeId); + return ExecuteSchemeRequest(schemeOperation.GetDropResourcePool(), context.GetExternalData(), nodeId, NKqpProto::TKqpSchemeOperation::kDropResourcePool); } //// Deferred modification @@ -271,11 +271,11 @@ TResourcePoolManager::TAsyncStatus TResourcePoolManager::ExecutePrepared(const N try { switch (schemeOperation.GetOperationCase()) { case NKqpProto::TKqpSchemeOperation::kCreateResourcePool: - return ExecuteSchemeRequest(schemeOperation.GetCreateResourcePool(), context, nodeId); + return ExecuteSchemeRequest(schemeOperation.GetCreateResourcePool(), context, nodeId, schemeOperation.GetOperationCase()); case NKqpProto::TKqpSchemeOperation::kAlterResourcePool: - return ExecuteSchemeRequest(schemeOperation.GetAlterResourcePool(), context, nodeId); + return ExecuteSchemeRequest(schemeOperation.GetAlterResourcePool(), context, nodeId, schemeOperation.GetOperationCase()); case NKqpProto::TKqpSchemeOperation::kDropResourcePool: - return ExecuteSchemeRequest(schemeOperation.GetDropResourcePool(), context, nodeId); + return ExecuteSchemeRequest(schemeOperation.GetDropResourcePool(), context, nodeId, schemeOperation.GetOperationCase()); default: return NThreading::MakeFuture(TYqlConclusionStatus::Fail(TStringBuilder() << "Execution of prepare operation for RESOURCE_POOL object: unsupported operation: " << static_cast(schemeOperation.GetOperationCase()))); } @@ -294,8 +294,13 @@ TResourcePoolManager::TAsyncStatus TResourcePoolManager::ChainFeatures(TAsyncSta }); } -TResourcePoolManager::TAsyncStatus TResourcePoolManager::ExecuteSchemeRequest(const NKikimrSchemeOp::TModifyScheme& schemeTx, const TExternalModificationContext& context, ui32 nodeId) const { - auto validationFuture = CheckFeatureFlag(context, nodeId); +TResourcePoolManager::TAsyncStatus TResourcePoolManager::ExecuteSchemeRequest(const NKikimrSchemeOp::TModifyScheme& schemeTx, const TExternalModificationContext& context, ui32 nodeId, NKqpProto::TKqpSchemeOperation::OperationCase operationCase) const { + TAsyncStatus validationFuture = NThreading::MakeFuture(TYqlConclusionStatus::Success()); + if (operationCase != NKqpProto::TKqpSchemeOperation::kDropResourcePool) { + validationFuture = ChainFeatures(validationFuture, [context, nodeId] { + return CheckFeatureFlag(context, nodeId); + }); + } return ChainFeatures(validationFuture, [schemeTx, context] { return SendSchemeRequest(schemeTx, context); }); diff --git a/ydb/core/kqp/gateway/behaviour/resource_pool/manager.h b/ydb/core/kqp/gateway/behaviour/resource_pool/manager.h index edab893dbe6c..64406f78e328 100644 --- a/ydb/core/kqp/gateway/behaviour/resource_pool/manager.h +++ b/ydb/core/kqp/gateway/behaviour/resource_pool/manager.h @@ -31,7 +31,7 @@ class TResourcePoolManager : public NMetadata::NModifications::IOperationsManage void PrepareDropResourcePool(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TDropObjectSettings& settings, TInternalModificationContext& context) const; TAsyncStatus ChainFeatures(TAsyncStatus lastFeature, std::function callback) const; - TAsyncStatus ExecuteSchemeRequest(const NKikimrSchemeOp::TModifyScheme& schemeTx, const TExternalModificationContext& context, ui32 nodeId) const; + TAsyncStatus ExecuteSchemeRequest(const NKikimrSchemeOp::TModifyScheme& schemeTx, const TExternalModificationContext& context, ui32 nodeId, NKqpProto::TKqpSchemeOperation::OperationCase operationCase) const; }; } // namespace NKikimr::NKqp diff --git a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp index f58498e552b4..2286298c1a0e 100644 --- a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp @@ -6142,11 +6142,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); - auto checkDisabled = [&session](const TString& query) { + auto checkQuery = [&session](const TString& query, EStatus status, const TString& error) { Cerr << "Check query:\n" << query << "\n"; auto result = session.ExecuteSchemeQuery(query).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::UNSUPPORTED); - UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Resource pools are disabled. Please contact your system administrator to enable it"); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), status); + UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), error); + }; + + auto checkDisabled = [checkQuery](const TString& query) { + checkQuery(query, EStatus::UNSUPPORTED, "Resource pools are disabled. Please contact your system administrator to enable it"); }; // CREATE RESOURCE POOL @@ -6165,7 +6169,9 @@ Y_UNIT_TEST_SUITE(KqpScheme) { )"); // DROP RESOURCE POOL - checkDisabled("DROP RESOURCE POOL MyResourcePool;"); + checkQuery("DROP RESOURCE POOL MyResourcePool;", + EStatus::SCHEME_ERROR, + "Path does not exist"); } Y_UNIT_TEST(ResourcePoolsValidation) { diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp index 863533fe7aa2..9021900c7f0b 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp @@ -129,6 +129,13 @@ class TAlterResourcePool : public TSubOperation { static_cast(OperationId.GetTxId()), static_cast(context.SS->SelfTabletId())); + if (context.SS->IsServerlessDomain(TPath::Init(context.SS->RootPathId(), context.SS))) { + if (!context.SS->EnableResourcePoolsOnServerLess) { + result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + return result; + } + } + const TPath& parentPath = TPath::Resolve(parentPathStr, context.SS); RETURN_RESULT_UNLESS(NResourcePool::IsParentPathValid(result, parentPath)); From c1803b52ed6c6d36bab4a3d29fbdabb27fb2fd93 Mon Sep 17 00:00:00 2001 From: Grigoriy Pisarenko Date: Fri, 19 Jul 2024 07:21:04 +0000 Subject: [PATCH 3/4] Fixed EnabledResourcePoolsOnServerLess initialization --- ydb/core/kqp/workload_service/kqp_workload_service.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ydb/core/kqp/workload_service/kqp_workload_service.cpp b/ydb/core/kqp/workload_service/kqp_workload_service.cpp index 4ed30cc1ceb3..ce4ef9bada42 100644 --- a/ydb/core/kqp/workload_service/kqp_workload_service.cpp +++ b/ydb/core/kqp/workload_service/kqp_workload_service.cpp @@ -58,6 +58,7 @@ class TKqpWorkloadService : public TActorBootstrapped { CpuQuotaManager = std::make_unique(ActorContext(), Counters->GetSubgroup("subcomponent", "CpuQuotaManager")); EnabledResourcePools = AppData()->FeatureFlags.GetEnableResourcePools(); + EnabledResourcePoolsOnServerLess = AppData()->FeatureFlags.GetEnableResourcePoolsOnServerLess(); if (EnabledResourcePools) { InitializeWorkloadService(); } From c248f1e2f921b95611b3f74b9e7a477a9cbd6bf8 Mon Sep 17 00:00:00 2001 From: Grigoriy Pisarenko Date: Fri, 19 Jul 2024 11:49:31 +0000 Subject: [PATCH 4/4] Renamed ServerLess -> Serverless --- ydb/core/kqp/workload_service/actors/actors.h | 4 +-- .../workload_service/actors/scheme_actors.cpp | 26 +++++++++---------- .../workload_service/kqp_workload_service.cpp | 8 +++--- ydb/core/protos/feature_flags.proto | 2 +- ...meshard__operation_alter_resource_pool.cpp | 4 +-- ...eshard__operation_create_resource_pool.cpp | 4 +-- ydb/core/tx/schemeshard/schemeshard_impl.cpp | 2 +- ydb/core/tx/schemeshard/schemeshard_impl.h | 2 +- 8 files changed, 26 insertions(+), 26 deletions(-) diff --git a/ydb/core/kqp/workload_service/actors/actors.h b/ydb/core/kqp/workload_service/actors/actors.h index 9e2b7db2e575..770867a58f1c 100644 --- a/ydb/core/kqp/workload_service/actors/actors.h +++ b/ydb/core/kqp/workload_service/actors/actors.h @@ -9,10 +9,10 @@ namespace NKikimr::NKqp::NWorkload { NActors::IActor* CreatePoolHandlerActor(const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, NMonitoring::TDynamicCounterPtr counters); // Fetch pool and create default pool if needed -NActors::IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess); +NActors::IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerless); // Fetch and create pool in scheme shard -NActors::IActor* CreatePoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess); +NActors::IActor* CreatePoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerless); NActors::IActor* CreatePoolCreatorActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, TIntrusiveConstPtr userToken, NACLibProto::TDiffACL diffAcl); // Cpu load fetcher actor diff --git a/ydb/core/kqp/workload_service/actors/scheme_actors.cpp b/ydb/core/kqp/workload_service/actors/scheme_actors.cpp index 00009fcc4017..8b5dd686eefd 100644 --- a/ydb/core/kqp/workload_service/actors/scheme_actors.cpp +++ b/ydb/core/kqp/workload_service/actors/scheme_actors.cpp @@ -20,9 +20,9 @@ using namespace NActors; class TPoolResolverActor : public TActorBootstrapped { public: - TPoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess) + TPoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerless) : Event(std::move(event)) - , EnableOnServerLess(enableOnServerLess) + , EnableOnServerless(enableOnServerless) { if (!Event->Get()->PoolId) { Event->Get()->PoolId = NResourcePool::DEFAULT_POOL_ID; @@ -37,7 +37,7 @@ class TPoolResolverActor : public TActorBootstrapped { void StartPoolFetchRequest() const { LOG_D("Start pool fetching"); - Register(CreatePoolFetcherActor(SelfId(), Event->Get()->Database, Event->Get()->PoolId, Event->Get()->UserToken, EnableOnServerLess)); + Register(CreatePoolFetcherActor(SelfId(), Event->Get()->Database, Event->Get()->PoolId, Event->Get()->UserToken, EnableOnServerless)); } void Handle(TEvPrivate::TEvFetchPoolResponse::TPtr& ev) { @@ -108,7 +108,7 @@ class TPoolResolverActor : public TActorBootstrapped { private: TEvPlaceRequestIntoPool::TPtr Event; - const bool EnableOnServerLess; + const bool EnableOnServerless; bool CanCreatePool = false; bool DefaultPoolCreated = false; }; @@ -116,12 +116,12 @@ class TPoolResolverActor : public TActorBootstrapped { class TPoolFetcherActor : public TSchemeActorBase { public: - TPoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess) + TPoolFetcherActor(const NActors::TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerless) : ReplyActorId(replyActorId) , Database(database) , PoolId(poolId) , UserToken(userToken) - , EnableOnServerLess(enableOnServerLess) + , EnableOnServerless(enableOnServerless) {} void DoBootstrap() { @@ -136,8 +136,8 @@ class TPoolFetcherActor : public TSchemeActorBase { } const auto& result = results[0]; - if (!EnableOnServerLess && result.DomainInfo && result.DomainInfo->IsServerless()) { - Reply(Ydb::StatusIds::UNSUPPORTED, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + if (!EnableOnServerless && result.DomainInfo && result.DomainInfo->IsServerless()) { + Reply(Ydb::StatusIds::UNSUPPORTED, "Resource pools are disabled for serverless domains. Please contact your system administrator to enable it"); return; } @@ -230,7 +230,7 @@ class TPoolFetcherActor : public TSchemeActorBase { const TString Database; const TString PoolId; const TIntrusiveConstPtr UserToken; - const bool EnableOnServerLess; + const bool EnableOnServerless; NResourcePool::TPoolSettings PoolConfig; NKikimrProto::TPathID PathId; @@ -374,12 +374,12 @@ class TPoolCreatorActor : public TSchemeActorBase { } // anonymous namespace -IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerLess) { - return new TPoolResolverActor(std::move(event), defaultPoolExists, enableOnServerLess); +IActor* CreatePoolResolverActor(TEvPlaceRequestIntoPool::TPtr event, bool defaultPoolExists, bool enableOnServerless) { + return new TPoolResolverActor(std::move(event), defaultPoolExists, enableOnServerless); } -IActor* CreatePoolFetcherActor(const TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerLess) { - return new TPoolFetcherActor(replyActorId, database, poolId, userToken, enableOnServerLess); +IActor* CreatePoolFetcherActor(const TActorId& replyActorId, const TString& database, const TString& poolId, TIntrusiveConstPtr userToken, bool enableOnServerless) { + return new TPoolFetcherActor(replyActorId, database, poolId, userToken, enableOnServerless); } IActor* CreatePoolCreatorActor(const TActorId& replyActorId, const TString& database, const TString& poolId, const NResourcePool::TPoolSettings& poolConfig, TIntrusiveConstPtr userToken, NACLibProto::TDiffACL diffAcl) { diff --git a/ydb/core/kqp/workload_service/kqp_workload_service.cpp b/ydb/core/kqp/workload_service/kqp_workload_service.cpp index ce4ef9bada42..bf067d74a990 100644 --- a/ydb/core/kqp/workload_service/kqp_workload_service.cpp +++ b/ydb/core/kqp/workload_service/kqp_workload_service.cpp @@ -58,7 +58,7 @@ class TKqpWorkloadService : public TActorBootstrapped { CpuQuotaManager = std::make_unique(ActorContext(), Counters->GetSubgroup("subcomponent", "CpuQuotaManager")); EnabledResourcePools = AppData()->FeatureFlags.GetEnableResourcePools(); - EnabledResourcePoolsOnServerLess = AppData()->FeatureFlags.GetEnableResourcePoolsOnServerLess(); + EnabledResourcePoolsOnServerless = AppData()->FeatureFlags.GetEnableResourcePoolsOnServerless(); if (EnabledResourcePools) { InitializeWorkloadService(); } @@ -85,7 +85,7 @@ class TKqpWorkloadService : public TActorBootstrapped { const auto& event = ev->Get()->Record; EnabledResourcePools = event.GetConfig().GetFeatureFlags().GetEnableResourcePools(); - EnabledResourcePoolsOnServerLess = event.GetConfig().GetFeatureFlags().GetEnableResourcePoolsOnServerLess(); + EnabledResourcePoolsOnServerless = event.GetConfig().GetFeatureFlags().GetEnableResourcePoolsOnServerless(); if (EnabledResourcePools) { LOG_I("Resource pools was enanbled"); InitializeWorkloadService(); @@ -137,7 +137,7 @@ class TKqpWorkloadService : public TActorBootstrapped { LOG_D("Recieved new request from " << workerActorId << ", Database: " << ev->Get()->Database << ", PoolId: " << ev->Get()->PoolId << ", SessionId: " << ev->Get()->SessionId); bool hasDefaultPool = DatabasesWithDefaultPool.contains(CanonizePath(ev->Get()->Database)); - Register(CreatePoolResolverActor(std::move(ev), hasDefaultPool, EnabledResourcePoolsOnServerLess)); + Register(CreatePoolResolverActor(std::move(ev), hasDefaultPool, EnabledResourcePoolsOnServerless)); } void Handle(TEvCleanupRequest::TPtr& ev) { @@ -522,7 +522,7 @@ class TKqpWorkloadService : public TActorBootstrapped { NMonitoring::TDynamicCounterPtr Counters; bool EnabledResourcePools = false; - bool EnabledResourcePoolsOnServerLess = false; + bool EnabledResourcePoolsOnServerless = false; bool ServiceInitialized = false; bool IdleChecksStarted = false; ETablesCreationStatus TablesCreationStatus = ETablesCreationStatus::Cleanup; diff --git a/ydb/core/protos/feature_flags.proto b/ydb/core/protos/feature_flags.proto index 03600a4cb767..6b80f6e568a0 100644 --- a/ydb/core/protos/feature_flags.proto +++ b/ydb/core/protos/feature_flags.proto @@ -144,5 +144,5 @@ message TFeatureFlags { optional bool EnableResourcePools = 129 [default = false]; optional bool EnableColumnStatistics = 130 [default = false]; optional bool EnableSingleCompositeActionGroup = 131 [default = false]; - optional bool EnableResourcePoolsOnServerLess = 132 [default = false]; + optional bool EnableResourcePoolsOnServerless = 132 [default = false]; } diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp index 9021900c7f0b..25ce9ad0c08e 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_alter_resource_pool.cpp @@ -130,8 +130,8 @@ class TAlterResourcePool : public TSubOperation { static_cast(context.SS->SelfTabletId())); if (context.SS->IsServerlessDomain(TPath::Init(context.SS->RootPathId(), context.SS))) { - if (!context.SS->EnableResourcePoolsOnServerLess) { - result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + if (!context.SS->EnableResourcePoolsOnServerless) { + result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for serverless domains. Please contact your system administrator to enable it"); return result; } } diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp index c24481b19ba0..a765216aa5b5 100644 --- a/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_resource_pool.cpp @@ -156,8 +156,8 @@ class TCreateResourcePool : public TSubOperation { static_cast(context.SS->SelfTabletId())); if (context.SS->IsServerlessDomain(TPath::Init(context.SS->RootPathId(), context.SS))) { - if (!context.SS->EnableResourcePoolsOnServerLess) { - result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for server less domains. Please contact your system administrator to enable it"); + if (!context.SS->EnableResourcePoolsOnServerless) { + result->SetError(NKikimrScheme::StatusPreconditionFailed, "Resource pools are disabled for serverless domains. Please contact your system administrator to enable it"); return result; } } diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.cpp b/ydb/core/tx/schemeshard/schemeshard_impl.cpp index 5ef178dd0a33..d16ea0d06b7d 100644 --- a/ydb/core/tx/schemeshard/schemeshard_impl.cpp +++ b/ydb/core/tx/schemeshard/schemeshard_impl.cpp @@ -7010,7 +7010,7 @@ void TSchemeShard::ApplyConsoleConfigs(const NKikimrConfig::TFeatureFlags& featu EnableTempTables = featureFlags.GetEnableTempTables(); EnableReplaceIfExistsForExternalEntities = featureFlags.GetEnableReplaceIfExistsForExternalEntities(); EnableTableDatetime64 = featureFlags.GetEnableTableDatetime64(); - EnableResourcePoolsOnServerLess = featureFlags.GetEnableResourcePoolsOnServerLess(); + EnableResourcePoolsOnServerless = featureFlags.GetEnableResourcePoolsOnServerless(); } void TSchemeShard::ConfigureStatsBatching(const NKikimrConfig::TSchemeShardConfig& config, const TActorContext& ctx) { diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.h b/ydb/core/tx/schemeshard/schemeshard_impl.h index 2dd94bc7b44c..cb721e2c3d17 100644 --- a/ydb/core/tx/schemeshard/schemeshard_impl.h +++ b/ydb/core/tx/schemeshard/schemeshard_impl.h @@ -326,7 +326,7 @@ class TSchemeShard bool EnableReplaceIfExistsForExternalEntities = false; bool EnableTempTables = false; bool EnableTableDatetime64 = false; - bool EnableResourcePoolsOnServerLess = false; + bool EnableResourcePoolsOnServerless = false; TShardDeleter ShardDeleter;