diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-12 11:58:14 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-12 11:58:14 +0000 |
commit | be4d955b8bc9ab94d8ed1b72b03d5a112e196da2 (patch) | |
tree | 2b1e4860f80d2f27c38edc91397c546f99d4b203 | |
parent | 7af09657ed382216b3406e26c6f79bb43ba090e3 (diff) |
Follow up of PR comment with renaming and refactoring.
18 files changed, 97 insertions, 102 deletions
diff --git a/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp b/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp index 9834511eb6f..75c427aafd5 100644 --- a/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp +++ b/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp @@ -133,7 +133,7 @@ struct UnitDR : DocumentRetrieverBaseForTest { } return DocumentMetaData(); } - document::Document::UP getDocumentByLidOnly(DocumentIdT lid) const override { + document::Document::UP getFullDocument(DocumentIdT lid) const override { return Document::UP((lid == docid) ? document->clone() : nullptr); } @@ -179,11 +179,11 @@ struct VisitRecordingUnitDR : UnitDR { { } - document::Document::UP getDocumentByLidOnly(DocumentIdT lid) const override { + document::Document::UP getFullDocument(DocumentIdT lid) const override { if (lid == docid) { visited_lids.insert(lid); } - return UnitDR::getDocumentByLidOnly(lid); + return UnitDR::getFullDocument(lid); } }; @@ -262,9 +262,9 @@ struct PairDR : DocumentRetrieverBaseForTest { DocumentMetaData ret = first->getDocumentMetaData(id); return (ret.valid()) ? ret : second->getDocumentMetaData(id); } - document::Document::UP getDocumentByLidOnly(DocumentIdT lid) const override { - Document::UP ret = first->getDocumentByLidOnly(lid); - return ret ? std::move(ret) : second->getDocumentByLidOnly(lid); + document::Document::UP getFullDocument(DocumentIdT lid) const override { + Document::UP ret = first->getFullDocument(lid); + return ret ? std::move(ret) : second->getFullDocument(lid); } CachedSelect::SP parseSelect(const vespalib::string &selection) const override { diff --git a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp index ae8ee7686da..bdeb4a09685 100644 --- a/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp +++ b/searchcore/src/tests/proton/documentdb/documentbucketmover/documentbucketmover_test.cpp @@ -104,7 +104,7 @@ struct MyDocumentRetriever : public DocumentRetrieverBaseForTest const document::DocumentTypeRepo &getDocumentTypeRepo() const override { return *_repo; } void getBucketMetaData(const storage::spi::Bucket &, DocumentMetaData::Vector &) const override {} DocumentMetaData getDocumentMetaData(const DocumentId &) const override { return DocumentMetaData(); } - Document::UP getDocumentByLidOnly(DocumentIdT lid) const override { + Document::UP getFullDocument(DocumentIdT lid) const override { return Document::UP(_docs[lid]->clone()); } diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp index 44e053b8019..e045ec31418 100644 --- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp +++ b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp @@ -217,7 +217,7 @@ struct MyDocumentRetriever : public DocumentRetrieverBaseForTest { const document::DocumentTypeRepo& getDocumentTypeRepo() const override { return *repo; } void getBucketMetaData(const storage::spi::Bucket&, DocumentMetaData::Vector&) const override { abort(); } DocumentMetaData getDocumentMetaData(const DocumentId&) const override { abort(); } - Document::UP getDocumentByLidOnly(DocumentIdT lid) const override { + Document::UP getFullDocument(DocumentIdT lid) const override { return store.read(lid, *repo); } CachedSelect::SP parseSelect(const vespalib::string&) const override { abort(); } diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp index 9fc2450cb20..2540a991015 100644 --- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp +++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp @@ -171,7 +171,7 @@ struct MyDocumentRetriever : public DocumentRetrieverBaseForTest } Document::UP - getDocumentByLidOnly(DocumentIdT lid) const override + getFullDocument(DocumentIdT lid) const override { return _subDB.getDocument(lid); } diff --git a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp index d43622cced3..a31deca5d12 100644 --- a/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp +++ b/searchcore/src/tests/proton/persistenceengine/persistenceengine_test.cpp @@ -127,7 +127,7 @@ struct MyDocumentRetriever : DocumentRetrieverBaseForTest { } return DocumentMetaData(); } - document::Document::UP getDocumentByLidOnly(search::DocumentIdT) const override { + document::Document::UP getFullDocument(search::DocumentIdT) const override { if (document != nullptr) { return Document::UP(document->clone()); } diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.cpp b/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.cpp index 9b91ce0c2ce..bf0faab1cff 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.cpp +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.cpp @@ -28,18 +28,18 @@ CommitAndWaitDocumentRetriever::getDocumentMetaData(const document::DocumentId & } document::Document::UP -CommitAndWaitDocumentRetriever::getDocumentByLidOnly(search::DocumentIdT lid) const { +CommitAndWaitDocumentRetriever::getFullDocument(search::DocumentIdT lid) const { // Ensure that attribute vectors are committed _commit.commitAndWait(); - return _retriever->getDocumentByLidOnly(lid); + return _retriever->getFullDocument(lid); } document::Document::UP -CommitAndWaitDocumentRetriever::getDocument(search::DocumentIdT lid, const document::DocumentId & docId, - const document::FieldSet & fieldSet) const +CommitAndWaitDocumentRetriever::getPartialDocument(search::DocumentIdT lid, const document::DocumentId & docId, + const document::FieldSet & fieldSet) const { _commit.commitAndWait(); - return _retriever->getDocument(lid, docId, fieldSet); + return _retriever->getPartialDocument(lid, docId, fieldSet); } void diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.h b/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.h index e558513a83c..c03330164c0 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.h +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/commit_and_wait_document_retriever.h @@ -24,8 +24,8 @@ public: const document::DocumentTypeRepo &getDocumentTypeRepo() const override; void getBucketMetaData(const Bucket &bucket, search::DocumentMetaData::Vector &result) const override; search::DocumentMetaData getDocumentMetaData(const document::DocumentId &id) const override; - DocumentUP getDocumentByLidOnly(search::DocumentIdT lid) const override; - DocumentUP getDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const override; + DocumentUP getFullDocument(search::DocumentIdT lid) const override; + DocumentUP getPartialDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const override; void visitDocuments(const LidVector &lids, search::IDocumentVisitor &visitor, ReadConsistency readConsistency) const override; CachedSelect::SP parseSelect(const vespalib::string &selection) const override; ReadGuard getReadGuard() const override; diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.cpp b/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.cpp index 4678353d09a..952d1e8a693 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.cpp +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.cpp @@ -9,24 +9,24 @@ namespace proton { document::Document::UP IDocumentRetriever::getDocument(search::DocumentIdT lid, const document::DocumentId & docId) const { - return getDocument(lid, docId, document::AllFields()); -} - -void -DocumentRetrieverBaseForTest::visitDocuments(const LidVector &lids, search::IDocumentVisitor &visitor, ReadConsistency readConsistency) const { - (void) readConsistency; - for (uint32_t lid : lids) { - visitor.visit(lid, getDocumentByLidOnly(lid)); - } + return getPartialDocument(lid, docId, document::AllFields()); } document::Document::UP -DocumentRetrieverBaseForTest::getDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet & fieldSet) const { - auto doc = getDocumentByLidOnly(lid); +IDocumentRetriever::getPartialDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet & fieldSet) const { + auto doc = getFullDocument(lid); if (doc) { document::FieldSet::stripFields(*doc, fieldSet); } return doc; } +void +DocumentRetrieverBaseForTest::visitDocuments(const LidVector &lids, search::IDocumentVisitor &visitor, ReadConsistency readConsistency) const { + (void) readConsistency; + for (uint32_t lid : lids) { + visitor.visit(lid, getFullDocument(lid)); + } +} + } 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 06e8288eaa3..2d20ed7bc89 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/i_document_retriever.h @@ -38,11 +38,11 @@ public: /** * Extracts the full document based on the LID */ - virtual DocumentUP getDocumentByLidOnly(search::DocumentIdT lid) const = 0; + virtual DocumentUP getFullDocument(search::DocumentIdT lid) const = 0; /** * Fetches the necessary set of fields, allowing for more optimal fetch when combining only from attributes. */ - virtual DocumentUP getDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const = 0; + virtual DocumentUP getPartialDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const; virtual ReadGuard getReadGuard() const = 0; virtual uint32_t getDocIdLimit() const = 0; /** @@ -64,7 +64,6 @@ public: void visitDocuments(const LidVector &lids, search::IDocumentVisitor &visitor, ReadConsistency readConsistency) const override; ReadGuard getReadGuard() const override { return ReadGuard(); } uint32_t getDocIdLimit() const override { return std::numeric_limits<uint32_t>::max(); } - DocumentUP getDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet &) const override; }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp index acfec09e93b..b5166276e4a 100644 --- a/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp +++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/persistenceengine.cpp @@ -439,7 +439,7 @@ PersistenceEngine::get(const Bucket& b, const document::FieldSet& fields, const if (document::FieldSet::Type::NONE == fields.getType()) { return GetResult::make_for_metadata_only(meta.timestamp); } - document::Document::UP doc = retriever.getDocument(meta.lid, did, fields); + document::Document::UP doc = retriever.getPartialDocument(meta.lid, did, fields); if (!doc || doc->getId().getGlobalId() != meta.gid) { return GetResult(); } diff --git a/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp b/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp index c5a1eb0c1e3..3d5c51c4346 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp @@ -24,7 +24,7 @@ DocumentBucketMover::moveDocument(DocumentIdT lid, const document::GlobalId &gid, Timestamp timestamp) { - Document::SP doc(_source->retriever()->getDocumentByLidOnly(lid).release()); + Document::SP doc(_source->retriever()->getFullDocument(lid).release()); if (!doc || doc->getId().getGlobalId() != gid) return; // Failed to retrieve document, removed or changed identity // TODO(geirst): what if doc is NULL? diff --git a/searchcore/src/vespa/searchcore/proton/server/documentretriever.cpp b/searchcore/src/vespa/searchcore/proton/server/documentretriever.cpp index 83961033255..1560da124d7 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentretriever.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentretriever.cpp @@ -45,6 +45,31 @@ bool is_array_of_position_type(const document::DataType& field_type) noexcept { } +FieldSetAttributeDB::FieldSetAttributeDB(const IFieldInfo & fieldInfo) + : _fieldInfo(fieldInfo), + _isFieldSetAttributeOnly(), + _lock() +{} + +FieldSetAttributeDB::~FieldSetAttributeDB() = default; + +bool +FieldSetAttributeDB::areAllFieldsAttributes(uint64_t key, const document::Field::Set & set) const { + std::lock_guard guard(_lock); + auto found = _isFieldSetAttributeOnly.find(key); + if (found != _isFieldSetAttributeOnly.end()) { + return ! found->second; + } + + bool isAttributeOnly = true; + for (const document::Field * field : set) { + isAttributeOnly = _fieldInfo.isFieldAttribute(*field); + if (!isAttributeOnly) break; + } + _isFieldSetAttributeOnly[key] = isAttributeOnly; + return isAttributeOnly; +} + DocumentRetriever ::DocumentRetriever(const DocTypeName &docTypeName, const DocumentTypeRepo &repo, @@ -58,8 +83,8 @@ DocumentRetriever _doc_store(doc_store), _possiblePositionFields(), _attributeFields(), - _areAllFieldsAttributes(false), - _isFieldSetAttributeOnly() + _areAllFieldsAttributes(true), + _fieldSetAttributeInfo(*this) { const DocumentType * documentType = repo.getDocumentType(docTypeName.getName()); document::Field::Set fields = documentType->getFieldSet(); @@ -73,6 +98,8 @@ DocumentRetriever if (attr && attr->valid()) { LOG(debug, "Field '%s' is a registered attribute field", zcurve_name.c_str()); _possiblePositionFields.emplace_back(field, zcurve_name); + } else { + _areAllFieldsAttributes = false; } } else { const vespalib::string &name = field->getName(); @@ -83,6 +110,8 @@ DocumentRetriever && ((*attr)->getBasicType() != BasicType::REFERENCE)) { _attributeFields.insert(field); + } else { + _areAllFieldsAttributes = false; } } } @@ -92,18 +121,17 @@ bool DocumentRetriever::needFetchFromDocStore(const document::FieldSet & fieldSet) const { switch (fieldSet.getType()) { case document::FieldSet::Type::NONE: - return false; case document::FieldSet::Type::DOCID: return false; case document::FieldSet::Type::ALL: return ! _areAllFieldsAttributes; case document::FieldSet::Type::FIELD: { const auto & field = static_cast<const document::Field &>(fieldSet); - return needFetchFromDocStore(field.getId(), field); + return ! isFieldAttribute(field); } case document::FieldSet::Type::SET: { const auto &set = static_cast<const document::FieldCollection &>(fieldSet); - return needFetchFromDocStore(set.hash(), set.getFields()); + return ! _fieldSetAttributeInfo.areAllFieldsAttributes(set.hash(), set.getFields()); } default: abort(); @@ -113,51 +141,14 @@ DocumentRetriever::needFetchFromDocStore(const document::FieldSet & fieldSet) co bool DocumentRetriever::isFieldAttribute(const document::Field & field) const { return _attributeFields.find(&field) != _attributeFields.end(); -#if 0 - for (const document::Field * attr : _attributeFields) { - if (attr->getId() == field.getId()) { - return true; - } - } - return false; -#endif -} - -bool -DocumentRetriever::needFetchFromDocStore(uint64_t key, const document::Field & field) const { - std::lock_guard guard(_lock); - auto found = _isFieldSetAttributeOnly.find(key); - if (found != _isFieldSetAttributeOnly.end()) { - return ! found->second; - } - - bool isAttributeOnly = isFieldAttribute(field); - _isFieldSetAttributeOnly[key] = isAttributeOnly; - return isAttributeOnly; -} - -bool -DocumentRetriever::needFetchFromDocStore(uint64_t key, const document::Field::Set & set) const { - std::lock_guard guard(_lock); - auto found = _isFieldSetAttributeOnly.find(key); - if (found != _isFieldSetAttributeOnly.end()) { - return ! found->second; - } - - bool isAttributeOnly = true; - for (const document::Field * field : set) { - isAttributeOnly = isFieldAttribute(*field); - if (!isAttributeOnly) break; - } - _isFieldSetAttributeOnly[key] = isAttributeOnly; - return isAttributeOnly; } DocumentRetriever::~DocumentRetriever() = default; namespace { -FieldValue::UP positionFromZcurve(int64_t zcurve) { +std::unique_ptr<document::FieldValue> +positionFromZcurve(int64_t zcurve) { int32_t x, y; ZCurve::decode(zcurve, &x, &y); @@ -184,7 +175,8 @@ zcurve_array_attribute_to_field_value(const document::Field& field, return new_fv; } -void fillInPositionFields(Document &doc, DocumentIdT lid, const DocumentRetriever::PositionFields & possiblePositionFields, const IAttributeManager & attr_manager) +void +fillInPositionFields(Document &doc, DocumentIdT lid, const DocumentRetriever::PositionFields & possiblePositionFields, const IAttributeManager & attr_manager) { for (const auto & it : possiblePositionFields) { auto attr_guard = attr_manager.getAttribute(it.second); @@ -228,7 +220,7 @@ private: } // namespace Document::UP -DocumentRetriever::getDocumentByLidOnly(DocumentIdT lid) const +DocumentRetriever::getFullDocument(DocumentIdT lid) const { Document::UP doc = _doc_store.read(lid, getDocumentTypeRepo()); if (doc) { @@ -238,7 +230,7 @@ DocumentRetriever::getDocumentByLidOnly(DocumentIdT lid) const } Document::UP -DocumentRetriever::getDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const { +DocumentRetriever::getPartialDocument(search::DocumentIdT lid, const document::DocumentId & docId, const document::FieldSet & fieldSet) const { Document::UP doc; if (needFetchFromDocStore(fieldSet)) { doc = _doc_store.read(lid, getDocumentTypeRepo()); diff --git a/searchcore/src/vespa/searchcore/proton/server/documentretriever.h b/searchcore/src/vespa/searchcore/proton/server/documentretriever.h index 8e7de1cf152..bab8898c8ea 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentretriever.h +++ b/searchcore/src/vespa/searchcore/proton/server/documentretriever.h @@ -14,7 +14,25 @@ namespace search::index { class Schema; } namespace proton { -class DocumentRetriever : public DocumentRetrieverBase { +struct IFieldInfo { + virtual ~IFieldInfo() = default; + virtual bool isFieldAttribute(const document::Field & field) const = 0; +}; + +class FieldSetAttributeDB { +public: + FieldSetAttributeDB(const IFieldInfo & fieldInfo); + ~FieldSetAttributeDB(); + bool areAllFieldsAttributes(uint64_t key, const document::Field::Set & set) const; +private: + using FieldSetAttributeMap = vespalib::hash_map<uint64_t, bool>; + const IFieldInfo & _fieldInfo; + mutable FieldSetAttributeMap _isFieldSetAttributeOnly; + mutable std::mutex _lock; +}; + +class DocumentRetriever : public DocumentRetrieverBase, + public IFieldInfo { public: typedef std::vector<std::pair<const document::Field *, vespalib::string>> PositionFields; DocumentRetriever(const DocTypeName &docTypeName, @@ -25,26 +43,22 @@ public: const search::IDocumentStore &doc_store); ~DocumentRetriever() override; - document::Document::UP getDocumentByLidOnly(search::DocumentIdT lid) const override; + document::Document::UP getFullDocument(search::DocumentIdT lid) const override; void visitDocuments(const LidVector & lids, search::IDocumentVisitor & visitor, ReadConsistency) const override; - DocumentUP getDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet &) const override; + DocumentUP getPartialDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet &) const override; void populate(search::DocumentIdT lid, document::Document & doc) const; bool needFetchFromDocStore(const document::FieldSet &) const; private: - using FieldSetAttributeMap = vespalib::hash_map<uint64_t, bool>; - bool needFetchFromDocStore(uint64_t key, const document::Field &) const; - bool needFetchFromDocStore(uint64_t key, const document::Field::Set &) const; void populate(search::DocumentIdT lid, document::Document & doc, const document::Field::Set & attributeFields) const; - bool isFieldAttribute(const document::Field & field) const; + bool isFieldAttribute(const document::Field & field) const override; const search::index::Schema &_schema; const search::IAttributeManager &_attr_manager; const search::IDocumentStore &_doc_store; PositionFields _possiblePositionFields; document::Field::Set _attributeFields; bool _areAllFieldsAttributes; - mutable FieldSetAttributeMap _isFieldSetAttributeOnly; - mutable std::mutex _lock; + FieldSetAttributeDB _fieldSetAttributeInfo; const search::IAttributeManager * getAttrMgr() const override; }; diff --git a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp index 698308c7610..1476a699adb 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.cpp @@ -87,13 +87,4 @@ DocumentRetrieverBase::parseSelect(const vespalib::string &selection) const return nselect; } -document::Document::UP -DocumentRetrieverBase::getDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet & fieldSet) const { - auto doc = getDocumentByLidOnly(lid); - if (doc) { - document::FieldSet::stripFields(*doc, fieldSet); - } - return doc; -} - } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.h b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.h index b2780c89395..351a0c9142b 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.h +++ b/searchcore/src/vespa/searchcore/proton/server/documentretrieverbase.h @@ -39,7 +39,6 @@ public: const document::DocumentTypeRepo &getDocumentTypeRepo() const override; void getBucketMetaData(const storage::spi::Bucket &bucket, search::DocumentMetaData::Vector &result) const override; search::DocumentMetaData getDocumentMetaData(const document::DocumentId &id) const override; - DocumentUP getDocument(search::DocumentIdT lid, const document::DocumentId &, const document::FieldSet &) const override; CachedSelect::SP parseSelect(const vespalib::string &selection) const override; ReadGuard getReadGuard() const override { return _meta_store.getReadGuard(); } uint32_t getDocIdLimit() const override { return _meta_store.getReadGuard()->get().getCommittedDocIdLimit(); } diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_handler.cpp b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_handler.cpp index dfaf218036d..8aeaf7fd9e4 100644 --- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_handler.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_handler.cpp @@ -46,7 +46,7 @@ MoveOperation::UP LidSpaceCompactionHandler::createMoveOperation(const search::DocumentMetaData &document, uint32_t moveToLid) const { const uint32_t moveFromLid = document.lid; - auto doc = _subDb.retriever()->getDocumentByLidOnly(moveFromLid); + auto doc = _subDb.retriever()->getFullDocument(moveFromLid); auto op = std::make_unique<MoveOperation>(document.bucketId, document.timestamp, Document::SP(doc.release()), DbDocumentId(_subDb.sub_db_id(), moveFromLid), diff --git a/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.cpp b/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.cpp index 5751a0ae4de..a9fab85ae0d 100644 --- a/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.cpp @@ -24,7 +24,7 @@ MinimalDocumentRetriever::MinimalDocumentRetriever( MinimalDocumentRetriever::~MinimalDocumentRetriever() = default; Document::UP -MinimalDocumentRetriever::getDocumentByLidOnly(DocumentIdT lid) const { +MinimalDocumentRetriever::getFullDocument(DocumentIdT lid) const { return _doc_store.read(lid, *_repo); } diff --git a/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.h b/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.h index 8a99ae0ac5e..d7265915753 100644 --- a/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.h +++ b/searchcore/src/vespa/searchcore/proton/server/minimal_document_retriever.h @@ -27,7 +27,7 @@ public: bool hasFields); ~MinimalDocumentRetriever() override; - document::Document::UP getDocumentByLidOnly(search::DocumentIdT lid) const override; + document::Document::UP getFullDocument(search::DocumentIdT lid) const override; void visitDocuments(const LidVector & lids, search::IDocumentVisitor & visitor, ReadConsistency) const override; }; } // namespace proton |