summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-05-09 15:33:24 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-05-09 15:33:24 +0000
commitab621028c9ae3fb53feabc2729548f1670060b9b (patch)
tree62ebcd78198529821c8197a6b58d2d67a385e9a3 /searchcore
parenta6631a58866ba5c1099cbaa572bab7f3c3fb49e6 (diff)
Use shared_ptr for the read guard
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/document_meta_store_explorer.h4
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastorecontext.h4
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/requestcontext.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/requestcontext.h18
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/search_session.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/reference/gid_to_lid_mapper.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/document_meta_store_read_guards.h6
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/document_meta_store_context_observer.h2
-rw-r--r--searchcore/src/vespa/searchcorespi/index/warmupindexcollection.h1
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;