Skip to content

Commit b82247b

Browse files
authored
YQ-3644 added validations for resource pool parametres (#8958)
1 parent 89fd4d0 commit b82247b

21 files changed

+239
-45
lines changed

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ NMetadata::NModifications::TOperationParsingResult TResourcePoolClassifierManage
5353
} catch (...) {
5454
throw yexception() << "Failed to parse property " << property << ": " << CurrentExceptionMessage();
5555
}
56-
} else if (!featuresExtractor.ExtractResetFeature(property)) {
56+
} else if (featuresExtractor.ExtractResetFeature(property)) {
57+
if (property == "resource_pool") {
58+
ythrow yexception() << "Cannot reset required property resource_pool";
59+
}
60+
} else {
5761
continue;
5862
}
5963

@@ -65,6 +69,19 @@ NMetadata::NModifications::TOperationParsingResult TResourcePoolClassifierManage
6569
}
6670
}
6771

72+
if (context.GetActivityType() == EActivityType::Create) {
73+
if (!configJson.GetMap().contains("resource_pool")) {
74+
ythrow yexception() << "Missing required property resource_pool";
75+
}
76+
77+
static const TString extraPathSymbolsAllowed = "!\"#$%&'()*+,-.:;<=>?@[\\]^_`{|}~";
78+
const auto& name = settings.GetObjectId();
79+
if (const auto brokenAt = PathPartBrokenAt(name, extraPathSymbolsAllowed); brokenAt != name.end()) {
80+
ythrow yexception() << "Symbol '" << *brokenAt << "'" << " is not allowed in the resource pool classifier name '" << name << "'";
81+
}
82+
}
83+
resourcePoolClassifierSettings.Validate();
84+
6885
NJsonWriter::TBuf writer;
6986
writer.WriteJsonValue(&configJson);
7087
result.SetColumn(TResourcePoolClassifierConfig::TDecoder::ConfigJson, NMetadata::NInternal::TYDBValue::Utf8(writer.Str()));

ydb/core/kqp/proxy_service/kqp_proxy_service_impl.h

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -422,17 +422,19 @@ class TResourcePoolsCache {
422422
struct TClassifierInfo {
423423
const TString Membername;
424424
const TString PoolId;
425+
const i64 Rank;
425426

426427
TClassifierInfo(const NResourcePool::TClassifierSettings& classifierSettings)
427428
: Membername(classifierSettings.Membername)
428429
, PoolId(classifierSettings.ResourcePool)
430+
, Rank(classifierSettings.Rank)
429431
{}
430432
};
431433

432434
struct TDatabaseInfo {
433435
std::unordered_map<TString, TResourcePoolClassifierConfig> ResourcePoolsClassifiers = {};
434436
std::map<i64, TClassifierInfo> RankToClassifierInfo = {};
435-
std::unordered_map<TString, TString> UserToResourcePool = {};
437+
std::unordered_map<TString, std::pair<TString, i64>> UserToResourcePool = {};
436438
bool Serverless = false;
437439
};
438440

@@ -462,16 +464,16 @@ class TResourcePoolsCache {
462464
}
463465

464466
TDatabaseInfo& databaseInfo = *GetOrCreateDatabaseInfo(database);
465-
if (const auto& poolId = GetPoolIdFromClassifiers(database, userToken->GetUserSID(), databaseInfo, userToken, actorContext)) {
466-
return poolId;
467-
}
467+
auto [resultPoolId, resultRank] = GetPoolIdFromClassifiers(database, userToken->GetUserSID(), databaseInfo, userToken, actorContext);
468468
for (const auto& userSID : userToken->GetGroupSIDs()) {
469-
if (const auto& poolId = GetPoolIdFromClassifiers(database, userSID, databaseInfo, userToken, actorContext)) {
470-
return poolId;
469+
const auto& [poolId, rank] = GetPoolIdFromClassifiers(database, userSID, databaseInfo, userToken, actorContext);
470+
if (poolId && (!resultPoolId || resultRank > rank)) {
471+
resultPoolId = poolId;
472+
resultRank = rank;
471473
}
472474
}
473475

474-
return NResourcePool::DEFAULT_POOL_ID;
476+
return resultPoolId ? resultPoolId : NResourcePool::DEFAULT_POOL_ID;
475477
}
476478

477479
std::optional<TPoolInfo> GetPoolInfo(const TString& database, const TString& poolId, TActorContext actorContext) const {
@@ -582,13 +584,14 @@ class TResourcePoolsCache {
582584
}
583585
}
584586

585-
TString GetPoolIdFromClassifiers(const TString& database, const TString& userSID, TDatabaseInfo& databaseInfo, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, TActorContext actorContext) const {
587+
std::pair<TString, i64> GetPoolIdFromClassifiers(const TString& database, const TString& userSID, TDatabaseInfo& databaseInfo, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, TActorContext actorContext) const {
586588
auto& usersMap = databaseInfo.UserToResourcePool;
587589
if (const auto it = usersMap.find(userSID); it != usersMap.end()) {
588590
return it->second;
589591
}
590592

591593
TString poolId = "";
594+
i64 rank = -1;
592595
for (const auto& [_, classifier] : databaseInfo.RankToClassifierInfo) {
593596
if (classifier.Membername != userSID) {
594597
continue;
@@ -605,11 +608,12 @@ class TResourcePoolsCache {
605608
}
606609

607610
poolId = classifier.PoolId;
611+
rank = classifier.Rank;
608612
break;
609613
}
610614

611-
usersMap[userSID] = poolId;
612-
return poolId;
615+
usersMap[userSID] = {poolId, rank};
616+
return {poolId, rank};
613617
}
614618

615619
TDatabaseInfo* GetOrCreateDatabaseInfo(const TString& database) {

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

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6316,6 +6316,20 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
63166316
);)").GetValueSync();
63176317
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
63186318
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Failed to parse property concurrent_query_limit:");
6319+
6320+
result = session.ExecuteSchemeQuery(TStringBuilder() << R"(
6321+
CREATE RESOURCE POOL MyResourcePool WITH (
6322+
CONCURRENT_QUERY_LIMIT=)" << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT + 1 << R"(
6323+
);)").GetValueSync();
6324+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SCHEME_ERROR);
6325+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), TStringBuilder() << "Invalid resource pool configuration, concurrent_query_limit is " << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT + 1 << ", that exceeds limit in " << NResourcePool::POOL_MAX_CONCURRENT_QUERY_LIMIT);
6326+
6327+
result = session.ExecuteSchemeQuery(R"(
6328+
CREATE RESOURCE POOL MyResourcePool WITH (
6329+
QUEUE_SIZE=1
6330+
);)").GetValueSync();
6331+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SCHEME_ERROR);
6332+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Invalid resource pool configuration, queue_size unsupported without concurrent_query_limit or database_load_cpu_threshold");
63196333
}
63206334

