diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-03 09:59:52 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-03 09:59:52 +0200 |
commit | f12e2228b9c742a9f8cbf35be27074a229b99766 (patch) | |
tree | 3eb31c24541876b70b106818c28a1c8a6e8d7fe2 /searchcore | |
parent | 08bf9f4f054eec808bb4729caee51cf67980e170 (diff) |
Only forward the performIndexPut if the future doc actually is present.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp | 32 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h | 1 |
2 files changed, 10 insertions, 23 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp index f1e905a3cf0..765d290ad7d 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp @@ -24,7 +24,6 @@ using search::index::Schema; using storage::spi::BucketInfoResult; using storage::spi::Timestamp; using vespalib::IllegalStateException; -using vespalib::makeClosure; using vespalib::makeTask; using vespalib::make_string; using search::makeLambdaTask; @@ -69,24 +68,15 @@ SearchableFeedView::performSync() _writeService.indexFieldWriter().sync(); } - void SearchableFeedView::sync() { assert(_writeService.master().isCurrentThread()); Parent::sync(); - indexExecute(makeClosure(this, &proton::SearchableFeedView::performSync)); + _writeService.index().execute(makeLambdaTask([this]() { performSync(); })); _writeService.index().sync(); } - -void -SearchableFeedView::indexExecute(vespalib::Closure::UP closure) -{ - _writeService.index().execute(makeTask(std::move(closure))); -} - - void SearchableFeedView::putIndexedFields(SerialNum serialNum, search::DocumentIdT lid, @@ -142,19 +132,21 @@ SearchableFeedView::performIndexPut(SerialNum serialNum, void SearchableFeedView::performIndexPut(SerialNum serialNum, search::DocumentIdT lid, - const FutureDoc & doc, + const FutureDoc & futureDoc, bool immediateCommit, OnOperationDoneType onWriteDone) { - performIndexPut(serialNum, lid, *doc.get(), immediateCommit, onWriteDone); + const Document::UP & doc = std::move(futureDoc.get()); + if (doc) { + performIndexPut(serialNum, lid, *doc, immediateCommit, onWriteDone); + } } void SearchableFeedView::heartBeatIndexedFields(SerialNum serialNum) { - indexExecute(makeClosure(this, - &proton::SearchableFeedView::performIndexHeartBeat, - serialNum)); + _writeService.index().execute(makeLambdaTask([=] { performIndexHeartBeat(serialNum); })); + } @@ -308,8 +300,7 @@ SearchableFeedView::internalDeleteBucket(const DeleteBucketOperation &delOp) void -SearchableFeedView::performIndexForceCommit(SerialNum serialNum, - OnForceCommitDoneType onCommitDone) +SearchableFeedView::performIndexForceCommit(SerialNum serialNum, OnForceCommitDoneType onCommitDone) { assert(_writeService.index().isCurrentThread()); _indexWriter->commit(serialNum, onCommitDone); @@ -321,10 +312,7 @@ SearchableFeedView::forceCommit(SerialNum serialNum, OnForceCommitDoneType onCommitDone) { Parent::forceCommit(serialNum, onCommitDone); - _writeService.index().execute( - makeLambdaTask([=]() - { performIndexForceCommit(serialNum, - onCommitDone); })); + _writeService.index().execute(makeLambdaTask([=]() { performIndexForceCommit(serialNum, onCommitDone); })); } void diff --git a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h index 37912b73672..4c57f836822 100644 --- a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h +++ b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h @@ -39,7 +39,6 @@ private: const std::shared_ptr<IGidToLidChangeHandler> _gidToLidChangeHandler; bool hasIndexedFields() const { return _hasIndexedFields; } - void indexExecute(vespalib::Closure::UP closure); void performIndexPut(SerialNum serialNum, |