diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-10-13 12:13:03 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-10-13 12:13:03 +0000 |
commit | 0bcf3d9bcc4149f6e685bee49d4008e02bc70d36 (patch) | |
tree | 984e2cddf06d78a9906c7bbd5b9c15dc1f6dc452 /searchcore | |
parent | 7969913ee302ec4a19c38c529b99ce12edddb5b7 (diff) |
Various cleanup while reading sorting code in backend.
Diffstat (limited to 'searchcore')
8 files changed, 53 insertions, 57 deletions
diff --git a/searchcore/src/tests/proton/attribute/attribute_manager/attribute_manager_test.cpp b/searchcore/src/tests/proton/attribute/attribute_manager/attribute_manager_test.cpp index 95f0cff088d..0e3445d0785 100644 --- a/searchcore/src/tests/proton/attribute/attribute_manager/attribute_manager_test.cpp +++ b/searchcore/src/tests/proton/attribute/attribute_manager/attribute_manager_test.cpp @@ -43,8 +43,6 @@ #include <vespa/log/log.h> LOG_SETUP("attribute_manager_test"); -namespace vespa { namespace config { namespace search {}}} - using std::string; using namespace vespa::config::search; using namespace config; @@ -258,7 +256,7 @@ ParallelAttributeManager::ParallelAttributeManager(search::SerialNum configSeria masterExecutor(1, 128_Ki), master(masterExecutor), initializer(std::make_shared<AttributeManagerInitializer>(configSerialNum, documentMetaStoreInitTask, - documentMetaStore, baseAttrMgr, attrCfg, + documentMetaStore, *baseAttrMgr, attrCfg, alloc_strategy, fastAccessAttributesOnly, master, mgr)) { diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp index fb99ca51e3a..3d6d522dd44 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp @@ -30,7 +30,7 @@ public: DocumentMetaStore::SP documentMetaStore, InitializedAttributesResult &result) : _initializer(std::move(initializer)), - _documentMetaStore(documentMetaStore), + _documentMetaStore(std::move(documentMetaStore)), _result(result) {} @@ -74,8 +74,8 @@ AttributeManagerInitializerTask::AttributeManagerInitializerTask(std::promise<vo InitializedAttributesResult &attributesResult) : _promise(std::move(promise)), _configSerialNum(configSerialNum), - _documentMetaStore(documentMetaStore), - _attrMgr(attrMgr), + _documentMetaStore(std::move(documentMetaStore)), + _attrMgr(std::move(attrMgr)), _attributesResult(attributesResult) { } @@ -104,7 +104,7 @@ public: InitializerTask::SP documentMetaStoreInitTask, DocumentMetaStore::SP documentMetaStore, InitializedAttributesResult &attributesResult); - ~AttributeInitializerTasksBuilder(); + ~AttributeInitializerTasksBuilder() override; void add(AttributeInitializer::UP initializer) override; }; @@ -113,8 +113,8 @@ AttributeInitializerTasksBuilder::AttributeInitializerTasksBuilder(InitializerTa DocumentMetaStore::SP documentMetaStore, InitializedAttributesResult &attributesResult) : _attrMgrInitTask(attrMgrInitTask), - _documentMetaStoreInitTask(documentMetaStoreInitTask), - _documentMetaStore(documentMetaStore), + _documentMetaStoreInitTask(std::move(documentMetaStoreInitTask)), + _documentMetaStore(std::move(documentMetaStore)), _attributesResult(attributesResult) { } @@ -143,7 +143,7 @@ AttributeManagerInitializer::createAttributeSpec() const AttributeManagerInitializer::AttributeManagerInitializer(SerialNum configSerialNum, initializer::InitializerTask::SP documentMetaStoreInitTask, DocumentMetaStore::SP documentMetaStore, - AttributeManager::SP baseAttrMgr, + const AttributeManager & baseAttrMgr, const AttributesConfig &attrCfg, const AllocStrategy& alloc_strategy, bool fastAccessAttributesOnly, @@ -157,12 +157,12 @@ AttributeManagerInitializer::AttributeManagerInitializer(SerialNum configSerialN _fastAccessAttributesOnly(fastAccessAttributesOnly), _master(master), _attributesResult(), - _attrMgrResult(attrMgrResult) + _attrMgrResult(std::move(attrMgrResult)) { addDependency(documentMetaStoreInitTask); - AttributeInitializerTasksBuilder tasksBuilder(*this, documentMetaStoreInitTask, documentMetaStore, _attributesResult); + AttributeInitializerTasksBuilder tasksBuilder(*this, std::move(documentMetaStoreInitTask), std::move(documentMetaStore), _attributesResult); std::unique_ptr<AttributeCollectionSpec> attrSpec = createAttributeSpec(); - _attrMgr = std::make_shared<AttributeManager>(*baseAttrMgr, std::move(*attrSpec), tasksBuilder); + _attrMgr = std::make_shared<AttributeManager>(baseAttrMgr, std::move(*attrSpec), tasksBuilder); } AttributeManagerInitializer::~AttributeManagerInitializer() = default; diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.h b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.h index 99b6b026f8f..79203696ea1 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.h +++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.h @@ -10,7 +10,7 @@ #include <vespa/searchlib/common/serialnum.h> #include <vespa/config-attributes.h> -namespace searchcorespi { namespace index { struct IThreadService; } } +namespace searchcorespi::index { struct IThreadService; } namespace proton { @@ -36,7 +36,7 @@ public: AttributeManagerInitializer(search::SerialNum configSerialNum, initializer::InitializerTask::SP documentMetaStoreInitTask, DocumentMetaStore::SP documentMetaStore, - AttributeManager::SP baseAttrMgr, + const AttributeManager & baseAttrMgr, const vespa::config::search::AttributesConfig &attrCfg, const AllocStrategy& alloc_strategy, bool fastAccessAttributesOnly, diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp index be8bcd8e66a..939ae196de8 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp @@ -79,8 +79,8 @@ allocShrinker(const AttributeVector::SP &attr, vespalib::ISequencedTaskExecutor } -AttributeManager::AttributeWrap::AttributeWrap(const AttributeVectorSP & a, bool isExtra_) - : _attr(a), +AttributeManager::AttributeWrap::AttributeWrap(AttributeVectorSP a, bool isExtra_) + : _attr(std::move(a)), _isExtra(isExtra_) { } @@ -94,15 +94,15 @@ AttributeManager::AttributeWrap::AttributeWrap() AttributeManager::AttributeWrap::~AttributeWrap() = default; AttributeManager::AttributeWrap -AttributeManager::AttributeWrap::extraAttribute(const AttributeVectorSP &a) +AttributeManager::AttributeWrap::extraAttribute(AttributeVectorSP a) { - return AttributeWrap(a, true); + return {std::move(a), true}; } AttributeManager::AttributeWrap -AttributeManager::AttributeWrap::normalAttribute(const AttributeVectorSP &a) +AttributeManager::AttributeWrap::normalAttribute(AttributeVectorSP a) { - return AttributeWrap(a, false); + return {std::move(a), false}; } AttributeManager::FlushableWrap::FlushableWrap() @@ -136,18 +136,20 @@ AttributeManager::internalAddAttribute(AttributeSpec && spec, } void -AttributeManager::addAttribute(const AttributeWrap &attribute, const ShrinkerSP &shrinker) -{ - LOG(debug, "Adding attribute vector '%s'", attribute.getAttribute()->getName().c_str()); - _attributes[attribute.getAttribute()->getName()] = attribute; - assert(attribute.getAttribute()->getInterlock() == _interlock); - if ( ! attribute.isExtra() ) { +AttributeManager::addAttribute(AttributeWrap attributeWrap, const ShrinkerSP &shrinker) +{ + AttributeVector::SP attribute = attributeWrap.getAttribute(); + bool isExtra = attributeWrap.isExtra(); + const vespalib::string &name = attribute->getName(); + LOG(debug, "Adding attribute vector '%s'", name.c_str()); + _attributes[name] = std::move(attributeWrap); + assert(attribute->getInterlock() == _interlock); + if ( ! isExtra ) { // Flushing of extra attributes is handled elsewhere - auto attr = attribute.getAttribute(); - const vespalib::string &name = attr->getName(); - auto flusher = std::make_shared<FlushableAttribute>(attr, _diskLayout->createAttributeDir(name), _tuneFileAttributes, _fileHeaderContext, _attributeFieldWriter, _hwInfo); - _flushables[attribute.getAttribute()->getName()] = FlushableWrap(flusher, shrinker); - _writableAttributes.push_back(attribute.getAttribute().get()); + AttributeVector * attributeP = attribute.get(); + auto flusher = std::make_shared<FlushableAttribute>(std::move(attribute), _diskLayout->createAttributeDir(name), _tuneFileAttributes, _fileHeaderContext, _attributeFieldWriter, _hwInfo); + _flushables[name] = FlushableWrap(flusher, shrinker); + _writableAttributes.push_back(attributeP); } } @@ -234,7 +236,7 @@ AttributeManager::transferExtraAttributes(const AttributeManager &currMgr) { for (const auto &kv : currMgr._attributes) { if (kv.second.isExtra()) { - addAttribute(kv.second, 0); + addAttribute(kv.second, nullptr); } } } @@ -271,7 +273,7 @@ AttributeManager::AttributeManager(const vespalib::string &baseDir, std::shared_ptr<search::attribute::Interlock> interlock, vespalib::ISequencedTaskExecutor &attributeFieldWriter, vespalib::Executor& shared_executor, - const IAttributeFactory::SP &factory, + IAttributeFactory::SP factory, const HwInfo &hwInfo) : proton::IAttributeManager(), _attributes(), @@ -281,7 +283,7 @@ AttributeManager::AttributeManager(const vespalib::string &baseDir, _documentSubDbName(documentSubDbName), _tuneFileAttributes(tuneFileAttributes), _fileHeaderContext(fileHeaderContext), - _factory(factory), + _factory(std::move(factory)), _interlock(std::move(interlock)), _attributeFieldWriter(attributeFieldWriter), _shared_executor(shared_executor), @@ -329,7 +331,7 @@ AttributeManager::addInitializedAttributes(const std::vector<AttributeInitialize auto attr = result.getAttribute(); attr->setInterlock(_interlock); auto shrinker = allocShrinker(attr, _attributeFieldWriter, *_diskLayout); - addAttribute(AttributeWrap::normalAttribute(attr), shrinker); + addAttribute(AttributeWrap::normalAttribute(std::move(attr)), shrinker); } } @@ -414,7 +416,7 @@ AttributeManager::getAttributeReadGuard(const string &name, bool stableEnumGuard if (attribute) { return attribute->makeReadGuard(stableEnumGuard); } else { - return std::unique_ptr<search::attribute::AttributeReadGuard>(); + return {}; } } @@ -424,7 +426,7 @@ AttributeManager::getAttributeList(std::vector<AttributeGuard> &list) const list.reserve(_attributes.size()); for (const auto &kv : _attributes) { if (!kv.second.isExtra()) { - list.push_back(AttributeGuard(kv.second.getAttribute())); + list.emplace_back(kv.second.getAttribute()); } } } @@ -541,7 +543,7 @@ AttributeManager::getAttributeListAll(std::vector<AttributeGuard> &list) const { list.reserve(_attributes.size()); for (const auto &kv : _attributes) { - list.push_back(AttributeGuard(kv.second.getAttribute())); + list.emplace_back(kv.second.getAttribute()); } } @@ -629,7 +631,7 @@ AttributeManager::getExclusiveReadAccessor(const vespalib::string &name) const if (attribute) { return std::make_unique<ExclusiveAttributeReadAccessor>(attribute, _attributeFieldWriter); } - return ExclusiveAttributeReadAccessor::UP(); + return {}; } void diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h index 2d5b75e71f4..b74e7e72a0e 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h +++ b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h @@ -45,12 +45,16 @@ private: private: AttributeVectorSP _attr; bool _isExtra; - AttributeWrap(const AttributeVectorSP & a, bool isExtra_); + AttributeWrap(AttributeVectorSP a, bool isExtra_); public: AttributeWrap(); + AttributeWrap(const AttributeWrap &) = default; + AttributeWrap & operator=(const AttributeWrap &) = delete; + AttributeWrap(AttributeWrap &&) noexcept = default; + AttributeWrap & operator=(AttributeWrap &&) noexcept = default; ~AttributeWrap(); - static AttributeWrap extraAttribute(const AttributeVectorSP &a); - static AttributeWrap normalAttribute(const AttributeVectorSP &a); + static AttributeWrap extraAttribute(AttributeVectorSP a); + static AttributeWrap normalAttribute(AttributeVectorSP a); bool isExtra() const { return _isExtra; } const AttributeVectorSP & getAttribute() const { return _attr; } }; @@ -85,20 +89,12 @@ private: std::unique_ptr<ImportedAttributesRepo> _importedAttributes; AttributeVectorSP internalAddAttribute(AttributeSpec && spec, uint64_t serialNum, const IAttributeFactory &factory); - - void addAttribute(const AttributeWrap &attribute, const ShrinkerSP &shrinker); - + void addAttribute(AttributeWrap attribute, const ShrinkerSP &shrinker); AttributeVectorSP findAttribute(const vespalib::string &name) const; - const FlushableWrap *findFlushable(const vespalib::string &name) const; - Spec::AttributeList transferExistingAttributes(const AttributeManager &currMgr, Spec::AttributeList && newAttributes); - - void addNewAttributes(const Spec &newSpec, Spec::AttributeList && toBeAdded, - IAttributeInitializerRegistry &initializerRegistry); - + void addNewAttributes(const Spec &newSpec, Spec::AttributeList && toBeAdded, IAttributeInitializerRegistry &initializerRegistry); void transferExtraAttributes(const AttributeManager &currMgr); - public: using SP = std::shared_ptr<AttributeManager>; @@ -118,7 +114,7 @@ public: std::shared_ptr<search::attribute::Interlock> interlock, vespalib::ISequencedTaskExecutor &attributeFieldWriter, vespalib::Executor& shared_executor, - const IAttributeFactory::SP &factory, + IAttributeFactory::SP factory, const HwInfo &hwInfo); AttributeManager(const AttributeManager &currMgr, Spec && newSpec, diff --git a/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.cpp b/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.cpp index 93663637e75..e6406a438ae 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.cpp @@ -146,7 +146,7 @@ FlushableAttribute::Flusher::run() } } -FlushableAttribute::FlushableAttribute(const AttributeVectorSP attr, +FlushableAttribute::FlushableAttribute(AttributeVectorSP attr, const std::shared_ptr<AttributeDirectory> &attrDir, const TuneFileAttributes & tuneFileAttributes, diff --git a/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.h b/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.h index e1054a19b6c..39d79372f25 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.h +++ b/searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.h @@ -51,7 +51,7 @@ public: * * fileHeaderContext must be kept alive by caller. **/ - FlushableAttribute(const AttributeVectorSP attr, + FlushableAttribute(AttributeVectorSP attr, const std::shared_ptr<AttributeDirectory> &attrDir, const search::TuneFileAttributes &tuneFileAttributes, const search::common::FileHeaderContext & diff --git a/searchcore/src/vespa/searchcore/proton/server/fast_access_doc_subdb.cpp b/searchcore/src/vespa/searchcore/proton/server/fast_access_doc_subdb.cpp index 3ec1e23693e..ebe20f24d92 100644 --- a/searchcore/src/vespa/searchcore/proton/server/fast_access_doc_subdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/fast_access_doc_subdb.cpp @@ -79,7 +79,7 @@ FastAccessDocSubDB::createAttributeManagerInitializer(const DocumentDBConfig &co return std::make_shared<AttributeManagerInitializer>(configSerialNum, documentMetaStoreInitTask, documentMetaStore, - baseAttrMgr, + *baseAttrMgr, (_hasAttributes ? configSnapshot.getAttributesConfig() : AttributesConfig()), alloc_strategy, _fastAccessAttributesOnly, |