summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-11-30 08:49:06 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-11-30 08:49:06 +0000
commit1195f94bcba1366ac1e7f94c3c6d714fc2a1d8f8 (patch)
tree329556b8de2b711381d1f49b7812bbd041c1ee6e /searchcore
parentdd67bb4a5b7b5ca609f32b6a0255db4ccc4abe6f (diff)
Add DoneCallback to heartBeat so it can be tested without relying on sync.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/attribute/attributeflush_test.cpp5
-rw-r--r--searchcore/src/tests/proton/documentdb/combiningfeedview/combiningfeedview_test.cpp4
-rw-r--r--searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp4
-rw-r--r--searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp8
-rw-r--r--searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp14
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/i_attribute_writer.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/combiningfeedview.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/combiningfeedview.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/ifeedview.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp17
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h9
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/dummy_feed_view.h2
19 files changed, 58 insertions, 45 deletions
diff --git a/searchcore/src/tests/proton/attribute/attributeflush_test.cpp b/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
index e29040a7984..e85bf3c4baa 100644
--- a/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
+++ b/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
@@ -19,6 +19,7 @@
#include <vespa/vespalib/util/foregroundtaskexecutor.h>
#include <vespa/vespalib/util/size_literals.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
+#include <vespa/vespalib/util/idestructorcallback.h>
#include <thread>
#include <vespa/log/log.h>
@@ -568,13 +569,13 @@ Test::requireThatShrinkWorks()
EXPECT_FALSE(av->canShrinkLidSpace());
EXPECT_EQUAL(1000u, av->getNumDocs());
EXPECT_EQUAL(100u, av->getCommittedDocIdLimit());
- aw.heartBeat(51);
+ aw.heartBeat(51, IDestructorCallback::SP());
EXPECT_TRUE(av->wantShrinkLidSpace());
EXPECT_FALSE(av->canShrinkLidSpace());
EXPECT_EQUAL(ft->getApproxMemoryGain().getBefore(),
ft->getApproxMemoryGain().getAfter());
g.reset();
- aw.heartBeat(52);
+ aw.heartBeat(52, IDestructorCallback::SP());
EXPECT_TRUE(av->wantShrinkLidSpace());
EXPECT_TRUE(av->canShrinkLidSpace());
EXPECT_TRUE(ft->getApproxMemoryGain().getBefore() >
diff --git a/searchcore/src/tests/proton/documentdb/combiningfeedview/combiningfeedview_test.cpp b/searchcore/src/tests/proton/documentdb/combiningfeedview/combiningfeedview_test.cpp
index db20181eae7..dc51d0df8a1 100644
--- a/searchcore/src/tests/proton/documentdb/combiningfeedview/combiningfeedview_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/combiningfeedview/combiningfeedview_test.cpp
@@ -85,7 +85,7 @@ struct MyFeedView : public test::DummyFeedView
void handleDeleteBucket(const DeleteBucketOperation &) override { ++_handleDeleteBucket; }
void prepareMove(MoveOperation &) override { ++_prepareMove; }
void handleMove(const MoveOperation &, IDestructorCallback::SP) override { ++_handleMove; }
- void heartBeat(SerialNum) override { ++_heartBeat; }
+ void heartBeat(SerialNum, DoneCallback) override { ++_heartBeat; }
void handlePruneRemovedDocuments(const PruneRemovedDocumentsOperation &) override { ++_handlePrune; }
void handleCompactLidSpace(const CompactLidSpaceOperation &op, DoneCallback) override {
_wantedLidLimit = op.getLidLimit();
@@ -371,7 +371,7 @@ TEST_F("require that delete bucket is sent to all feed views", Fixture)
TEST_F("require that heart beat is sent to all feed views", Fixture)
{
- f._view.heartBeat(5);
+ f._view.heartBeat(5, IDestructorCallback::SP());
EXPECT_EQUAL(1u, f._ready._view->_heartBeat);
EXPECT_EQUAL(1u, f._removed._view->_heartBeat);
EXPECT_EQUAL(1u, f._notReady._view->_heartBeat);
diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
index f76b7d03d08..1963e5e9dbc 100644
--- a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
@@ -234,8 +234,8 @@ struct MyFeedView : public test::DummyFeedView {
(void) token;
++remove_count;
}
- void handleMove(const MoveOperation &, IDestructorCallback::SP) override { ++move_count; }
- void heartBeat(SerialNum) override { ++heartbeat_count; }
+ void handleMove(const MoveOperation &, DoneCallback) override { ++move_count; }
+ void heartBeat(SerialNum, DoneCallback) override { ++heartbeat_count; }
void handlePruneRemovedDocuments(const PruneRemovedDocumentsOperation &) override { ++prune_removed_count; }
const ISimpleDocumentMetaStore *getDocumentMetaStorePtr() const override {
return nullptr;
diff --git a/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp b/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp
index 6c45470bb42..4c566f6053b 100644
--- a/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/feedview/feedview_test.cpp
@@ -367,7 +367,7 @@ struct MyAttributeWriter : public IAttributeWriter
(void) doc;
(void) lid;
}
- void heartBeat(SerialNum) override { ++_heartBeatCount; }
+ void heartBeat(SerialNum, OnWriteDoneType) override { ++_heartBeatCount; }
void compactLidSpace(uint32_t wantedLidLimit, SerialNum ) override {
_wantedLidLimit = wantedLidLimit;
}
@@ -1053,7 +1053,11 @@ TEST_F("require that removes are not remembered", SearchableFeedViewFixture)
TEST_F("require that heartbeat propagates to index- and attributeadapter",
SearchableFeedViewFixture)
{
- f.runInMasterAndSyncAll([&]() { f.fv.heartBeat(2); });
+ vespalib::Gate gate;
+ f.runInMaster([&, onDone = std::make_shared<vespalib::GateCallback>(gate)]() {
+ f.fv.heartBeat(2, std::move(onDone));
+ });
+ gate.await();
EXPECT_EQUAL(1, f.miw._heartBeatCount);
EXPECT_EQUAL(1, f.maw._heartBeatCount);
}
diff --git a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp
index 526b94a3525..fb609b1829e 100644
--- a/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/storeonlyfeedview/storeonlyfeedview_test.cpp
@@ -114,12 +114,12 @@ struct MyMinimalFeedView : public MyMinimalFeedViewBase, public StoreOnlyFeedVie
StoreOnlyFeedView::removeIndexedFields(s, l, onWriteDone);
++removeMultiIndexFieldsCount;
}
- void heartBeatIndexedFields(SerialNum s) override {
- StoreOnlyFeedView::heartBeatIndexedFields(s);
+ void heartBeatIndexedFields(SerialNum s, IDestructorCallbackSP onDone) override {
+ StoreOnlyFeedView::heartBeatIndexedFields(s, onDone);
++heartBeatIndexedFieldsCount;
}
- void heartBeatAttributes(SerialNum s) override {
- StoreOnlyFeedView::heartBeatAttributes(s);
+ void heartBeatAttributes(SerialNum s, IDestructorCallbackSP onDone) override {
+ StoreOnlyFeedView::heartBeatAttributes(s, onDone);
++heartBeatAttributesCount;
}
};
@@ -399,7 +399,11 @@ TEST_F("require that heartbeat propagates and commits meta store", Fixture)
EXPECT_EQUAL(0, f.feedview->heartBeatIndexedFieldsCount);
EXPECT_EQUAL(0, f.feedview->heartBeatAttributesCount);
EXPECT_EQUAL(0, f.heartbeatCount);
- f.runInMasterAndSyncAll([&]() { f.feedview->heartBeat(2); });
+ vespalib::Gate gate;
+ f.runInMaster([&, onDone = std::make_shared<vespalib::GateCallback>(gate)]() {
+ f.feedview->heartBeat(2, std::move(onDone));
+ });
+ gate.await();
EXPECT_EQUAL(2u, f.metaStore->getStatus().getLastSyncToken());
EXPECT_EQUAL(1, f.feedview->heartBeatIndexedFieldsCount);
EXPECT_EQUAL(1, f.feedview->heartBeatAttributesCount);
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.cpp
index 77b6d8d1392..2863eab1443 100644
--- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.cpp
+++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.cpp
@@ -801,12 +801,13 @@ AttributeWriter::update(SerialNum serialNum, const DocumentUpdate &upd, Document
}
void
-AttributeWriter::heartBeat(SerialNum serialNum)
+AttributeWriter::heartBeat(SerialNum serialNum, OnWriteDoneType onDone)
{
for (auto entry : _attrMap) {
- _attributeFieldWriter.execute(entry.second.executor_id,
- [serialNum, attr=entry.second.attribute]()
- { applyHeartBeat(serialNum, *attr); });
+ _attributeFieldWriter.execute(entry.second.executor_id,[serialNum, attr=entry.second.attribute, onDone]() {
+ (void) onDone;
+ applyHeartBeat(serialNum, *attr);
+ });
}
}
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.h b/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.h
index dc543c19222..f43aab0f385 100644
--- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.h
+++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_writer.h
@@ -109,7 +109,7 @@ public:
void update(SerialNum serialNum, const DocumentUpdate &upd, DocumentIdT lid,
OnWriteDoneType onWriteDone, IFieldUpdateCallback & onUpdate) override;
void update(SerialNum serialNum, const Document &doc, DocumentIdT lid, OnWriteDoneType onWriteDone) override;
- void heartBeat(SerialNum serialNum) override;
+ void heartBeat(SerialNum serialNum, OnWriteDoneType onDone) override;
void compactLidSpace(uint32_t wantedLidLimit, SerialNum serialNum) override;
const proton::IAttributeManager::SP &getAttributeManager() const override {
return _mgr;
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/i_attribute_writer.h b/searchcore/src/vespa/searchcore/proton/attribute/i_attribute_writer.h
index 0f739f6ffea..e0bac5facd4 100644
--- a/searchcore/src/vespa/searchcore/proton/attribute/i_attribute_writer.h
+++ b/searchcore/src/vespa/searchcore/proton/attribute/i_attribute_writer.h
@@ -50,7 +50,7 @@ public:
* Update the underlying struct field attributes based on updated document.
*/
virtual void update(SerialNum serialNum, const Document &doc, DocumentIdT lid, OnWriteDoneType onWriteDone) = 0;
- virtual void heartBeat(SerialNum serialNum) = 0;
+ virtual void heartBeat(SerialNum serialNum, OnWriteDoneType onDone) = 0;
/**
* Compact the lid space of the underlying attribute vectors.
*/
diff --git a/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.cpp
index 18215b01ae2..23ca17c7656 100644
--- a/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.cpp
@@ -218,10 +218,10 @@ CombiningFeedView::handleMove(const MoveOperation &moveOp, IDestructorCallback::
}
void
-CombiningFeedView::heartBeat(search::SerialNum serialNum)
+CombiningFeedView::heartBeat(search::SerialNum serialNum, DoneCallback onDone)
{
for (const auto &view : _views) {
- view->heartBeat(serialNum);
+ view->heartBeat(serialNum, onDone);
}
}
diff --git a/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.h b/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.h
index 700787e126e..81a4f4f9588 100644
--- a/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.h
+++ b/searchcore/src/vespa/searchcore/proton/server/combiningfeedview.h
@@ -75,7 +75,7 @@ public:
void handleDeleteBucket(const DeleteBucketOperation &delOp) override;
void prepareMove(MoveOperation &putOp) override;
void handleMove(const MoveOperation &moveOp, std::shared_ptr<vespalib::IDestructorCallback> moveDoneCtx) override;
- void heartBeat(search::SerialNum serialNum) override;
+ void heartBeat(search::SerialNum serialNum, DoneCallback onDone) override;
void handlePruneRemovedDocuments(const PruneRemovedDocumentsOperation &pruneOp) override;
void handleCompactLidSpace(const CompactLidSpaceOperation &op, DoneCallback onDone) override;
diff --git a/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.cpp b/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.cpp
index 25be7e4f504..db8046dac23 100644
--- a/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.cpp
@@ -55,9 +55,9 @@ FastAccessFeedView::removeAttributes(SerialNum serialNum, const LidVector &lidsT
}
void
-FastAccessFeedView::heartBeatAttributes(SerialNum serialNum)
+FastAccessFeedView::heartBeatAttributes(SerialNum serialNum, DoneCallback onDone)
{
- _attributeWriter->heartBeat(serialNum);
+ _attributeWriter->heartBeat(serialNum, onDone);
}
FastAccessFeedView::FastAccessFeedView(StoreOnlyFeedView::Context storeOnlyCtx, const PersistentParams &params, const Context &ctx)
diff --git a/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.h b/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.h
index 3b8c755046c..efe47401855 100644
--- a/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.h
+++ b/searchcore/src/vespa/searchcore/proton/server/fast_access_feed_view.h
@@ -45,7 +45,7 @@ private:
void removeAttributes(SerialNum serialNum, const LidVector &lidsToRemove, OnWriteDoneType onWriteDone) override;
- void heartBeatAttributes(SerialNum serialNum) override;
+ void heartBeatAttributes(SerialNum serialNum, DoneCallback onDone) override;
protected:
void internalForceCommit(const CommitParam & param, OnForceCommitDoneType onCommitDone) override;
diff --git a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
index 51ea6425622..dc49aeb8f88 100644
--- a/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/feedhandler.cpp
@@ -754,7 +754,7 @@ FeedHandler::handleOperation(FeedToken token, FeedOperation::UP op)
}
void
-FeedHandler::handleMove(MoveOperation &op, std::shared_ptr<vespalib::IDestructorCallback> moveDoneCtx)
+FeedHandler::handleMove(MoveOperation &op, vespalib::IDestructorCallback::SP moveDoneCtx)
{
assert(_writeService.master().isCurrentThread());
op.set_prepare_serial_num(inc_prepare_serial_num());
@@ -771,7 +771,7 @@ FeedHandler::heartBeat()
{
assert(_writeService.master().isCurrentThread());
_heart_beat_time.store(vespalib::steady_clock::now());
- _activeFeedView->heartBeat(_serialNum);
+ _activeFeedView->heartBeat(_serialNum, vespalib::IDestructorCallback::SP());
}
FeedHandler::RPC::Result
diff --git a/searchcore/src/vespa/searchcore/proton/server/ifeedview.h b/searchcore/src/vespa/searchcore/proton/server/ifeedview.h
index 4c775e0a765..e0c9fe58c5b 100644
--- a/searchcore/src/vespa/searchcore/proton/server/ifeedview.h
+++ b/searchcore/src/vespa/searchcore/proton/server/ifeedview.h
@@ -58,7 +58,7 @@ public:
virtual void handleDeleteBucket(const DeleteBucketOperation &delOp) = 0;
virtual void prepareMove(MoveOperation &putOp) = 0;
virtual void handleMove(const MoveOperation &putOp, DoneCallback onDone) = 0;
- virtual void heartBeat(search::SerialNum serialNum) = 0;
+ virtual void heartBeat(search::SerialNum serialNum, DoneCallback onDone) = 0;
virtual void forceCommit(const CommitParam & param, DoneCallback onDone) = 0;
void forceCommit(CommitParam param) { forceCommit(param, DoneCallback()); }
void forceCommit(search::SerialNum serialNum) { forceCommit(CommitParam(serialNum)); }
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 6164624c210..dc7b48f0f02 100644
--- a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.cpp
@@ -80,9 +80,12 @@ SearchableFeedView::performIndexPut(SerialNum serialNum, search::DocumentIdT lid
}
void
-SearchableFeedView::heartBeatIndexedFields(SerialNum serialNum)
+SearchableFeedView::heartBeatIndexedFields(SerialNum serialNum, DoneCallback onDone)
{
- _writeService.index().execute(makeLambdaTask([this, serialNum] { performIndexHeartBeat(serialNum); }));
+ _writeService.index().execute(makeLambdaTask([this, serialNum, onDone] {
+ (void) onDone;
+ performIndexHeartBeat(serialNum);
+ }));
}
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 a97bebef702..7dd7879a136 100644
--- a/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h
+++ b/searchcore/src/vespa/searchcore/proton/server/searchable_feed_view.h
@@ -42,7 +42,7 @@ private:
void performIndexHeartBeat(SerialNum serialNum);
void internalDeleteBucket(const DeleteBucketOperation &delOp) override;
- void heartBeatIndexedFields(SerialNum serialNum) override;
+ void heartBeatIndexedFields(SerialNum serialNum, DoneCallback onDone) override;
void putIndexedFields(SerialNum serialNum, search::DocumentIdT lid, const DocumentSP &newDoc, OnOperationDoneType onWriteDone) override;
void updateIndexedFields(SerialNum serialNum, search::DocumentIdT lid, FutureDoc newDoc, OnOperationDoneType onWriteDone) override;
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
index c82a047e5e9..8ca0f232287 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
@@ -263,11 +263,11 @@ StoreOnlyFeedView::internalPut(FeedToken token, const PutOperation &putOp)
}
void
-StoreOnlyFeedView::heartBeatIndexedFields(SerialNum ) {}
+StoreOnlyFeedView::heartBeatIndexedFields(SerialNum, DoneCallback ) {}
void
-StoreOnlyFeedView::heartBeatAttributes(SerialNum ) {}
+StoreOnlyFeedView::heartBeatAttributes(SerialNum, DoneCallback ) {}
void
StoreOnlyFeedView::updateAttributes(SerialNum, Lid, const DocumentUpdate & upd,
@@ -368,9 +368,10 @@ StoreOnlyFeedView::removeSummaries(SerialNum serialNum, const LidVector & lids,
}
void
-StoreOnlyFeedView::heartBeatSummary(SerialNum serialNum) {
+StoreOnlyFeedView::heartBeatSummary(SerialNum serialNum, DoneCallback onDone) {
summaryExecutor().execute(
- makeLambdaTask([serialNum, this] {
+ makeLambdaTask([serialNum, this, onDone] {
+ (void) onDone;
_summaryAdapter->heartBeat(serialNum);
}));
}
@@ -720,14 +721,14 @@ StoreOnlyFeedView::handleMove(const MoveOperation &moveOp, IDestructorCallback::
}
void
-StoreOnlyFeedView::heartBeat(SerialNum serialNum)
+StoreOnlyFeedView::heartBeat(SerialNum serialNum, DoneCallback onDone)
{
assert(_writeService.master().isCurrentThread());
_metaStore.removeAllOldGenerations();
_metaStore.commit(CommitParam(serialNum));
- heartBeatSummary(serialNum);
- heartBeatIndexedFields(serialNum);
- heartBeatAttributes(serialNum);
+ heartBeatSummary(serialNum, onDone);
+ heartBeatIndexedFields(serialNum, onDone);
+ heartBeatAttributes(serialNum, onDone);
}
// CombiningFeedView calls this only for the removed subdb.
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
index 02332fcda6e..4b4082a8aa5 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h
@@ -58,7 +58,6 @@ public:
using OnOperationDoneType = const std::shared_ptr<OperationDoneContext> &;
using OnPutDoneType = const std::shared_ptr<PutDoneContext> &;
using OnRemoveDoneType = const std::shared_ptr<RemoveDoneContext> &;
- using FeedTokenUP = std::unique_ptr<FeedToken>;
using FutureDoc = std::shared_future<std::unique_ptr<const Document>>;
using PromisedDoc = std::promise<std::unique_ptr<const Document>>;
using FutureStream = std::future<vespalib::nbostream>;
@@ -161,7 +160,7 @@ private:
void putSummary(SerialNum serialNum, Lid lid, DocumentSP doc, OnOperationDoneType onDone);
void removeSummary(SerialNum serialNum, Lid lid, OnWriteDoneType onDone);
void removeSummaries(SerialNum serialNum, const LidVector & lids, OnWriteDoneType onDone);
- void heartBeatSummary(SerialNum serialNum);
+ void heartBeatSummary(SerialNum serialNum, DoneCallback onDone);
bool useDocumentStore(SerialNum replaySerialNum) const {
return replaySerialNum > _params._flushedDocumentStoreSerialNum;
@@ -191,8 +190,8 @@ private:
protected:
virtual void internalDeleteBucket(const DeleteBucketOperation &delOp);
- virtual void heartBeatIndexedFields(SerialNum serialNum);
- virtual void heartBeatAttributes(SerialNum serialNum);
+ virtual void heartBeatIndexedFields(SerialNum serialNum, DoneCallback onDone);
+ virtual void heartBeatAttributes(SerialNum serialNum, DoneCallback onDone);
private:
virtual void putAttributes(SerialNum serialNum, Lid lid, const Document &doc, OnPutDoneType onWriteDone);
@@ -235,7 +234,7 @@ public:
void handleDeleteBucket(const DeleteBucketOperation &delOp) override;
void prepareMove(MoveOperation &putOp) override;
void handleMove(const MoveOperation &putOp, std::shared_ptr<vespalib::IDestructorCallback> doneCtx) override;
- void heartBeat(search::SerialNum serialNum) override;
+ void heartBeat(search::SerialNum serialNum, DoneCallback onDone) override;
void forceCommit(const CommitParam & param, DoneCallback onDone) override;
/**
diff --git a/searchcore/src/vespa/searchcore/proton/test/dummy_feed_view.h b/searchcore/src/vespa/searchcore/proton/test/dummy_feed_view.h
index 61740c414ef..7f11bf9ec51 100644
--- a/searchcore/src/vespa/searchcore/proton/test/dummy_feed_view.h
+++ b/searchcore/src/vespa/searchcore/proton/test/dummy_feed_view.h
@@ -28,7 +28,7 @@ struct DummyFeedView : public IFeedView
void handleDeleteBucket(const DeleteBucketOperation &) override {}
void prepareMove(MoveOperation &) override {}
void handleMove(const MoveOperation &, std::shared_ptr<vespalib::IDestructorCallback>) override {}
- void heartBeat(search::SerialNum) override {}
+ void heartBeat(search::SerialNum, DoneCallback) override {}
void handlePruneRemovedDocuments(const PruneRemovedDocumentsOperation &) override {}
void handleCompactLidSpace(const CompactLidSpaceOperation &, DoneCallback) override {}
void forceCommit(const CommitParam &, DoneCallback) override { }