aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-05-17 13:17:20 +0200
committerGitHub <noreply@github.com>2021-05-17 13:17:20 +0200
commit8f41a717d44906dad622b555cbf6a08156cff161 (patch)
treedeb6a4e3415c07cbd59963746d1cf5fc813dc43f
parenta2a757d60d5d1e3b274806e198438d727156047e (diff)
parent46f27cdbd6082287795968413c4849575cd294dc (diff)
Merge pull request #17868 from vespa-engine/balder/ensure-pending-lid-tracker-token-has-shorter-life
Do not produce a token unless you need it.
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
index 04ad4ee20ed..c050719b361 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
@@ -247,7 +247,6 @@ StoreOnlyFeedView::internalPut(FeedToken token, const PutOperation &putOp)
_params._subDbId, doc->toString(true).size(), doc->toString(true).c_str());
adjustMetaStore(putOp, docId.getGlobalId(), docId);
- auto uncommitted = get_pending_lid_token(putOp);
bool docAlreadyExists = putOp.getValidPrevDbdId(_params._subDbId);
@@ -255,7 +254,7 @@ StoreOnlyFeedView::internalPut(FeedToken token, const PutOperation &putOp)
if (putOp.changedDbdId() && useDocumentMetaStore(serialNum)) {
_gidToLidChangeHandler.notifyPut(token, docId.getGlobalId(), putOp.getLid(), serialNum);
}
- auto onWriteDone = createPutDoneContext(std::move(token), std::move(uncommitted), doc, putOp.getLid());
+ auto onWriteDone = createPutDoneContext(std::move(token), get_pending_lid_token(putOp), doc, putOp.getLid());
putSummary(serialNum, putOp.getLid(), doc, onWriteDone);
putAttributes(serialNum, putOp.getLid(), *doc, onWriteDone);
putIndexedFields(serialNum, putOp.getLid(), doc, onWriteDone);
@@ -409,9 +408,8 @@ StoreOnlyFeedView::internalUpdate(FeedToken token, const UpdateOperation &updOp)
(void) updateOk;
_metaStore.commit(CommitParam(serialNum));
}
- auto uncommitted = get_pending_lid_token(updOp);
- auto onWriteDone = createUpdateDoneContext(std::move(token), std::move(uncommitted), updOp.getUpdate());
+ auto onWriteDone = createUpdateDoneContext(std::move(token), get_pending_lid_token(updOp), updOp.getUpdate());
UpdateScope updateScope(*_schema, upd);
updateAttributes(serialNum, lid, upd, onWriteDone, updateScope);
@@ -533,13 +531,12 @@ StoreOnlyFeedView::internalRemove(FeedToken token, const RemoveOperationWithDocI
rmOp.getSubDbId(), rmOp.getLid(), rmOp.getPrevSubDbId(), rmOp.getPrevLid(), _params._subDbId);
adjustMetaStore(rmOp, docId.getGlobalId(), docId);
- auto uncommitted = get_pending_lid_token(rmOp);
if (rmOp.getValidDbdId(_params._subDbId)) {
auto clearDoc = std::make_unique<Document>(*_docType, docId);
clearDoc->setRepo(*_repo);
- putSummary(serialNum, rmOp.getLid(), std::move(clearDoc), std::make_shared<SummaryPutDoneContext>(std::move(token), std::move(uncommitted)));
+ putSummary(serialNum, rmOp.getLid(), std::move(clearDoc), std::make_shared<SummaryPutDoneContext>(std::move(token), get_pending_lid_token(rmOp)));
}
if (rmOp.getValidPrevDbdId(_params._subDbId)) {
if (rmOp.changedDbdId()) {
@@ -558,7 +555,6 @@ StoreOnlyFeedView::internalRemove(FeedToken token, const RemoveOperationWithGid
const SerialNum serialNum = rmOp.getSerialNum();
DocumentId dummy;
adjustMetaStore(rmOp, rmOp.getGlobalId(), dummy);
- auto uncommitted = _pendingLidsForCommit->produce(rmOp.getLid());
if (rmOp.getValidPrevDbdId(_params._subDbId)) {
if (rmOp.changedDbdId()) {