diff options
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp | 44 | ||||
-rw-r--r-- | storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp | 21 |
2 files changed, 22 insertions, 43 deletions
diff --git a/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp b/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp index e5ba04f789b..0b984eabea8 100644 --- a/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp +++ b/storage/src/tests/persistence/filestorage/service_layer_host_info_reporter_test.cpp @@ -30,8 +30,7 @@ get_attribute_usage_element(const vespalib::Slime& root, const vespalib::string& return AttributeResourceUsage(usage, name.make_string()); } -const vespalib::string attr_es_name("doctype.subdb.esattr"); -const vespalib::string attr_mv_name("doctype.subdb.mvattr"); +const vespalib::string attr_name("doctype.subdb.attr.enum-store"); } @@ -43,12 +42,12 @@ struct ServiceLayerHostInfoReporterTest : ::testing::Test { ServiceLayerHostInfoReporterTest(); ~ServiceLayerHostInfoReporterTest(); - void notify(double disk_usage, double memory_usage, const AttributeResourceUsage &attribute_enum_store_usage, const AttributeResourceUsage &attribute_multivalue_usage) { + void notify(double disk_usage, double memory_usage, const AttributeResourceUsage &attribute_address_space_usage) { auto& listener = static_cast<spi::IResourceUsageListener&>(_reporter); - listener.update_resource_usage(ResourceUsage(disk_usage, memory_usage, attribute_enum_store_usage, attribute_multivalue_usage)); + listener.update_resource_usage(ResourceUsage(disk_usage, memory_usage, attribute_address_space_usage)); } void notify(double disk_usage, double memory_usage) { - notify(disk_usage, memory_usage, {0.0, ""}, {0.0, ""}); + notify(disk_usage, memory_usage, {0.0, ""}); } void set_noise_level(double level) { _reporter.set_noise_level(level); @@ -60,7 +59,8 @@ struct ServiceLayerHostInfoReporterTest : ::testing::Test { ResourceUsage get_slime_usage() { vespalib::Slime root; util::reporterToSlime(_reporter, root); - return ResourceUsage(get_usage_element(root, "disk"), get_usage_element(root, "memory"), get_attribute_usage_element(root, "attribute-enum-store"), get_attribute_usage_element(root, "attribute-multi-value")); + return ResourceUsage(get_usage_element(root, "disk"), get_usage_element(root, "memory"), + get_attribute_usage_element(root, "attribute-address-space")); } }; @@ -97,12 +97,9 @@ TEST_F(ServiceLayerHostInfoReporterTest, request_almost_immediate_node_state_as_ EXPECT_EQ(3, requested_almost_immediate_replies()); EXPECT_EQ(ResourceUsage(0.8, 0.7), get_old_usage()); EXPECT_EQ(ResourceUsage(0.7999, 0.6999), get_usage()); - notify(0.8, 0.7, {0.1, attr_es_name}, {}); - EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {}), get_old_usage()); - EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {}), get_usage()); - notify(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}); - EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}), get_old_usage()); - EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_es_name}, {0.2, attr_mv_name}), get_usage()); + notify(0.8, 0.7, {0.1, attr_name}); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_name}), get_old_usage()); + EXPECT_EQ(ResourceUsage(0.8, 0.7, {0.1, attr_name}), get_usage()); } TEST_F(ServiceLayerHostInfoReporterTest, can_set_noise_level) @@ -125,25 +122,14 @@ TEST_F(ServiceLayerHostInfoReporterTest, can_set_noise_level) } TEST_F(ServiceLayerHostInfoReporterTest, - first_valid_attribute_enum_store_sample_triggers_immediate_node_state_when_below_noise_level) + first_valid_attribute_address_space_sample_triggers_immediate_node_state_when_below_noise_level) { set_noise_level(0.02); constexpr double usage_below_noise_level = 0.019; - notify(0.0, 0.0, {usage_below_noise_level, attr_es_name}, {}); + notify(0.0, 0.0, {usage_below_noise_level, attr_name}); EXPECT_EQ(1, requested_almost_immediate_replies()); - EXPECT_EQ(ResourceUsage(0.0, 0.0, {usage_below_noise_level, attr_es_name}, {}), get_old_usage()); - EXPECT_EQ(ResourceUsage(0.0, 0.0, {usage_below_noise_level, attr_es_name}, {}), get_usage()); -} - -TEST_F(ServiceLayerHostInfoReporterTest, - first_valid_attribute_multi_value_sample_triggers_immediate_node_state_when_below_noise_level) -{ - set_noise_level(0.02); - constexpr double usage_below_noise_level = 0.019; - notify(0.0, 0.0, {}, {usage_below_noise_level, attr_mv_name}); - EXPECT_EQ(1, requested_almost_immediate_replies()); - EXPECT_EQ(ResourceUsage(0.0, 0.0, {}, {usage_below_noise_level, attr_mv_name}), get_old_usage()); - EXPECT_EQ(ResourceUsage(0.0, 0.0, {}, {usage_below_noise_level, attr_mv_name}), get_usage()); + EXPECT_EQ(ResourceUsage(0.0, 0.0, {usage_below_noise_level, attr_name}), get_old_usage()); + EXPECT_EQ(ResourceUsage(0.0, 0.0, {usage_below_noise_level, attr_name}), get_usage()); } TEST_F(ServiceLayerHostInfoReporterTest, json_report_generated) @@ -151,8 +137,8 @@ TEST_F(ServiceLayerHostInfoReporterTest, json_report_generated) EXPECT_EQ(ResourceUsage(0.0, 0.0), get_slime_usage()); notify(0.5, 0.4); EXPECT_EQ(ResourceUsage(0.5, 0.4), get_slime_usage()); - notify(0.5, 0.4, {0.3, attr_es_name}, {0.2, attr_mv_name}); - EXPECT_EQ(ResourceUsage(0.5, 0.4, {0.3, attr_es_name}, {0.2, attr_mv_name}), get_slime_usage()); + notify(0.5, 0.4, {0.3, attr_name}); + EXPECT_EQ(ResourceUsage(0.5, 0.4, {0.3, attr_name}), get_slime_usage()); } } diff --git a/storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp b/storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp index 97244582f50..67668d8ea55 100644 --- a/storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/service_layer_host_info_reporter.cpp @@ -18,8 +18,7 @@ namespace { const vespalib::string memory_label("memory"); const vespalib::string disk_label("disk"); -const vespalib::string attribute_enum_store_label("attribute-enum-store"); -const vespalib::string attribute_multi_value_label("attribute-multi-value"); +const vespalib::string attribute_address_space_label("attribute-address-space"); void write_usage(vespalib::JsonStream& output, const vespalib::string &label, double value) { @@ -40,18 +39,13 @@ bool want_immediate_report(const spi::ResourceUsage& old_usage, const spi::Resou { auto disk_usage_diff = fabs(new_usage.get_disk_usage() - old_usage.get_disk_usage()); auto memory_usage_diff = fabs(new_usage.get_memory_usage() - old_usage.get_memory_usage()); - auto enum_store_diff = fabs(new_usage.get_attribute_enum_store_usage().get_usage() - old_usage.get_attribute_enum_store_usage().get_usage()); - auto multivalue_diff = fabs(new_usage.get_attribute_multivalue_usage().get_usage() - old_usage.get_attribute_multivalue_usage().get_usage()); - bool enum_store_got_valid = !old_usage.get_attribute_enum_store_usage().valid() && - new_usage.get_attribute_enum_store_usage().valid(); - bool multivalue_got_valid = !old_usage.get_attribute_multivalue_usage().valid() && - new_usage.get_attribute_multivalue_usage().valid(); + auto address_space_diff = fabs(new_usage.get_attribute_address_space_usage().get_usage() - old_usage.get_attribute_address_space_usage().get_usage()); + bool address_space_got_valid = !old_usage.get_attribute_address_space_usage().valid() && + new_usage.get_attribute_address_space_usage().valid(); return ((disk_usage_diff > noise_level) || (memory_usage_diff > noise_level) || - (enum_store_diff > noise_level) || - (multivalue_diff > noise_level) || - enum_store_got_valid || - multivalue_got_valid); + (address_space_diff > noise_level) || + address_space_got_valid); } } @@ -121,8 +115,7 @@ ServiceLayerHostInfoReporter::report(vespalib::JsonStream& output) LOG(debug, "report(): usage=%s", to_string(usage).c_str()); write_usage(output, memory_label, usage.get_memory_usage()); write_usage(output, disk_label, usage.get_disk_usage()); - write_attribute_usage(output, attribute_enum_store_label, usage.get_attribute_enum_store_usage()); - write_attribute_usage(output, attribute_multi_value_label, usage.get_attribute_multivalue_usage()); + write_attribute_usage(output, attribute_address_space_label, usage.get_attribute_address_space_usage()); } output << End(); output << End(); |