63216335
Y_UNIT_TEST(CreateResourcePool) {
@@ -6536,8 +6550,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
65366550
// ALTER RESOURCE POOL CLASSIFIER
65376551
checkDisabled(R"(
65386552
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6539-
SET (RANK = 1, MEMBERNAME = "test@user"),
6540-
RESET (RESOURCE_POOL);
6553+
SET (RANK = 1, RESOURCE_POOL = "test"),
6554+
RESET (MEMBERNAME);
65416555
)");
65426556

65436557
// DROP RESOURCE POOL CLASSIFIER
@@ -6570,8 +6584,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
65706584

65716585
const auto& alterSql = R"(
65726586
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6573-
SET (RANK = 1, MEMBERNAME = "test@user"),
6574-
RESET (RESOURCE_POOL);
6587+
SET (RANK = 1, RESOURCE_POOL = "test"),
6588+
RESET (MEMBERNAME);
65756589
)";
65766590

65776591
const auto& dropSql = "DROP RESOURCE POOL CLASSIFIER MyResourcePoolClassifier;";
@@ -6610,6 +6624,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66106624

66116625
auto result = session.ExecuteSchemeQuery(R"(
66126626
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6627+
RESOURCE_POOL="test",
66136628
ANOTHER_PROPERTY=20
66146629
);)").GetValueSync();
66156630
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6625,10 +6640,40 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66256640

66266641
result = session.ExecuteSchemeQuery(R"(
66276642
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6643+
RESOURCE_POOL="test",
66286644
RANK="StringValue"
66296645
);)").GetValueSync();
66306646
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
66316647
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Failed to parse property rank:");
6648+
6649+
result = session.ExecuteSchemeQuery(R"(
6650+
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6651+
RANK="0"
6652+
);)").GetValueSync();
6653+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6654+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Missing required property resource_pool");
6655+
6656+
result = session.ExecuteSchemeQuery(R"(
6657+
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6658+
RESET (RESOURCE_POOL);
6659+
)").GetValueSync();
6660+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6661+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Cannot reset required property resource_pool");
6662+
6663+
result = session.ExecuteSchemeQuery(R"(
6664+
CREATE RESOURCE POOL CLASSIFIER `MyResource/PoolClassifier` WITH (
6665+
RESOURCE_POOL="test"
6666+
);)").GetValueSync();
6667+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6668+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Symbol '/' is not allowed in the resource pool classifier name 'MyResource/PoolClassifier'");
6669+
6670+
result = session.ExecuteSchemeQuery(TStringBuilder() << R"(
6671+
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6672+
RESOURCE_POOL="test",
6673+
MEMBERNAME=")" << BUILTIN_ACL_METADATA << R"("
6674+
);)").GetValueSync();
6675+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
6676+
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), TStringBuilder() << "Invalid resource pool classifier configuration, cannot create classifier for system user " << BUILTIN_ACL_METADATA);
66326677
}
66336678

