Skip to content

Commit

Permalink
Merge remote-tracking branch 'couchbase/trinity'
Browse files Browse the repository at this point in the history
* couchbase/trinity:
  MB-61201 Disable indexing guardrails

Change-Id: I6a0692864ababfdc45c255bfecc36c729f707852
  • Loading branch information
Peter-Searby committed May 8, 2024
2 parents f24bd7c + 4bce9cd commit 06ac515
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 210 deletions.
63 changes: 3 additions & 60 deletions apps/ns_server/src/menelaus_web_guardrails.erl
Expand Up @@ -83,51 +83,13 @@ params() ->
{"bucket.collectionsPerQuota.maximum",
#{type => {num, 0, infinity},
cfg_key => [collections_per_quota, maximum]}},
%% Index service resident ratio configuration
{"index.indexCreationRR.enabled",
#{type => bool,
cfg_key => [metakv, index, index_creation_rr, enabled]}},
{"index.indexCreationRR.minimum",
#{type => {num, 0, 100},
cfg_key => [metakv, index, index_creation_rr, minimum]}},
{"index.topologyChangeRR.enabled",
#{type => bool,
cfg_key => [metakv, index, topology_change_rr, enabled]}},
{"index.topologyChangeRR.minimum",
#{type => {num, 0, 100},
cfg_key => [metakv, index, topology_change_rr, minimum]}},
{"index.indexGrowthRR.enabled",
#{type => bool,
cfg_key => [index, index_growth_rr, enabled]}},
{"index.indexGrowthRR.critical",
#{type => {num, 0, 100},
cfg_key => [index, index_growth_rr, critical]}},
{"index.indexGrowthRR.serious",
#{type => {num, 0, 100},
cfg_key => [index, index_growth_rr, serious]}},
{"index.indexGrowthRR.warning",
#{type => {num, 0, 100},
cfg_key => [index, index_growth_rr, warning]}},
%% Index service overhead configuration
{"index.indexOverheadPerNode.enabled",
#{type => bool,
cfg_key => [metakv, index, index_overhead_per_node, enabled]}},
{"index.indexOverheadPerNode.maximum",
#{type => {num, 0, infinity},
cfg_key => [metakv, index, index_overhead_per_node, maximum]}},
%% Max disk usage % per node
{"diskUsage.enabled",
#{type => bool,
cfg_key => [disk_usage, enabled]}},
{"diskUsage.maximum",
#{type => {num, 0, 100},
cfg_key => [disk_usage, maximum]}},
{"diskUsage.critical",
#{type => {num, 0, 100},
cfg_key => [disk_usage, critical]}},
{"diskUsage.serious",
#{type => {num, 0, 100},
cfg_key => [disk_usage, serious]}},
%% Min number of cores per node per bucket
{"coresPerBucket.enabled",
#{type => bool,
Expand Down Expand Up @@ -169,22 +131,15 @@ raw_default_for_ns_config() ->
{magma_maximum, 16}]}
]},
{index,
%% Resident ratio percentage minimum
[{index_growth_rr,
[{enabled, false},
{warning, 15},
{serious, 12.5},
{critical, 10}]}]},
[]},
%% Minimum cores required per bucket
{cores_per_bucket,
[{enabled, false},
{minimum, 0.4}]},
%% Max disk usage % per node
{disk_usage,
[{enabled, false},
{maximum, 96},
{critical, 85},
{serious, 80}]},
{maximum, 96}]},
%% Max no. of collections per bucket quota in MB
{collections_per_quota,
[{enabled, false},
Expand All @@ -197,19 +152,7 @@ raw_default_for_metakv() ->
[
%% Index service resources
{index,
%% Minimum estimated resident ratio percentage to permit index creation
[{index_creation_rr,
[{enabled, false},
{minimum, 10}]},
%% Minimum resident ratio that a topology change must not breach
{topology_change_rr,
[{enabled, false},
{minimum, 10}]},
%% max index overhead per node
{index_overhead_per_node,
[{enabled, false},
{maximum, 1}]}
]}
[]}
].

update_sub_config({[], Value}, _) ->
Expand Down
146 changes: 2 additions & 144 deletions cluster_tests/testsets/resource_management_test.py
Expand Up @@ -59,29 +59,10 @@ def get_guard_rails_test(self):
get("enabled", collections_per_quota_config)
get("maximum", collections_per_quota_config)

index_create_rr_config = testlib.get_succ(
self.cluster, "/settings/resourceManagement/index/indexCreationRR")
get("enabled", index_create_rr_config)
get("minimum", index_create_rr_config)

topology_change_rr_config = testlib.get_succ(
self.cluster, "/settings/resourceManagement/index/topologyChangeRR")
get("enabled", topology_change_rr_config)
get("minimum", topology_change_rr_config)

index_growth_rr_config = testlib.get_succ(
self.cluster, "/settings/resourceManagement/index/indexGrowthRR")
get("enabled", index_growth_rr_config)
get("critical", index_growth_rr_config)
get("serious", index_growth_rr_config)
get("warning", index_growth_rr_config)

disk_usage_config = testlib.get_succ(
self.cluster, "/settings/resourceManagement/diskUsage")
get("enabled", disk_usage_config)
get("maximum", disk_usage_config)
get("critical", disk_usage_config)
get("serious", disk_usage_config)

def set_guard_rails_json_test(self):
# Set guard rails with json
Expand All @@ -104,35 +85,13 @@ def set_guard_rails_json_test(self):
"maximum": 2
}
},
"index": {
"indexCreationRR": {
"enabled": True,
"minimum": 6
},
"topologyChangeRR": {
"enabled": True,
"minimum": 5
},
"indexOverheadPerNode": {
"enabled": True,
"maximum": 11
},
"indexGrowthRR": {
"enabled": True,
"critical": 1,
"serious": 2,
"warning": 3
}
},
"coresPerBucket": {
"enabled": True,
"minimum": 0.2
},
"diskUsage": {
"enabled": True,
"maximum": 90,
"critical": 85,
"serious": 80
"maximum": 90
}
})

