summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-10-13 12:13:03 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-10-13 12:13:03 +0000
commit0bcf3d9bcc4149f6e685bee49d4008e02bc70d36 (patch)
tree984e2cddf06d78a9906c7bbd5b9c15dc1f6dc452 /searchcore
parent7969913ee302ec4a19c38c529b99ce12edddb5b7 (diff)
Various cleanup while reading sorting code in backend.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_manager/attribute_manager_test.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp20
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.h4
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp52
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attributemanager.h24
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/flushableattribute.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/fast_access_doc_subdb.cpp2
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,