aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-02-27 14:13:20 +0100
committerHarald Musum <musum@verizonmedia.com>2020-02-27 14:13:20 +0100
commitfa97b892603f76ab45c5d03c6e62b6d6bdacdf53 (patch)
treecb10e6b7c6e2791b3437e2e050ca2324c69b5f11
parentc6dd9ee63a9979faac91db16d7a9bf27fa65a0d4 (diff)
parent4cdb2a814c8c980fbc0ec18cf294d425a51fd934 (diff)
Merge branch 'master' into hmusum/get-all-nodes-only-when-needed
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/telegraf/Telegraf.java1
-rw-r--r--metrics-proxy/src/main/resources/templates/telegraf.conf.vm2
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/telegraf/TelegrafTest.java1
-rw-r--r--metrics-proxy/src/test/resources/telegraf-config-with-two-cloudwatch-plugins.txt4
-rw-r--r--searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp24
-rw-r--r--searchlib/src/vespa/searchlib/tensor/hnsw_index.h2
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;