summaryrefslogtreecommitdiffstats
path: root/persistence
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-15 23:41:17 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-01-15 23:43:27 +0000
commit0012dd12346be82801761a3f1d2bcc044c26517c (patch)
tree8b9436860a29faf6a70ea8960f373dd60e613161 /persistence
parentbfa4fbddaa847c3fe593485951a528b60c5f6412 (diff)
Add failure detection and a sync method.
Diffstat (limited to 'persistence')
-rw-r--r--persistence/src/vespa/persistence/spi/bucketexecutor.h7
-rw-r--r--persistence/src/vespa/persistence/spi/clusterstate.h1
-rw-r--r--persistence/src/vespa/persistence/spi/persistenceprovider.h3
3 files changed, 5 insertions, 6 deletions
diff --git a/persistence/src/vespa/persistence/spi/bucketexecutor.h b/persistence/src/vespa/persistence/spi/bucketexecutor.h
index 318bec641fe..07c86fd5ffb 100644
--- a/persistence/src/vespa/persistence/spi/bucketexecutor.h
+++ b/persistence/src/vespa/persistence/spi/bucketexecutor.h
@@ -21,11 +21,14 @@ public:
};
/**
- * Interface for running a BucketTask
+ * Interface for running a BucketTask. If it fails the task will be returned.
+ * That would normally indicate a fatal error.
+ * sync() will be called during detatching to ensure the implementation is drained.
*/
struct BucketExecutor {
virtual ~BucketExecutor() = default;
- virtual void execute(const Bucket & bucket, std::unique_ptr<BucketTask> task) = 0;
+ virtual std::unique_ptr<BucketTask> execute(const Bucket & bucket, std::unique_ptr<BucketTask> task) = 0;
+ virtual void sync() = 0;
};
}
diff --git a/persistence/src/vespa/persistence/spi/clusterstate.h b/persistence/src/vespa/persistence/spi/clusterstate.h
index f5dda1fd745..9d2d3922a17 100644
--- a/persistence/src/vespa/persistence/spi/clusterstate.h
+++ b/persistence/src/vespa/persistence/spi/clusterstate.h
@@ -3,7 +3,6 @@
#include "bucket.h"
-
namespace storage::lib {
class ClusterState;
class Distribution;
diff --git a/persistence/src/vespa/persistence/spi/persistenceprovider.h b/persistence/src/vespa/persistence/spi/persistenceprovider.h
index eeb0f472f4a..3237dede24a 100644
--- a/persistence/src/vespa/persistence/spi/persistenceprovider.h
+++ b/persistence/src/vespa/persistence/spi/persistenceprovider.h
@@ -4,8 +4,6 @@
#include "bucket.h"
#include "bucketinfo.h"
#include "context.h"
-#include "docentry.h"
-#include "documentselection.h"
#include "result.h"
#include "selection.h"
#include "clusterstate.h"
@@ -17,7 +15,6 @@ namespace vespalib { class IDestructorCallback; }
namespace storage::spi {
class IResourceUsageListener;
-class BucketTask;
class BucketExecutor;
/**