diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-02-27 14:13:20 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-02-27 14:13:20 +0100 |
commit | fa97b892603f76ab45c5d03c6e62b6d6bdacdf53 (patch) | |
tree | cb10e6b7c6e2791b3437e2e050ca2324c69b5f11 | |
parent | c6dd9ee63a9979faac91db16d7a9bf27fa65a0d4 (diff) | |
parent | 4cdb2a814c8c980fbc0ec18cf294d425a51fd934 (diff) |
Merge branch 'master' into hmusum/get-all-nodes-only-when-needed
6 files changed, 13 insertions, 21 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/telegraf/Telegraf.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/telegraf/Telegraf.java index 2afc0267434..c12cf5b2e09 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/telegraf/Telegraf.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/telegraf/Telegraf.java @@ -43,6 +43,7 @@ public class Telegraf extends AbstractComponent { context.put("logFilePath", TELEGRAF_LOG_FILE_PATH); context.put("intervalSeconds", telegrafConfig.intervalSeconds()); context.put("cloudwatchPlugins", telegrafConfig.cloudWatch()); + context.put("protocol", telegrafConfig.isHostedVespa() ? "https" : "http"); // TODO: Add node cert if hosted VelocityEngine velocityEngine = new VelocityEngine(); diff --git a/metrics-proxy/src/main/resources/templates/telegraf.conf.vm b/metrics-proxy/src/main/resources/templates/telegraf.conf.vm index e99bab8b02d..5a5f2d5f712 100644 --- a/metrics-proxy/src/main/resources/templates/telegraf.conf.vm +++ b/metrics-proxy/src/main/resources/templates/telegraf.conf.vm @@ -31,7 +31,7 @@ # Configuration for Vespa input plugin [[inputs.vespa]] - url = "http://localhost:19092/metrics/v2/values?consumer=$cloudwatch.consumer()" + url = "${protocol}://localhost:19092/metrics/v2/values?consumer=$cloudwatch.consumer()" [inputs.vespa.tags] vespa_consumer = "$cloudwatch.consumer()" #* TODO: Add node cert if hosted diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/telegraf/TelegrafTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/telegraf/TelegrafTest.java index 9ad31a0d9e8..d35cc12918c 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/telegraf/TelegrafTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/telegraf/TelegrafTest.java @@ -32,6 +32,7 @@ public class TelegrafTest { .consumer("consumer2") ) .intervalSeconds(300) + .isHostedVespa(true) .build(); StringWriter stringWriter = new StringWriter(); Telegraf.writeConfig(telegrafConfig, stringWriter); diff --git a/metrics-proxy/src/test/resources/telegraf-config-with-two-cloudwatch-plugins.txt b/metrics-proxy/src/test/resources/telegraf-config-with-two-cloudwatch-plugins.txt index accd2cc87eb..3569703ad03 100644 --- a/metrics-proxy/src/test/resources/telegraf-config-with-two-cloudwatch-plugins.txt +++ b/metrics-proxy/src/test/resources/telegraf-config-with-two-cloudwatch-plugins.txt @@ -26,7 +26,7 @@ # Configuration for Vespa input plugin [[inputs.vespa]] - url = "http://localhost:19092/metrics/v2/values?consumer=consumer1" + url = "https://localhost:19092/metrics/v2/values?consumer=consumer1" [inputs.vespa.tags] vespa_consumer = "consumer1" # Configuration for AWS CloudWatch output. @@ -40,7 +40,7 @@ # Configuration for Vespa input plugin [[inputs.vespa]] - url = "http://localhost:19092/metrics/v2/values?consumer=consumer2" + url = "https://localhost:19092/metrics/v2/values?consumer=consumer2" [inputs.vespa.tags] vespa_consumer = "consumer2" diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp index c6c12a3b3b9..f79727cd6bd 100644 --- a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp +++ b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp @@ -50,20 +50,17 @@ HnswIndex::max_links_for_level(uint32_t level) const return (level == 0) ? _cfg.max_links_at_level_0() : _cfg.max_links_on_inserts(); } -uint32_t -HnswIndex::make_node_for_document(uint32_t docid) +void +HnswIndex::make_node_for_document(uint32_t docid, uint32_t num_levels) { + _node_refs.ensure_size(docid + 1, AtomicEntryRef()); // A document cannot be added twice. assert(!_node_refs[docid].load_acquire().valid()); - uint32_t max_level = _level_generator->max_level(); - // TODO: Add capping on num_levels - uint32_t num_levels = max_level + 1; // Note: The level array instance lives as long as the document is present in the index. LevelArray levels(num_levels, AtomicEntryRef()); auto node_ref = _nodes.add(levels); _node_refs[docid].store_release(node_ref); - return max_level; } void @@ -301,8 +298,9 @@ void HnswIndex::add_document(uint32_t docid) { auto input = get_vector(docid); - _node_refs.ensure_size(docid + 1, AtomicEntryRef()); - int level = make_node_for_document(docid); + // TODO: Add capping on num_levels + int level = _level_generator->max_level(); + make_node_for_document(docid, level + 1); if (_entry_docid == 0) { _entry_docid = docid; _entry_level = level; @@ -452,17 +450,9 @@ HnswIndex::get_node(uint32_t docid) const void HnswIndex::set_node(uint32_t docid, const HnswNode &node) { - _node_refs.ensure_size(docid + 1, AtomicEntryRef()); - // A document cannot be added twice. - assert(!_node_refs[docid].load_acquire().valid()); - - // make new node size_t num_levels = node.size(); assert(num_levels > 0); - LevelArray levels(num_levels, AtomicEntryRef()); - auto node_ref = _nodes.add(levels); - _node_refs[docid].store_release(node_ref); - + make_node_for_document(docid, num_levels); for (size_t level = 0; level < num_levels; ++level) { connect_new_node(docid, node.level(level), level); } diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_index.h b/searchlib/src/vespa/searchlib/tensor/hnsw_index.h index b70efe692ef..ca87047f61b 100644 --- a/searchlib/src/vespa/searchlib/tensor/hnsw_index.h +++ b/searchlib/src/vespa/searchlib/tensor/hnsw_index.h @@ -94,7 +94,7 @@ protected: static search::datastore::ArrayStoreConfig make_default_link_store_config(); uint32_t max_links_for_level(uint32_t level) const; - uint32_t make_node_for_document(uint32_t docid); + void make_node_for_document(uint32_t docid, uint32_t num_levels); void remove_node_for_document(uint32_t docid); LevelArrayRef get_level_array(uint32_t docid) const; LinkArrayRef get_link_array(uint32_t docid, uint32_t level) const; |