Skip to content

Commit 17bb20c

Browse files
authored
YQ WM move resource pools into metadata folder (#7741)
1 parent 0982055 commit 17bb20c

File tree

12 files changed

+111
-112
lines changed

12 files changed

+111
-112
lines changed

ydb/core/kqp/gateway/behaviour/resource_pool/manager.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -241,23 +241,23 @@ void TResourcePoolManager::PrepareCreateResourcePool(NKqpProto::TKqpSchemeOperat
241241
}
242242

243243
auto& schemeTx = *schemeOperation.MutableCreateResourcePool();
244-
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".resource_pools/"}));
244+
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".metadata/workload_manager/pools/"}));
245245
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateResourcePool);
246246

247247
FillResourcePoolDescription(*schemeTx.MutableCreateResourcePool(), settings);
248248
}
249249

250250
void TResourcePoolManager::PrepareAlterResourcePool(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TDropObjectSettings& settings, TInternalModificationContext& context) const {
251251
auto& schemeTx = *schemeOperation.MutableAlterResourcePool();
252-
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".resource_pools/"}));
252+
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".metadata/workload_manager/pools/"}));
253253
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpAlterResourcePool);
254254

255255
FillResourcePoolDescription(*schemeTx.MutableCreateResourcePool(), settings);
256256
}
257257

258258
void TResourcePoolManager::PrepareDropResourcePool(NKqpProto::TKqpSchemeOperation& schemeOperation, const NYql::TDropObjectSettings& settings, TInternalModificationContext& context) const {
259259
auto& schemeTx = *schemeOperation.MutableDropResourcePool();
260-
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".resource_pools/"}));
260+
schemeTx.SetWorkingDir(JoinPath({context.GetExternalData().GetDatabase(), ".metadata/workload_manager/pools/"}));
261261
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropResourcePool);
262262

263263
schemeTx.MutableDrop()->SetName(settings.GetObjectId());

ydb/core/kqp/gateway/behaviour/resource_pool_classifier/behaviour.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ NMetadata::NModifications::IOperationsManager::TPtr TResourcePoolClassifierBehav
1616
}
1717

1818
TString TResourcePoolClassifierBehaviour::GetInternalStorageTablePath() const {
19-
return "resource_pools/resource_pools_classifiers";
19+
return "workload_manager/classifiers/resource_pool_classifiers";
2020
}
2121

2222
TString TResourcePoolClassifierBehaviour::GetTypeId() const {

ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ void TestCreateResourcePool(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGat
232232
{"concurrent_query_limit", "10"},
233233
{"queue_size", "100"}
234234
});
235-
const auto& resourcePool = TestCreateObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.resource_pools/" << poolId);
235+
const auto& resourcePool = TestCreateObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.metadata/workload_manager/pools/" << poolId);
236236

237237
UNIT_ASSERT_VALUES_EQUAL(resourcePool.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindResourcePool);
238238
UNIT_ASSERT(resourcePool.ResourcePoolInfo);
@@ -249,7 +249,7 @@ void TestAlterResourcePool(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGate
249249
}, {
250250
"queue_size"
251251
});
252-
const auto& resourcePool = TestAlterObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.resource_pools/" << poolId);
252+
const auto& resourcePool = TestAlterObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.metadata/workload_manager/pools/" << poolId);
253253