66346679
Y_UNIT_TEST(ResourcePoolClassifiersRankValidation) {
@@ -6645,13 +6690,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66456690
// Create with sample rank
66466691
auto result = session.ExecuteSchemeQuery(R"(
66476692
CREATE RESOURCE POOL CLASSIFIER ClassifierRank42 WITH (
6693+
RESOURCE_POOL="test_pool",
66486694
RANK=42
66496695
);)").GetValueSync();
66506696
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToOneLineString());
66516697

66526698
// Try to create with same rank
66536699
result = session.ExecuteSchemeQuery(R"(
66546700
CREATE RESOURCE POOL CLASSIFIER AnotherClassifierRank42 WITH (
6701+
RESOURCE_POOL="test_pool",
66556702
RANK=42
66566703
);)").GetValueSync();
66576704
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6660,13 +6707,15 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
66606707
// Create with high rank
66616708
result = session.ExecuteSchemeQuery(R"(
66626709
CREATE RESOURCE POOL CLASSIFIER `ClassifierRank2^63` WITH (
6710+
RESOURCE_POOL="test_pool",
66636711
RANK=9223372036854775807
66646712
);)").GetValueSync();
66656713
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToOneLineString());
66666714

66676715
// Try to create with auto rank
66686716
result = session.ExecuteSchemeQuery(R"(
66696717
CREATE RESOURCE POOL CLASSIFIER ClassifierRankAuto WITH (
6718+
RESOURCE_POOL="test_pool",
66706719
MEMBERNAME="test@user"
66716720
);)").GetValueSync();
66726721
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::GENERIC_ERROR);
@@ -6724,11 +6773,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67246773
// Auto rank
67256774
query = R"(
67266775
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6776+
RESOURCE_POOL="test_pool",
67276777
MEMBERNAME="another@user"
67286778
);)";
67296779
result = session.ExecuteSchemeQuery(query).GetValueSync();
67306780
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6731-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":1020,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"membername\":\"another@user\"},\"database\":\"\\/Root\"}]}");
6781+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":1020,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"membername\":\"another@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
67326782
}
67336783

67346784
Y_UNIT_TEST(DoubleCreateResourcePoolClassifier) {
@@ -6745,6 +6795,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67456795
{
67466796
auto query = R"(
67476797
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6798+
RESOURCE_POOL="test_pool",
67486799
RANK=20
67496800
);)";
67506801
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -6754,6 +6805,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
67546805
{
67556806
auto query = R"(
67566807
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6808+
RESOURCE_POOL="test_pool",
67576809
RANK=1
67586810
);)";
67596811
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
@@ -6800,22 +6852,23 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
68006852
{
68016853
auto query = R"(
68026854
CREATE RESOURCE POOL CLASSIFIER AnotherResourcePoolClassifier WITH (
6855+
RESOURCE_POOL="test_pool",
68036856
RANK=42
68046857
);)";
68056858
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
68066859
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6807-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{},\"database\":\"\\/Root\"}]}");
6860+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
68086861
}
68096862

68106863
// Test reset
68116864
{
68126865
auto query = R"(
68136866
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6814-
RESET (RANK, RESOURCE_POOL);
6867+
RESET (RANK, MEMBERNAME);
68156868
)";
68166869
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
68176870
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6818-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":1042,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"test@user\",\"resource_pool\":\"default\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{},\"database\":\"\\/Root\"}]}");
6871+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":1042,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"membername\":\"\",\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"},{\"rank\":42,\"name\":\"AnotherResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
68196872
}
68206873
}
68216874

@@ -6832,8 +6885,8 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
68326885

