summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp42
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h30
2 files changed, 33 insertions, 39 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
index d371dffa319..da3e09bea41 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
@@ -13,8 +13,6 @@
#include <vespa/searchcore/proton/documentmetastore/ilidreusedelayer.h>
#include <vespa/searchcore/proton/metrics/feed_metrics.h>
#include <vespa/searchlib/common/scheduletaskcallback.h>
-#include <vespa/vespalib/text/stringtokenizer.h>
-#include <vespa/vespalib/util/closuretask.h>
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/log/log.h>
@@ -242,10 +240,10 @@ StoreOnlyFeedView::considerEarlyAck(FeedToken::UP &token, FeedOperation::Type op
}
void
-StoreOnlyFeedView::putAttributes(SerialNum, search::DocumentIdT, const Document &, bool, OnPutDoneType) {}
+StoreOnlyFeedView::putAttributes(SerialNum, Lid, const Document &, bool, OnPutDoneType) {}
void
-StoreOnlyFeedView::putIndexedFields(SerialNum, search::DocumentIdT, const Document::SP &, bool, OnOperationDoneType) {}
+StoreOnlyFeedView::putIndexedFields(SerialNum, Lid, const Document::SP &, bool, OnOperationDoneType) {}
void
StoreOnlyFeedView::preparePut(PutOperation &putOp)
@@ -325,10 +323,10 @@ StoreOnlyFeedView::getUpdateScope(const DocumentUpdate &upd)
void
-StoreOnlyFeedView::updateAttributes(SerialNum, search::DocumentIdT, const DocumentUpdate &, bool, OnOperationDoneType) {}
+StoreOnlyFeedView::updateAttributes(SerialNum, Lid, const DocumentUpdate &, bool, OnOperationDoneType) {}
void
-StoreOnlyFeedView::updateIndexedFields(SerialNum, search::DocumentIdT, FutureDoc, bool, OnOperationDoneType)
+StoreOnlyFeedView::updateIndexedFields(SerialNum, Lid, FutureDoc, bool, OnOperationDoneType)
{
abort(); // Should never be called.
}
@@ -350,7 +348,7 @@ StoreOnlyFeedView::handleUpdate(FeedToken *token, const UpdateOperation &updOp)
internalUpdate(dupFeedToken(token), updOp);
}
-void StoreOnlyFeedView::putSummary(SerialNum serialNum, search::DocumentIdT lid,
+void StoreOnlyFeedView::putSummary(SerialNum serialNum, Lid lid,
FutureStream futureStream, OnOperationDoneType onDone)
{
_pendingLidTracker.produce(lid);
@@ -368,8 +366,7 @@ void StoreOnlyFeedView::putSummary(SerialNum serialNum, search::DocumentIdT lid
#pragma GCC diagnostic pop
}
-void StoreOnlyFeedView::putSummary(SerialNum serialNum, search::DocumentIdT lid,
- Document::SP doc, OnOperationDoneType onDone)
+void StoreOnlyFeedView::putSummary(SerialNum serialNum, Lid lid, Document::SP doc, OnOperationDoneType onDone)
{
_pendingLidTracker.produce(lid);
#pragma GCC diagnostic push
@@ -382,7 +379,7 @@ void StoreOnlyFeedView::putSummary(SerialNum serialNum, search::DocumentIdT lid
}));
#pragma GCC diagnostic pop
}
-void StoreOnlyFeedView::removeSummary(SerialNum serialNum, search::DocumentIdT lid) {
+void StoreOnlyFeedView::removeSummary(SerialNum serialNum, Lid lid) {
_pendingLidTracker.produce(lid);
summaryExecutor().execute(
makeLambdaTask([serialNum, lid, this] {
@@ -408,14 +405,14 @@ StoreOnlyFeedView::internalUpdate(FeedToken::UP token, const UpdateOperation &up
const SerialNum serialNum = updOp.getSerialNum();
const DocumentUpdate &upd = *updOp.getUpdate();
const DocumentId &docId = upd.getId();
- const search::DocumentIdT lid = updOp.getLid();
+ const Lid lid = updOp.getLid();
VLOG(getDebugLevel(lid, upd.getId()),
"database(%s): internalUpdate: serialNum(%lu), docId(%s), lid(%d)",
_params._docTypeName.toString().c_str(), serialNum,
upd.getId().toString().c_str(), lid);
if (useDocumentMetaStore(serialNum)) {
- search::DocumentIdT storedLid;
+ Lid storedLid;
bool lookupOk = lookupDocId(docId, storedLid);
assert(lookupOk);
(void) lookupOk;
@@ -450,12 +447,11 @@ StoreOnlyFeedView::internalUpdate(FeedToken::UP token, const UpdateOperation &up
_writeService
.attributeFieldWriter()
.execute(serialNum,
- [upd = updOp.getUpdate(), serialNum, prevDoc = _summaryAdapter->get(lid, *_repo), onWriteDone,
- promisedDoc = std::move(promisedDoc), promisedStream = std::move(promisedStream),
- this]() mutable
+ [upd = updOp.getUpdate(), serialNum, lid, onWriteDone, promisedDoc = std::move(promisedDoc),
+ promisedStream = std::move(promisedStream), this]() mutable
{
- makeUpdatedDocument(serialNum, std::move(prevDoc), upd,
- onWriteDone, std::move(promisedDoc), std::move(promisedStream));
+ makeUpdatedDocument(serialNum, lid, upd, onWriteDone,
+ std::move(promisedDoc), std::move(promisedStream));
});
#pragma GCC diagnostic pop
}
@@ -467,10 +463,11 @@ StoreOnlyFeedView::internalUpdate(FeedToken::UP token, const UpdateOperation &up
}
void
-StoreOnlyFeedView::makeUpdatedDocument(SerialNum serialNum, Document::UP prevDoc, DocumentUpdate::SP update,
+StoreOnlyFeedView::makeUpdatedDocument(SerialNum serialNum, Lid lid, DocumentUpdate::SP update,
OnOperationDoneType onWriteDone, PromisedDoc promisedDoc,
PromisedStream promisedStream)
{
+ Document::UP prevDoc = _summaryAdapter->get(lid, *_repo);
const DocumentUpdate & upd = *update;
Document::UP newDoc;
vespalib::nbostream newStream(12345);
@@ -515,8 +512,7 @@ StoreOnlyFeedView::makeUpdatedDocument(SerialNum serialNum, Document::UP prevDoc
}
bool
-StoreOnlyFeedView::lookupDocId(const DocumentId &docId,
- search::DocumentIdT &lid) const
+StoreOnlyFeedView::lookupDocId(const DocumentId &docId, Lid &lid) const
{
// This function should only be called by the updater thread.
// Readers need to take a guard on the document meta store
@@ -530,10 +526,10 @@ StoreOnlyFeedView::lookupDocId(const DocumentId &docId,
}
void
-StoreOnlyFeedView::removeAttributes(SerialNum, search::DocumentIdT, bool, OnRemoveDoneType) {}
+StoreOnlyFeedView::removeAttributes(SerialNum, Lid, bool, OnRemoveDoneType) {}
void
-StoreOnlyFeedView::removeIndexedFields(SerialNum, search::DocumentIdT, bool, OnRemoveDoneType) {}
+StoreOnlyFeedView::removeIndexedFields(SerialNum, Lid, bool, OnRemoveDoneType) {}
void
StoreOnlyFeedView::prepareRemove(RemoveOperation &rmOp)
@@ -586,7 +582,7 @@ StoreOnlyFeedView::internalRemove(FeedToken::UP token, const RemoveOperation &rm
}
void
-StoreOnlyFeedView::internalRemove(FeedToken::UP token, SerialNum serialNum, search::DocumentIdT lid,
+StoreOnlyFeedView::internalRemove(FeedToken::UP token, SerialNum serialNum, Lid lid,
FeedOperation::Type opType, IDestructorCallback::SP moveDoneCtx)
{
removeSummary(serialNum, lid);
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
index a9d56b8f98d..982acf200a7 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
@@ -61,6 +61,7 @@ public:
using PromisedDoc = std::promise<Document::UP>;
using FutureStream = std::future<vespalib::nbostream>;
using PromisedStream = std::promise<vespalib::nbostream>;
+ using Lid = search::DocumentIdT;
struct Context
{
@@ -147,9 +148,9 @@ private:
searchcorespi::index::IThreadService & summaryExecutor() {
return _writeService.summary();
}
- void putSummary(SerialNum serialNum, search::DocumentIdT lid, FutureStream doc, OnOperationDoneType onDone);
- void putSummary(SerialNum serialNum, search::DocumentIdT lid, Document::SP doc, OnOperationDoneType onDone);
- void removeSummary(SerialNum serialNum, search::DocumentIdT lid);
+ void putSummary(SerialNum serialNum, Lid lid, FutureStream doc, OnOperationDoneType onDone);
+ void putSummary(SerialNum serialNum, Lid lid, Document::SP doc, OnOperationDoneType onDone);
+ void removeSummary(SerialNum serialNum, Lid lid);
void heartBeatSummary(SerialNum serialNum);
@@ -164,7 +165,7 @@ private:
void internalPut(FeedTokenUP token, const PutOperation &putOp);
void internalUpdate(FeedTokenUP token, const UpdateOperation &updOp);
- bool lookupDocId(const document::DocumentId &gid, search::DocumentIdT & lid) const;
+ bool lookupDocId(const document::DocumentId &gid, Lid & lid) const;
void internalRemove(FeedTokenUP token, const RemoveOperation &rmOp);
// Removes documents from meta store and document store.
@@ -172,7 +173,7 @@ private:
size_t removeDocuments(const RemoveDocumentsOperation &op, bool remove_index_and_attribute_fields,
bool immediateCommit);
- void internalRemove(FeedTokenUP token, SerialNum serialNum, search::DocumentIdT lid,
+ void internalRemove(FeedTokenUP token, SerialNum serialNum, Lid lid,
FeedOperation::Type opType, std::shared_ptr<search::IDestructorCallback> moveDoneCtx);
// Ack token early if visibility delay is nonzero
@@ -180,8 +181,8 @@ private:
virtual void notifyGidToLidChange(const document::GlobalId &gid, uint32_t lid);
- void makeUpdatedDocument(SerialNum serialNum, Document::UP prevDoc, DocumentUpdate::SP upd,
- OnOperationDoneType onWriteDone, PromisedDoc promisedDoc, PromisedStream promisedStream);
+ void makeUpdatedDocument(SerialNum serialNum, Lid lid, DocumentUpdate::SP upd,
+ OnOperationDoneType onWriteDone,PromisedDoc promisedDoc, PromisedStream promisedStream);
protected:
virtual void internalDeleteBucket(const DeleteBucketOperation &delOp);
@@ -189,25 +190,22 @@ protected:
virtual void heartBeatAttributes(SerialNum serialNum);
private:
- virtual void putAttributes(SerialNum serialNum, search::DocumentIdT lid, const Document &doc,
+ virtual void putAttributes(SerialNum serialNum, Lid lid, const Document &doc,
bool immediateCommit, OnPutDoneType onWriteDone);
- virtual void putIndexedFields(SerialNum serialNum, search::DocumentIdT lid, const Document::SP &newDoc,
+ virtual void putIndexedFields(SerialNum serialNum, Lid lid, const Document::SP &newDoc,
bool immediateCommit, OnOperationDoneType onWriteDone);
virtual UpdateScope getUpdateScope(const DocumentUpdate &upd);
- virtual void updateAttributes(SerialNum serialNum, search::DocumentIdT lid, const DocumentUpdate &upd,
+ virtual void updateAttributes(SerialNum serialNum, Lid lid, const DocumentUpdate &upd,
bool immediateCommit, OnOperationDoneType onWriteDone);
- virtual void updateIndexedFields(SerialNum serialNum, search::DocumentIdT lid, FutureDoc doc,
+ virtual void updateIndexedFields(SerialNum serialNum, Lid lid, FutureDoc doc,
bool immediateCommit, OnOperationDoneType onWriteDone);
- virtual void removeAttributes(SerialNum serialNum, search::DocumentIdT lid,
- bool immediateCommit, OnRemoveDoneType onWriteDone);
-
- virtual void removeIndexedFields(SerialNum serialNum, search::DocumentIdT lid,
- bool immediateCommit, OnRemoveDoneType onWriteDone);
+ virtual void removeAttributes(SerialNum serialNum, Lid lid, bool immediateCommit, OnRemoveDoneType onWriteDone);
+ virtual void removeIndexedFields(SerialNum serialNum, Lid lid, bool immediateCommit, OnRemoveDoneType onWriteDone);
protected:
virtual void removeAttributes(SerialNum serialNum, const LidVector &lidsToRemove,