254254
UNIT_ASSERT_VALUES_EQUAL(resourcePool.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindResourcePool);
255255
UNIT_ASSERT(resourcePool.ResourcePoolInfo);
@@ -262,7 +262,7 @@ void TestAlterResourcePool(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGate
262262

263263
void TestDropResourcePool(TTestActorRuntime& runtime, TIntrusivePtr<IKikimrGateway> gateway, const TString& poolId) {
264264
TDropObjectSettings settings("RESOURCE_POOL", poolId, {});
265-
TestDropObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.resource_pools/" << poolId);
265+
TestDropObjectCommon(runtime, gateway, settings, TStringBuilder() << "/Root/.metadata/workload_manager/pools/" << poolId);
266266
}
267267

268268
TKikimrRunner GetKikimrRunnerWithResourcePools() {

ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -6593,7 +6593,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
65936593
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
65946594

65956595
auto& runtime = *kikimr.GetTestServer().GetRuntime();
6596-
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.resource_pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
6596+
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.metadata/workload_manager/pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
65976597
const auto& resourcePool = resourcePoolDesc->ResultSet.at(0);
65986598
UNIT_ASSERT_VALUES_EQUAL(resourcePool.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindResourcePool);
65996599
UNIT_ASSERT(resourcePool.ResourcePoolInfo);
@@ -6625,7 +6625,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66256625
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
66266626

66276627
auto& runtime = *kikimr.GetTestServer().GetRuntime();
6628-
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.resource_pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
6628+
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.metadata/workload_manager/pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
66296629
UNIT_ASSERT_VALUES_EQUAL(resourcePoolDesc->ResultSet.at(0).Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindResourcePool);
66306630
}
66316631

@@ -6636,7 +6636,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66366636
);)";
66376637
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
66386638
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6639-
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Check failed: path: '/Root/.resource_pools/MyResourcePool', error: path exist");
6639+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Check failed: path: '/Root/.metadata/workload_manager/pools/MyResourcePool', error: path exist");
66406640
}
66416641
}
66426642

@@ -6661,7 +6661,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66616661
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
66626662

66636663
auto& runtime = *kikimr.GetTestServer().GetRuntime();
6664-
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.resource_pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
6664+
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.metadata/workload_manager/pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
66656665
const auto& properties = resourcePoolDesc->ResultSet.at(0).ResourcePoolInfo->Description.GetProperties().GetProperties();
66666666
UNIT_ASSERT_VALUES_EQUAL(properties.size(), 2);
66676667
UNIT_ASSERT_VALUES_EQUAL(properties.at("concurrent_query_limit"), "20");
@@ -6678,7 +6678,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66786678
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
66796679

66806680
auto& runtime = *kikimr.GetTestServer().GetRuntime();
6681-
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.resource_pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
6681+
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.metadata/workload_manager/pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
66826682
const auto& properties = resourcePoolDesc->ResultSet.at(0).ResourcePoolInfo->Description.GetProperties().GetProperties();
66836683
UNIT_ASSERT_VALUES_EQUAL(properties.size(), 3);
66846684
UNIT_ASSERT_VALUES_EQUAL(properties.at("concurrent_query_limit"), "30");
@@ -6734,7 +6734,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67346734
}
67356735

