diff options
Diffstat (limited to 'searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.h | 10 |
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; }; |