aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-03-07 00:37:52 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-03-07 00:37:52 +0000
commit85371fa5da72ab4c2724e1fd9f1aec79c472f751 (patch)
treedfad4716e36f7f5327ee0fc8bbbbd801b7c432f8
parenta1c4e2e81735828d42ccf541b28e2a06db803e88 (diff)
Put distribution-key in trace payload and name it 'trace'.
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java2
-rw-r--r--searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp12
-rw-r--r--searchlib/src/tests/engine/searchapi/searchapi_test.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/engine/trace.h3
4 files changed, 11 insertions, 14 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index f4d98b73a0d..5f055c9ea87 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -421,7 +421,7 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
if (resultPacket.propsArray == null) return;
Value.ArrayValue traces = new Value.ArrayValue();
for (FS4Properties properties : resultPacket.propsArray) {
- if ( ! properties.getName().startsWith("trace")) continue;
+ if ( ! properties.getName().equals("trace")) continue;
for (FS4Properties.Entry entry : properties.getEntries()) {
if (!entry.key.equals("slime")) continue;
traces.add(new SlimeAdapter(BinaryFormat.decode(entry.getValue()).get()));
diff --git a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp
index 0cb50fb00b0..3a28eeb4dfd 100644
--- a/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/matchengine/matchengine.cpp
@@ -50,7 +50,6 @@ MatchEngine::MatchEngine(size_t numThreads, size_t threadsPerSearch, uint32_t di
_threadBundlePool(std::max(size_t(1), threadsPerSearch)),
_nodeUp(false)
{
- // empty
}
MatchEngine::~MatchEngine()
@@ -106,9 +105,7 @@ MatchEngine::search(search::engine::SearchRequest::Source request,
return ret;
}
- vespalib::Executor::Task::UP task;
- task.reset(new SearchTask(*this, std::move(request), client));
- _executor.execute(std::move(task));
+ _executor.execute(std::make_unique<SearchTask>(*this, std::move(request), client));
return search::engine::SearchReply::UP();
}
@@ -144,11 +141,10 @@ MatchEngine::performSearch(search::engine::SearchRequest::Source req,
ret->request = req.release();
ret->setDistributionKey(_distributionKey);
if (ret->request->getTraceLevel() > 0) {
- vespalib::asciistream os;
- os << "trace-" << _distributionKey;
- search::fef::Properties & trace = ret->propertiesMap.lookupCreate(os.str());
+ ret->request->trace().getRoot().setLong("distribution-key", _distributionKey);
+ search::fef::Properties & trace = ret->propertiesMap.lookupCreate("trace");
vespalib::SmartBuffer output(4096);
- vespalib::slime::BinaryFormat::encode(ret->request->trace().getRoot(), output);
+ vespalib::slime::BinaryFormat::encode(ret->request->trace().getSlime(), output);
trace.add("slime", output.obtain().make_stringref());
}
client.searchDone(std::move(ret));
diff --git a/searchlib/src/tests/engine/searchapi/searchapi_test.cpp b/searchlib/src/tests/engine/searchapi/searchapi_test.cpp
index f06ce5c188c..626435360a0 100644
--- a/searchlib/src/tests/engine/searchapi/searchapi_test.cpp
+++ b/searchlib/src/tests/engine/searchapi/searchapi_test.cpp
@@ -241,7 +241,7 @@ TEST("verify trace") {
" ],"
" creation_time: 7"
"}",
- t.getRoot());
+ t.getSlime());
t.createCursor("tag_a");
verify("{"
@@ -252,7 +252,7 @@ TEST("verify trace") {
" ],"
" creation_time: 7"
"}",
- t.getRoot());
+ t.getSlime());
Trace::Cursor & tagB = t.createCursor("tag_b");
tagB.setLong("long", 19);
verify("{"
@@ -267,7 +267,7 @@ TEST("verify trace") {
" ],"
" creation_time: 7"
"}",
- t.getRoot());
+ t.getSlime());
}
-TEST_MAIN() { TEST_RUN_ALL(); } \ No newline at end of file
+TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/vespa/searchlib/engine/trace.h b/searchlib/src/vespa/searchlib/engine/trace.h
index 68f0103a762..5ebae8ad03b 100644
--- a/searchlib/src/vespa/searchlib/engine/trace.h
+++ b/searchlib/src/vespa/searchlib/engine/trace.h
@@ -28,7 +28,8 @@ public:
*/
Cursor & createCursor(vespalib::stringref name);
vespalib::string toString() const;
- vespalib::Slime & getRoot() const { return *_trace; }
+ Cursor & getRoot() const { return _root; }
+ vespalib::Slime & getSlime() const { return *_trace; }
private:
std::unique_ptr<vespalib::Slime> _trace;
Cursor & _root;