summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2018-04-24 12:10:48 +0000
committerHåvard Pettersen <havardpe@oath.com>2018-04-24 12:10:48 +0000
commit49709ce3b736e96ccec60a1546bafc14efae945b (patch)
tree066fdaac4dc9003d306376c5c7da2e8209d36316
parentec430a6f6767e7ce0fd3459d43b4fdf2b40279d7 (diff)
extract slime docsum count when available
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
index 498c8b914db..7497ae0bf2f 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
@@ -3,12 +3,17 @@
#include <vespa/log/log.h>
LOG_SETUP(".proton.summaryengine.summaryengine");
+#include <vespa/vespalib/data/slime/slime.h>
using namespace search::engine;
using namespace proton;
+using vespalib::Memory;
+using vespalib::slime::Inspector;
namespace {
+Memory DOCSUMS("docsums");
+
class DocsumTask : public vespalib::Executor::Task {
private:
SummaryEngine & _engine;
@@ -28,6 +33,15 @@ public:
}
};
+uint32_t getNumDocs(const DocsumReply &reply) {
+ if (reply._root) {
+ const Inspector &root = reply._root->get();
+ return root[DOCSUMS].entries();
+ } else {
+ return reply.docsums.size();
+ }
+}
+
} // namespace anonymous
namespace proton {
@@ -123,7 +137,7 @@ SummaryEngine::getDocsums(DocsumRequest::UP req)
reply = snapshot->get()->getDocsums(*req); // use the first handler
}
}
- updateDocsumMetrics(req->getTimeUsed().sec(), reply->docsums.size());
+ updateDocsumMetrics(req->getTimeUsed().sec(), getNumDocs(*reply));
}
reply->request = std::move(req);