summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-03 09:59:52 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-03 09:59:52 +0200
commitf12e2228b9c742a9f8cbf35be27074a229b99766 (patch)
tree3eb31c24541876b70b106818c28a1c8a6e8d7fe2 /searchcore
parent08bf9f4f054eec808bb4729caee51cf67980e170 (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.cpp32
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h1
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,