67366736
auto& runtime = *kikimr.GetTestServer().GetRuntime();
6737-
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.resource_pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
6737+
auto resourcePoolDesc = Navigate(runtime, runtime.AllocateEdgeActor(), "Root/.metadata/workload_manager/pools/MyResourcePool", NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
67386738
const auto& resourcePool = resourcePoolDesc->ResultSet.at(0);
67396739
UNIT_ASSERT_VALUES_EQUAL(resourcePoolDesc->ErrorCount, 1);
67406740
UNIT_ASSERT_VALUES_EQUAL(resourcePool.Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindUnknown);

ydb/core/kqp/workload_service/actors/scheme_actors.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ class TPoolFetcherActor : public TSchemeActorBase<TPoolFetcherActor> {
179179
void StartRequest() override {
180180
LOG_D("Start pool fetching");
181181
auto event = NTableCreator::BuildSchemeCacheNavigateRequest(
182-
{{".resource_pools", PoolId}},
182+
{{".metadata/workload_manager/pools", PoolId}},
183183
Database,
184184
UserToken
185185
);
@@ -326,7 +326,7 @@ class TPoolCreatorActor : public TSchemeActorBase<TPoolCreatorActor> {
326326
auto event = std::make_unique<TEvTxUserProxy::TEvProposeTransaction>();
327327

328328
auto& schemeTx = *event->Record.MutableTransaction()->MutableModifyScheme();
329-
schemeTx.SetWorkingDir(JoinPath({Database, ".resource_pools"}));
329+
schemeTx.SetWorkingDir(JoinPath({Database, ".metadata/workload_manager/pools"}));
330330
schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateResourcePool);
331331
schemeTx.SetInternal(true);
332332

ydb/core/kqp/workload_service/ut/common/kqp_workload_service_ut_common.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
354354
auto token = NACLib::TUserToken(userSID, {});
355355

356356
WaitFor(FUTURE_WAIT_TIMEOUT, "pool acl", [this, token, access, poolId](TString& errorString) {
357-
auto response = Navigate(TStringBuilder() << ".resource_pools/" << (poolId ? poolId : Settings_.PoolId_));
357+
auto response = Navigate(TStringBuilder() << ".metadata/workload_manager/pools/" << (poolId ? poolId : Settings_.PoolId_));
358358
if (!response) {
359359
errorString = "empty response";
360360
return false;

ydb/core/kqp/workload_service/ut/kqp_workload_service_actors_ut.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceActors) {
5858

5959
const TString& userSID = "user@test";
6060
TSampleQueries::CheckSuccess(ydb->ExecuteQuery(TStringBuilder() << R"(
61-
GRANT DESCRIBE SCHEMA ON `/Root/.resource_pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
61+
GRANT DESCRIBE SCHEMA ON `/Root/.metadata/workload_manager/pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
6262
));
6363
ydb->WaitPoolAccess(userSID, NACLib::EAccessRights::DescribeSchema);
6464

@@ -67,7 +67,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceActors) {
6767
UNIT_ASSERT_STRING_CONTAINS(failedResponse->Get()->Issues.ToString(), TStringBuilder() << "You don't have access permissions for resource pool " << ydb->GetSettings().PoolId_);
6868

6969
TSampleQueries::CheckSuccess(ydb->ExecuteQuery(TStringBuilder() << R"(
70-
GRANT SELECT ROW ON `/Root/.resource_pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
70+
GRANT SELECT ROW ON `/Root/.metadata/workload_manager/pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
7171
));
7272
ydb->WaitPoolAccess(userSID, NACLib::EAccessRights::SelectRow);
7373

@@ -86,7 +86,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceActors) {
8686
Y_UNIT_TEST(TestCreateDefaultPool) {
8787
auto ydb = TYdbSetupSettings().Create();
8888

89-
const TString path = TStringBuilder() << ".resource_pools/" << NResourcePool::DEFAULT_POOL_ID;
89+
const TString path = TStringBuilder() << ".metadata/workload_manager/pools/" << NResourcePool::DEFAULT_POOL_ID;
9090
auto response = ydb->Navigate(path, NSchemeCache::TSchemeCacheNavigate::EOp::OpUnknown);
9191
UNIT_ASSERT_VALUES_EQUAL(response->ErrorCount, 1);
9292
UNIT_ASSERT_VALUES_EQUAL(response->ResultSet.at(0).Kind, NSchemeCache::TSchemeCacheNavigate::EKind::KindUnknown);
@@ -224,7 +224,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceSubscriptions) {
224224

225225
const TString& userSID = "test@user";
226226
ydb->ExecuteSchemeQuery(TStringBuilder() << R"(
227-
GRANT ALL ON `/Root/.resource_pools/)" << ydb->GetSettings().PoolId_ << R"(` TO `)" << userSID << R"(`;
227+
GRANT ALL ON `/Root/.metadata/workload_manager/pools/)" << ydb->GetSettings().PoolId_ << R"(` TO `)" << userSID << R"(`;
228228
)");
229229

230230
const auto& response = ydb->GetRuntime()->GrabEdgeEvent<TEvUpdatePoolInfo>(subscriber, FUTURE_WAIT_TIMEOUT);

ydb/core/kqp/workload_service/ut/kqp_workload_service_tables_ut.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceTables) {
7070
CanonizePath({ydb->GetSettings().DomainName_, ".metadata/workload_manager"})
7171
).GetValue(FUTURE_WAIT_TIMEOUT);
7272
UNIT_ASSERT_VALUES_EQUAL_C(listResult.GetStatus(), NYdb::EStatus::SUCCESS, listResult.GetIssues().ToString());
73-
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren().size(), 2);
73+
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren().size(), 3);
7474
}
7575

7676
Y_UNIT_TEST(TestTablesIsNotCreatingForUnlimitedPool) {
@@ -83,12 +83,11 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceTables) {
8383

8484
// Check that there is no .metadata folder
8585
auto listResult = ydb->GetSchemeClient().ListDirectory(
86-
CanonizePath(ydb->GetSettings().DomainName_)
86+
CanonizePath({ydb->GetSettings().DomainName_, ".metadata", "workload_manager"})
8787
).GetValue(FUTURE_WAIT_TIMEOUT);
8888
UNIT_ASSERT_VALUES_EQUAL_C(listResult.GetStatus(), NYdb::EStatus::SUCCESS, listResult.GetIssues().ToString());
89-
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren().size(), 2);
90-
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren()[0].Name, ".resource_pools");
91-
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren()[1].Name, ".sys");
89+
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren().size(), 1);
90+
UNIT_ASSERT_VALUES_EQUAL(listResult.GetChildren()[0].Name, "pools");
9291
}
9392