Expand All @@ -152,31 +111,9 @@ def set_guard_rails_json_test(self):
assert collections_config.get("enabled") is True
assert collections_config.get("maximum") == 2

index_config = get("index", r)

index_resident_ratio_config = index_config.get("indexCreationRR")
assert index_resident_ratio_config.get("enabled") is True
assert index_resident_ratio_config.get("minimum") == 6

topology_change_config = index_config.get("topologyChangeRR")
assert topology_change_config.get("enabled") is True
assert topology_change_config.get("minimum") == 5

index_overhead_config = index_config.get("indexOverheadPerNode")
assert index_overhead_config.get("enabled") is True
assert index_overhead_config.get("maximum") == 11

index_growth_rr_config = index_config.get("indexGrowthRR")
assert index_growth_rr_config.get("enabled") is True
assert index_growth_rr_config.get("critical") == 1
assert index_growth_rr_config.get("serious") == 2
assert index_growth_rr_config.get("warning") == 3

data_disk_usage_config = get("diskUsage", r)
assert data_disk_usage_config.get("enabled") is True
assert data_disk_usage_config.get("maximum") == 90
assert data_disk_usage_config.get("critical") == 85
assert data_disk_usage_config.get("serious") == 80

cores_per_bucket_config = get("coresPerBucket", r)
assert cores_per_bucket_config.get("enabled") is True
Expand All @@ -196,22 +133,10 @@ def set_guard_rails_form_test(self):
"bucket.dataSizePerNode.magmaMaximum": 65,
"bucket.collectionsPerQuota.enabled": "false",
"bucket.collectionsPerQuota.maximum": 3,
"index.indexCreationRR.enabled": "false",
"index.indexCreationRR.minimum": 7,
"index.topologyChangeRR.enabled": "false",
"index.topologyChangeRR.minimum": 6,
"index.indexOverheadPerNode.enabled": "false",
"index.indexOverheadPerNode.maximum": 12,
"index.indexGrowthRR.enabled": "false",
"index.indexGrowthRR.critical": 2,
"index.indexGrowthRR.serious": 3,
"index.indexGrowthRR.warning": 4,
"coresPerBucket.enabled": "false",
"coresPerBucket.minimum": 0.3,
"diskUsage.enabled": "false",
"diskUsage.maximum": 91,
"diskUsage.critical": 86,
"diskUsage.serious": 81
"diskUsage.maximum": 91
})

