summaryrefslogtreecommitdiffstats
path: root/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h')
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
index d9a27f9e460..dec336b05e4 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h
@@ -59,8 +59,14 @@ private:
in_use(false),
bucket_guards() {}
};
+ struct BucketSpaceHash {
+ std::size_t operator() (const document::BucketSpace &bucketSpace) const { return bucketSpace.getId(); }
+ };
+
typedef std::map<IteratorId, IteratorEntry *> Iterators;
typedef std::vector<std::shared_ptr<BucketIdListResult> > BucketIdListResultV;
+ using ExtraModifiedBuckets = std::unordered_map<BucketSpace, BucketIdListResultV, BucketSpaceHash>;
+
const ssize_t _defaultSerializedSize;
const bool _ignoreMaxBytes;
@@ -71,7 +77,7 @@ private:
IPersistenceEngineOwner &_owner;
const IResourceWriteFilter &_writeFilter;
ClusterState::SP _clusterState;
- mutable BucketIdListResultV _extraModifiedBuckets;
+ mutable ExtraModifiedBuckets _extraModifiedBuckets;
mutable std::shared_timed_mutex _rwMutex;
IPersistenceHandler::SP getHandler(document::BucketSpace bucketSpace,
@@ -124,7 +130,7 @@ public:
void destroyIterators();
void propagateSavedClusterState(IPersistenceHandler &handler);
- void grabExtraModifiedBuckets(IPersistenceHandler &handler);
+ void grabExtraModifiedBuckets(BucketSpace bucketSpace, IPersistenceHandler &handler);
void populateInitialBucketDB(BucketSpace bucketSpace, IPersistenceHandler &targetHandler);
std::unique_lock<std::shared_timed_mutex> getWLock() const;
};