diff options
Diffstat (limited to 'searchcorespi')
-rw-r--r-- | searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp | 11 | ||||
-rw-r--r-- | searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h | 16 |
2 files changed, 16 insertions, 11 deletions
diff --git a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp index 39f6a489908..98e44ff8e44 100644 --- a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp +++ b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp @@ -219,12 +219,21 @@ WarmupIndexCollection::getSearchableSP(uint32_t i) const return _next->getSearchableSP(i); } +WarmupIndexCollection::WarmupTask::WarmupTask(std::unique_ptr<MatchData> md, WarmupIndexCollection & warmup) + : _warmup(warmup), + _matchData(std::move(md)), + _bluePrint(), + _requestContext() +{ } + +WarmupIndexCollection::WarmupTask::~WarmupTask() = default; + void WarmupIndexCollection::WarmupTask::run() { if (_warmup._warmupEndTime != vespalib::steady_time()) { LOG(debug, "Warming up %s", _bluePrint->asString().c_str()); - _bluePrint->fetchPostings(true); + _bluePrint->fetchPostings(search::queryeval::ExecuteInfo::TRUE); SearchIterator::UP it(_bluePrint->createSearch(*_matchData, true)); it->initFullRange(); for (uint32_t docId = it->seekFirst(1); !it->isAtEnd(); docId = it->seekNext(docId+1)) { diff --git a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h index 571353574c1..fb36807b8e4 100644 --- a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h +++ b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h @@ -70,12 +70,8 @@ private: typedef vespalib::Executor::Task Task; class WarmupTask : public Task { public: - WarmupTask(MatchData::UP md, WarmupIndexCollection & warmup) : - _warmup(warmup), - _matchData(std::move(md)), - _bluePrint(), - _requestContext() - { } + WarmupTask(std::unique_ptr<MatchData> md, WarmupIndexCollection & warmup); + ~WarmupTask() override; WarmupTask &createBlueprint(const FieldSpec &field, const Node &term) { _bluePrint = _warmup.createBlueprint(_requestContext, field, term); return *this; @@ -86,10 +82,10 @@ private: } private: void run() override; - WarmupIndexCollection & _warmup; - MatchData::UP _matchData; - Blueprint::UP _bluePrint; - FakeRequestContext _requestContext; + WarmupIndexCollection & _warmup; + std::unique_ptr<MatchData> _matchData; + Blueprint::UP _bluePrint; + FakeRequestContext _requestContext; }; void fireWarmup(Task::UP task); |