bucket_config = get("bucket", r)
Expand All @@ -230,33 +155,11 @@ def set_guard_rails_form_test(self):
assert collections_config.get("enabled") is False
assert collections_config.get("maximum") == 3

index_config = get("index", r)

index_creation_rr_config = index_config.get("indexCreationRR")
assert index_creation_rr_config.get("enabled") is False
assert index_creation_rr_config.get("minimum") == 7

topology_change_rr_config = index_config.get("topologyChangeRR")
assert topology_change_rr_config.get("enabled") is False
assert topology_change_rr_config.get("minimum") == 6

index_overhead_config = index_config.get("indexOverheadPerNode")
assert index_overhead_config.get("enabled") is False
assert index_overhead_config.get("maximum") == 12

index_growth_rr_config = index_config.get("indexGrowthRR")
assert index_growth_rr_config.get("enabled") is False
assert index_growth_rr_config.get("critical") == 2
assert index_growth_rr_config.get("serious") == 3
assert index_growth_rr_config.get("warning") == 4

assert get("coresPerBucket", r).get("enabled") is False
assert get("coresPerBucket", r).get("minimum") == 0.3

assert get("diskUsage", r).get("enabled") is False
assert get("diskUsage", r).get("maximum") == 91
assert get("diskUsage", r).get("critical") == 86
assert get("diskUsage", r).get("serious") == 81

def set_guard_rails_path_test(self):
# Set residentRatio guard rail using path
Expand Down Expand Up @@ -298,55 +201,10 @@ def set_guard_rails_path_test(self):
data={
"enabled": "true",
"maximum": 92,
"critical": 87,
"serious": 82
})

assert get("enabled", r) is True
assert get("maximum", r) == 92
assert get("critical", r) == 87
assert get("serious", r) == 82

r = testlib.post_succ(
self.cluster, "/settings/resourceManagement/index/indexCreationRR",
json={
"enabled": True,
"minimum": 8
})
assert get("enabled", r) is True
assert get("minimum", r) == 8

r = testlib.post_succ(
self.cluster, "/settings/resourceManagement/index/topologyChangeRR",
json={
"enabled": True,
"minimum": 7
})
assert get("enabled", r) is True
assert get("minimum", r) == 7

r = testlib.post_succ(
self.cluster, "/settings/resourceManagement/index/indexGrowthRR",
json={
"enabled": True,
"critical": 3,
"serious": 4,
"warning": 5
})
assert get("enabled", r) is True
assert get("critical", r) == 3
assert get("serious", r) == 4
assert get("warning", r) == 5

r = testlib.post_succ(
self.cluster,
"/settings/resourceManagement/index/indexOverheadPerNode",
json={
"enabled": True,
"maximum": 13
})
assert get("enabled", r) is True
assert get("maximum", r) == 13


class GuardRailRestrictionTests(testlib.BaseTestSet):
Expand Down
7 changes: 1 addition & 6 deletions etc/provisioned_profile
Expand Up @@ -6,12 +6,7 @@
{[cores_per_bucket, enabled], true},
{[bucket, data_size, enabled], true},
{[disk_usage, enabled], true},
{[collections_per_quota, enabled], true},
{[index, index_growth_rr, enabled], true}]}.
{resource_management_metakv,
[{[index, index_creation_rr, enabled], true},
{[index, topology_change_rr, enabled], true},
{[index, index_overhead_per_node, enabled], true}]}.
{[collections_per_quota, enabled], true}]}.
{failover_ephemeral_no_replicas, true}.
{{n1ql, sequential_scan_disabled}, true}.
{allow_hash_migration_during_auth, true}.

0 comments on commit 06ac515

Please sign in to comment.