68336886
auto query = R"(
68346887
ALTER RESOURCE POOL CLASSIFIER MyResourcePoolClassifier
6835-
SET (MEMBERNAME = "test@user", RANK = 100),
6836-
RESET (RESOURCE_POOL);
6888+
SET (RESOURCE_POOL = "test", RANK = 100),
6889+
RESET (MEMBERNAME);
68376890
)";
68386891
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
68396892
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
@@ -6854,11 +6907,12 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
68546907
{
68556908
auto query = R"(
68566909
CREATE RESOURCE POOL CLASSIFIER MyResourcePoolClassifier WITH (
6910+
RESOURCE_POOL="test_pool",
68576911
RANK=20
68586912
);)";
68596913
auto result = session.ExecuteSchemeQuery(query).GetValueSync();
68606914
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
6861-
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{},\"database\":\"\\/Root\"}]}");
6915+
UNIT_ASSERT_VALUES_EQUAL(FetchResourcePoolClassifiers(kikimr), "{\"resource_pool_classifiers\":[{\"rank\":20,\"name\":\"MyResourcePoolClassifier\",\"config\":{\"resource_pool\":\"test_pool\"},\"database\":\"\\/Root\"}]}");
68626916
}
68636917

68646918
{

ydb/core/kqp/workload_service/common/helpers.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@ NYql::TIssues GroupIssues(const NYql::TIssues& issues, const TString& message) {
1212
}
1313

1414
void ParsePoolSettings(const NKikimrSchemeOp::TResourcePoolDescription& description, NResourcePool::TPoolSettings& poolConfig) {
15-
const auto& properties = description.GetProperties().GetProperties();
16-
for (auto& [property, value] : poolConfig.GetPropertiesMap()) {
17-
if (auto propertyIt = properties.find(property); propertyIt != properties.end()) {
18-
std::visit(NResourcePool::TPoolSettings::TParser{propertyIt->second}, value);
19-
}
20-
}
15+
poolConfig = NResourcePool::TPoolSettings(description.GetProperties().GetProperties());
2116
}
2217

2318
ui64 SaturationSub(ui64 x, ui64 y) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ class TWorkloadServiceYdbSetup : public IYdbSetup {
518518
UNIT_ASSERT_C(settings.PoolId_, "Query pool id is not specified");
519519

520520
auto event = std::make_unique<TEvKqp::TEvQueryRequest>();
521-
event->Record.SetUserToken(NACLib::TUserToken("", settings.UserSID_, {}).SerializeAsString());
521+
event->Record.SetUserToken(NACLib::TUserToken("", settings.UserSID_, settings.GroupSIDs_).SerializeAsString());
522522

523523
auto request = event->Record.MutableRequest();
524524
request->SetQuery(query);

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ struct TQueryRunnerSettings {
2626
FLUENT_SETTING_DEFAULT(ui32, NodeIndex, 0);
2727
FLUENT_SETTING_DEFAULT(std::optional<TString>, PoolId, std::nullopt);
2828
FLUENT_SETTING_DEFAULT(TString, UserSID, "user@" BUILTIN_SYSTEM_DOMAIN);
29+
FLUENT_SETTING_DEFAULT(TVector<TString>, GroupSIDs, {});
2930
FLUENT_SETTING_DEFAULT(TString, Database, "");
3031

3132
// Runner settings

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceActors) {
132132
// Check alter access
133133
TSampleQueries::CheckSuccess(ydb->ExecuteQuery(TStringBuilder() << R"(
134134
ALTER RESOURCE POOL )" << NResourcePool::DEFAULT_POOL_ID << R"( SET (
135-
QUEUE_SIZE=1
135+
QUERY_MEMORY_LIMIT_PERCENT_PER_NODE=1
136136
);
137137
)", settings));
138138

@@ -205,7 +205,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceSubscriptions) {
205205

206206
ydb->ExecuteSchemeQuery(TStringBuilder() << R"(
207207
ALTER RESOURCE POOL )" << ydb->GetSettings().PoolId_ << R"( SET (
208-
QUEUE_SIZE=42
208+
CONCURRENT_QUERY_LIMIT=42
209209
);
210210
)");
211211

@@ -214,7 +214,7 @@ Y_UNIT_TEST_SUITE(KqpWorkloadServiceSubscriptions) {
214214

215215
const auto& config = response->Get()->Config;
216216
UNIT_ASSERT_C(config, "Pool config not found");
217-
UNIT_ASSERT_VALUES_EQUAL(config->QueueSize, 42);
217+
UNIT_ASSERT_VALUES_EQUAL(config->ConcurrentQueryLimit, 42);
218218
}
219219

220220
Y_UNIT_TEST(TestResourcePoolSubscriptionAfterAclChange) {

0 commit comments

Comments
 (0)