diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-09 15:33:24 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-05-09 15:33:24 +0000 |
commit | ab621028c9ae3fb53feabc2729548f1670060b9b (patch) | |
tree | 62ebcd78198529821c8197a6b58d2d67a385e9a3 /searchcore | |
parent | a6631a58866ba5c1099cbaa572bab7f3c3fb49e6 (diff) |
Use shared_ptr for the read guard
Diffstat (limited to 'searchcore')
13 files changed, 30 insertions, 28 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.cpp b/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.cpp index ffb9acd5501..c8a5f925ed1 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.cpp @@ -12,7 +12,7 @@ using vespalib::slime::Inserter; namespace proton { -DocumentMetaStoreExplorer::DocumentMetaStoreExplorer(IDocumentMetaStoreContext::IReadGuard::UP metaStore) +DocumentMetaStoreExplorer::DocumentMetaStoreExplorer(IDocumentMetaStoreContext::IReadGuard::SP metaStore) : _metaStore(std::move(metaStore)) { } diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.h index 978fd0b4a14..453c57ddcf1 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.h +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.h @@ -13,10 +13,10 @@ namespace proton { class DocumentMetaStoreExplorer : public vespalib::StateExplorer { private: - IDocumentMetaStoreContext::IReadGuard::UP _metaStore; + IDocumentMetaStoreContext::IReadGuard::SP _metaStore; public: - DocumentMetaStoreExplorer(IDocumentMetaStoreContext::IReadGuard::UP metaStore); + DocumentMetaStoreExplorer(IDocumentMetaStoreContext::IReadGuard::SP metaStore); void get_state(const vespalib::slime::Inserter &inserter, bool full) const override; }; diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastorecontext.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastorecontext.h index f85515922f9..81fecb75ea1 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastorecontext.h +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastorecontext.h @@ -46,8 +46,8 @@ public: std::shared_ptr<proton::IDocumentMetaStore> getSP() const override { return _metaStore; } proton::IDocumentMetaStore & get() override { return *_metaStore; } - IReadGuard::UP getReadGuard() const override { - return std::make_unique<ReadGuard>(_metaStoreAttr); + IReadGuard::SP getReadGuard() const override { + return std::make_shared<ReadGuard>(_metaStoreAttr); } void constructFreeList() override; diff --git a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp index 0d5edf44d05..ddd8d83fd3b 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp @@ -27,7 +27,8 @@ RequestContext::RequestContext(const Doom & doom, IAttributeContext & attributeC _attributeContext(attributeContext), _query_env(query_env), _shared_store(shared_store), - _attribute_blueprint_params(attribute_blueprint_params) + _attribute_blueprint_params(attribute_blueprint_params), + _metaStoreReadGuard(nullptr) { } @@ -63,10 +64,4 @@ RequestContext::get_query_tensor(const vespalib::string& tensor_name) const } } -const search::attribute::AttributeBlueprintParams& -RequestContext::get_attribute_blueprint_params() const -{ - return _attribute_blueprint_params; -} - } diff --git a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h index 9ab9acc6d71..661e5fbd208 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h +++ b/searchcore/src/vespa/searchcore/proton/matching/requestcontext.h @@ -37,14 +37,20 @@ public: const vespalib::eval::Value* get_query_tensor(const vespalib::string& tensor_name) const override; - const search::attribute::AttributeBlueprintParams& get_attribute_blueprint_params() const override; + const search::attribute::AttributeBlueprintParams& get_attribute_blueprint_params() const override { + return _attribute_blueprint_params; + } + const MetaStoreReadGuardSP * getMetaStoreReadGuard() const override { + return _metaStoreReadGuard; + } private: - const Doom _doom; - IAttributeContext & _attributeContext; - const search::fef::IQueryEnvironment& _query_env; - search::fef::IObjectStore& _shared_store; - search::attribute::AttributeBlueprintParams _attribute_blueprint_params; + const Doom _doom; + IAttributeContext & _attributeContext; + const search::fef::IQueryEnvironment & _query_env; + search::fef::IObjectStore & _shared_store; + search::attribute::AttributeBlueprintParams _attribute_blueprint_params; + const MetaStoreReadGuardSP * _metaStoreReadGuard; }; } diff --git a/searchcore/src/vespa/searchcore/proton/matching/search_session.h b/searchcore/src/vespa/searchcore/proton/matching/search_session.h index 4fc71b30f0a..2cc37a07564 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/search_session.h +++ b/searchcore/src/vespa/searchcore/proton/matching/search_session.h @@ -29,7 +29,7 @@ public: std::shared_ptr<const ISearchHandler> search_handler; std::unique_ptr<search::fef::Properties> feature_overrides; std::unique_ptr<MatchContext> context; - IDocumentMetaStoreContext::IReadGuard::UP readGuard; + IDocumentMetaStoreContext::IReadGuard::SP readGuard; }; private: using SessionId = vespalib::string; diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h index 529b7759530..c2dba032ad1 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h @@ -23,7 +23,7 @@ class IDocumentRetriever { public: using ReadConsistency = storage::spi::ReadConsistency; - using ReadGuard = IDocumentMetaStoreContext::IReadGuard::UP; + using ReadGuard = IDocumentMetaStoreContext::IReadGuard::SP; using UP = std::unique_ptr<IDocumentRetriever>; using SP = std::shared_ptr<IDocumentRetriever>; diff --git a/searchcore/src/vespa/searchcore/proton/reference/gid_to_lid_mapper.h b/searchcore/src/vespa/searchcore/proton/reference/gid_to_lid_mapper.h index b0831bf2fcc..dd0e462aa49 100644 --- a/searchcore/src/vespa/searchcore/proton/reference/gid_to_lid_mapper.h +++ b/searchcore/src/vespa/searchcore/proton/reference/gid_to_lid_mapper.h @@ -15,7 +15,7 @@ class DocumentMetaStore; */ class GidToLidMapper : public search::IGidToLidMapper { - search::IDocumentMetaStoreContext::IReadGuard::UP _guard; + search::IDocumentMetaStoreContext::IReadGuard::SP _guard; public: GidToLidMapper(const search::IDocumentMetaStoreContext &dmsContext); virtual ~GidToLidMapper(); diff --git a/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h b/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h index be22737a793..a0dac2b573c 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h +++ b/searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h @@ -14,9 +14,9 @@ class DocumentSubDBCollection; */ struct DocumentMetaStoreReadGuards { - IDocumentMetaStoreContext::IReadGuard::UP readydms; - IDocumentMetaStoreContext::IReadGuard::UP notreadydms; - IDocumentMetaStoreContext::IReadGuard::UP remdms; + IDocumentMetaStoreContext::IReadGuard::SP readydms; + IDocumentMetaStoreContext::IReadGuard::SP notreadydms; + IDocumentMetaStoreContext::IReadGuard::SP remdms; DocumentMetaStoreReadGuards(const DocumentSubDBCollection &subDBs); ~DocumentMetaStoreReadGuards(); diff --git a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp index bb7d80c5ebc..8c6a3672829 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp @@ -40,7 +40,7 @@ void DocumentRetrieverBase::getBucketMetaData( const storage::spi::Bucket &bucket, search::DocumentMetaData::Vector &result) const { - IDocumentMetaStoreContext::IReadGuard::UP readGuard = _meta_store.getReadGuard(); + ReadGuard readGuard = _meta_store.getReadGuard(); const search::IDocumentMetaStore &meta_store = readGuard->get(); meta_store.getMetaData(bucket, result); } @@ -48,7 +48,7 @@ DocumentRetrieverBase::getBucketMetaData( search::DocumentMetaData DocumentRetrieverBase::getDocumentMetaData(const DocumentId &id) const { const GlobalId &gid = id.getGlobalId(); - IDocumentMetaStoreContext::IReadGuard::UP readGuard = _meta_store.getReadGuard(); + ReadGuard readGuard = _meta_store.getReadGuard(); const search::IDocumentMetaStore &meta_store = readGuard->get(); return meta_store.getMetaData(gid); } diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp index 4683b27bae3..8fce39e5ede 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp @@ -160,7 +160,7 @@ bool StoreOnlyDocSubDB::hasDocument(const document::DocumentId &id) { search::DocumentIdT lid; - IDocumentMetaStoreContext::IReadGuard::UP guard = _metaStoreCtx->getReadGuard(); + auto guard = _metaStoreCtx->getReadGuard(); return guard->get().getLid(id.getGlobalId(), lid); } diff --git a/searchcore/src/vespa/searchcore/proton/test/document_meta_store_context_observer.h b/searchcore/src/vespa/searchcore/proton/test/document_meta_store_context_observer.h index b763942216d..8d8f1ee860a 100644 --- a/searchcore/src/vespa/searchcore/proton/test/document_meta_store_context_observer.h +++ b/searchcore/src/vespa/searchcore/proton/test/document_meta_store_context_observer.h @@ -26,7 +26,7 @@ struct DocumentMetaStoreContextObserver : public IDocumentMetaStoreContext // Implements IDocumentMetaStoreContext proton::IDocumentMetaStore::SP getSP() const override { return _observer; } proton::IDocumentMetaStore & get() override { return *_observer; } - IReadGuard::UP getReadGuard() const override { return _context.getReadGuard(); } + IReadGuard::SP getReadGuard() const override { return _context.getReadGuard(); } void constructFreeList() override { return _context.constructFreeList(); } }; diff --git a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h index 2bef9df4872..f46a1acd272 100644 --- a/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h +++ b/searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h @@ -84,6 +84,7 @@ private: const IAttributeVector *getAttributeStableEnum(const vespalib::string &) const override { return nullptr; } const vespalib::eval::Value* get_query_tensor(const vespalib::string&) const override; const AttributeBlueprintParams& get_attribute_blueprint_params() const override { return _params; } + const MetaStoreReadGuardSP * getMetaStoreReadGuard() const override { return nullptr; } private: const vespalib::Doom _doom; const AttributeBlueprintParams _params; |