summaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/documentdb
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-10-24 12:19:43 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-10-30 08:46:13 +0000
commiteb6c18afb1fe2637545ac4fec163f7d043682108 (patch)
tree33daad971e841dd8d987249e5768658ae4872f54 /searchcore/src/tests/proton/documentdb
parent333b44e0d7a2f1e4c251fe1c95103ad287cfbf5f (diff)
BucketMove is 3 phased, startMove, createMoveOps, completeMove.
First and last happens in master, while second happens in bucket executor. As feed might happen inbetween these phases, care must be taken to check that the state for a document is the same in complete as it was in first phase. If not the move must be retried.
Diffstat (limited to 'searchcore/src/tests/proton/documentdb')
-rw-r--r--searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.cpp3
-rw-r--r--searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h2
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp7
3 files changed, 7 insertions, 5 deletions
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.cpp b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.cpp
index 0359c13a5f7..ff44d898997 100644
--- a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.cpp
+++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.cpp
@@ -28,7 +28,7 @@ MyMoveHandler::MyMoveHandler(bucketdb::BucketDBOwner &bucketDb, bool storeMoveDo
MyMoveHandler::~MyMoveHandler() = default;
-void
+IDocumentMoveHandler::MoveResult
MyMoveHandler::handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx) {
_moves.push_back(op);
if (_bucketDb.takeGuard()->isCachedBucket(op.getBucketId())) {
@@ -37,6 +37,7 @@ MyMoveHandler::handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx
if (_storeMoveDoneContexts) {
_moveDoneContexts.push_back(std::move(moveDoneCtx));
}
+ return MoveResult::SUCCESS;
}
MySubDb::MySubDb(const std::shared_ptr<const DocumentTypeRepo> &repo, std::shared_ptr<bucketdb::BucketDBOwner> bucketDB,
diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h
index 9d5c4e0e4ec..ded00589f60 100644
--- a/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h
+++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/bucketmover_common.h
@@ -43,7 +43,7 @@ struct MyMoveHandler : public IDocumentMoveHandler {
MyMoveHandler(bucketdb::BucketDBOwner &bucketDb, bool storeMoveDoneContext = false);
~MyMoveHandler() override;
- void handleMove(MoveOperation &op, vespalib::IDestructorCallback::SP moveDoneCtx) override;
+ MoveResult handleMove(MoveOperation &op, vespalib::IDestructorCallback::SP moveDoneCtx) override;
void reset() {
_moves.clear();
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index 2a074a7404c..509210679da 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -40,7 +40,6 @@
#include <vespa/vespalib/util/gate.h>
#include <vespa/vespalib/util/lambdatask.h>
#include <vespa/vespalib/util/monitored_refcount.h>
-#include <vespa/vespalib/util/size_literals.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
#include <unistd.h>
#include <thread>
@@ -216,7 +215,8 @@ public:
~MyFeedHandler() override;
bool isExecutorThread() const;
- void handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx) override;
+
+ MoveResult handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx) override;
void performPruneRemovedDocuments(PruneRemovedDocumentsOperation &op) override;
void heartBeat() override;
@@ -624,7 +624,7 @@ MyFeedHandler::isExecutorThread() const
}
-void
+IDocumentMoveHandler::MoveResult
MyFeedHandler::handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx)
{
assert(isExecutorThread());
@@ -640,6 +640,7 @@ MyFeedHandler::handleMove(MoveOperation &op, IDestructorCallback::SP moveDoneCtx
appendOperation(op, std::move(moveDoneCtx));
_subDBs[op.getSubDbId()]->handleMove(op);
_subDBs[op.getPrevSubDbId()]->handleMove(op);
+ return MoveResult::SUCCESS;
}