9493
Y_UNIT_TEST(TestPoolStateFetcherActor) {

ydb/core/kqp/workload_service/ut/kqp_workload_service_ut.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolsDdl) {
480480
);
481481

482482
IYdbSetup::WaitFor(FUTURE_WAIT_TIMEOUT, "pool drop", [ydb, poolId](TString& errorString) {
483-
auto kind = ydb->Navigate(TStringBuilder() << ".resource_pools/" << poolId)->ResultSet.at(0).Kind;
483+
auto kind = ydb->Navigate(TStringBuilder() << ".metadata/workload_manager/pools/" << poolId)->ResultSet.at(0).Kind;
484484

485485
errorString = TStringBuilder() << "kind = " << kind;
486486
return kind == NSchemeCache::TSchemeCacheNavigate::EKind::KindUnknown;
@@ -500,7 +500,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolsDdl) {
500500
CREATE RESOURCE POOL )" << poolId << R"( WITH (
501501
CONCURRENT_QUERY_LIMIT=1
502502
);
503-
GRANT DESCRIBE SCHEMA ON `/Root/.resource_pools/)" << poolId << "` TO `" << userSID << "`;"
503+
GRANT DESCRIBE SCHEMA ON `/Root/.metadata/workload_manager/pools/)" << poolId << "` TO `" << userSID << "`;"
504504
);
505505
ydb->WaitPoolAccess(userSID, NACLib::EAccessRights::DescribeSchema, poolId);
506506

@@ -510,7 +510,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolsDdl) {
510510
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), TStringBuilder() << "You don't have access permissions for resource pool " << poolId);
511511

512512
ydb->ExecuteSchemeQuery(TStringBuilder() << R"(
513-
GRANT SELECT ROW ON `/Root/.resource_pools/)" << poolId << "` TO `" << userSID << "`;"
513+
GRANT SELECT ROW ON `/Root/.metadata/workload_manager/pools/)" << poolId << "` TO `" << userSID << "`;"
514514
);
515515
ydb->WaitPoolAccess(userSID, NACLib::EAccessRights::SelectRow, poolId);
516516
TSampleQueries::TSelect42::CheckResult(ydb->ExecuteQuery(TSampleQueries::TSelect42::Query, settings));
@@ -524,7 +524,7 @@ Y_UNIT_TEST_SUITE(ResourcePoolClassifiersDdl) {
524524
const TString& userSID = "user@test";
525525
ydb->ExecuteSchemeQuery(TStringBuilder() << R"(
526526
GRANT DESCRIBE SCHEMA ON `/Root` TO `)" << userSID << R"(`;
527-
GRANT DESCRIBE SCHEMA, SELECT ROW ON `/Root/.resource_pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
527+
GRANT DESCRIBE SCHEMA, SELECT ROW ON `/Root/.metadata/workload_manager/pools/)" << ydb->GetSettings().PoolId_ << "` TO `" << userSID << "`;"
528528
);
529529
ydb->WaitPoolAccess(userSID, NACLib::EAccessRights::DescribeSchema | NACLib::EAccessRights::SelectRow);
530530

ydb/core/tx/schemeshard/schemeshard__operation_common_resource_pool.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ TPath::TChecker IsParentPathValid(const TPath& parentPath) {
3434
}
3535

3636
bool IsParentPathValid(const THolder<TProposeResponse>& result, const TPath& parentPath) {
37-
const TString& resourcePoolsDir = JoinPath({parentPath.GetDomainPathString(), ".resource_pools"});
37+
const TString& resourcePoolsDir = JoinPath({parentPath.GetDomainPathString(), ".metadata/workload_manager/pools"});
3838
if (parentPath.PathString() != resourcePoolsDir) {
3939
result->SetError(NKikimrScheme::EStatus::StatusSchemeError, TStringBuilder() << "Resource pools shoud be placed in " << resourcePoolsDir);
4040
return false;

0 commit comments

Comments
 (0)