From 49709ce3b736e96ccec60a1546bafc14efae945b Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Tue, 24 Apr 2018 12:10:48 +0000 Subject: extract slime docsum count when available --- .../searchcore/proton/summaryengine/summaryengine.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'searchcore/src') 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 LOG_SETUP(".proton.summaryengine.summaryengine"); +#include 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); -- cgit v1.2.3