From 0012dd12346be82801761a3f1d2bcc044c26517c Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Fri, 15 Jan 2021 23:41:17 +0000 Subject: Add failure detection and a sync method. --- persistence/src/vespa/persistence/spi/bucketexecutor.h | 7 +++++-- persistence/src/vespa/persistence/spi/clusterstate.h | 1 - persistence/src/vespa/persistence/spi/persistenceprovider.h | 3 --- 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 task) = 0; + virtual std::unique_ptr execute(const Bucket & bucket, std::unique_ptr 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; /** -- cgit v1.2.3