diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-05-23 08:37:54 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-05-23 11:26:36 +0000 |
commit | 60b628f977102f905b67f23d765cf19e49fa21db (patch) | |
tree | 5e58abcb9cddb3385251a08a26d7b14e0f2167b1 /searchcore | |
parent | bbc62a7d9f6a0ec4e0eaafff3213dfebc49898a8 (diff) |
Move RcuVector and relevant support classes to vespalib
Having RCU support available across all our C++ modules open up
new opportunities for optimizations.
This changes the following:
- `RcuVector` moved from `searchlib` to `vespalib`
- `MemoryUsage` moved from `searchlib` to `vespalib`
- Introduce a simplified, more generic `GrowStrategy` in `vespalib`
used by the moved `RcuVector` which does not have any notion of
documents. Existing searchlib `GrowStrategy` gets a simple function
to convert to this generic strategy.
Diffstat (limited to 'searchcore')
13 files changed, 23 insertions, 23 deletions
diff --git a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp index 5172489ced1..aba879e5a44 100644 --- a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp +++ b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp @@ -197,7 +197,7 @@ Fixture::initViewSet(ViewSet &views) auto attrMgr = make_shared<AttributeManager>(BASE_DIR, "test.subdb", TuneFileAttributes(), views._fileHeaderContext, views._writeService.attributeFieldWriter(),views._hwInfo); auto summaryMgr = make_shared<SummaryManager> - (_summaryExecutor, search::LogDocumentStore::Config(), GrowStrategy(), BASE_DIR, views._docTypeName, + (_summaryExecutor, search::LogDocumentStore::Config(), search::GrowStrategy(), BASE_DIR, views._docTypeName, TuneFileSummary(), views._fileHeaderContext,views._noTlSyncer, search::IBucketizer::SP()); auto sesMgr = make_shared<SessionManager>(100); auto metaStore = make_shared<DocumentMetaStoreContext>(make_shared<BucketDBOwner>()); diff --git a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp index a80497636e6..68c388111d3 100644 --- a/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp +++ b/searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp @@ -128,8 +128,8 @@ struct MyStoreOnlyConfig : _cfg(DocTypeName(DOCTYPE_NAME), SUB_NAME, BASE_DIR, - GrowStrategy(), - 0, 0, SubDbType::READY) + search::GrowStrategy(), + 0, 0, SubDbType::READY) { } }; diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp index 25ab7e27387..a2ec14c8840 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_vector_explorer.cpp @@ -12,7 +12,7 @@ using search::AddressSpace; using search::AddressSpaceUsage; using search::AttributeVector; using search::EnumStoreBase; -using search::MemoryUsage; +using vespalib::MemoryUsage; using search::attribute::MultiValueMappingBase; using search::attribute::IPostingListAttributeBase; using namespace vespalib::slime; diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp index 840239a2652..2255bcede48 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp +++ b/searchcore/src/vespa/searchcore/proton/docsummary/document_store_explorer.cpp @@ -18,7 +18,7 @@ DocumentStoreExplorer::DocumentStoreExplorer(ISummaryManager::SP mgr) namespace { void -setMemoryUsage(Cursor &object, const search::MemoryUsage &usage) +setMemoryUsage(Cursor &object, const vespalib::MemoryUsage &usage) { Cursor &memory = object.setObject("memoryUsage"); memory.setLong("allocatedBytes", usage.allocatedBytes()); diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp index c03c93b5fd9..870226876dd 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.cpp @@ -11,13 +11,13 @@ #include <vespa/searchlib/btree/btreeroot.hpp> #include <vespa/searchlib/btree/btreebuilder.hpp> #include <vespa/searchlib/common/i_gid_to_lid_mapper.h> -#include <vespa/vespalib/util/exceptions.h> #include <vespa/searchcore/proton/bucketdb/bucketsessionbase.h> #include <vespa/searchcore/proton/bucketdb/joinbucketssession.h> #include <vespa/searchcore/proton/bucketdb/splitbucketsession.h> #include <vespa/searchlib/util/bufferwriter.h> -#include <vespa/searchlib/common/rcuvector.hpp> #include <vespa/searchlib/query/queryterm.h> +#include <vespa/vespalib/util/exceptions.h> +#include <vespa/vespalib/util/rcuvector.hpp> #include <vespa/fastos/file.h> #include "document_meta_store_versions.h" @@ -32,7 +32,7 @@ using search::FileReader; using search::GrowStrategy; using search::IAttributeSaveTarget; using search::LidUsageStats; -using search::MemoryUsage; +using vespalib::MemoryUsage; using search::attribute::SearchContextParams; using search::btree::BTreeNoLeafData; using search::fef::TermFieldMatchData; @@ -200,7 +200,7 @@ DocumentMetaStore::insert(DocId lid, const RawDocumentMetaData &metaData) void DocumentMetaStore::onUpdateStat() { - MemoryUsage usage = _metaDataStore.getMemoryUsage(); + vespalib::MemoryUsage usage = _metaDataStore.getMemoryUsage(); usage.incAllocatedBytesOnHold(getGenerationHolder().getHeldBytes()); size_t bvSize = _lidAlloc.getUsedLidsSize(); usage.incAllocatedBytes(bvSize); diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h index a3c470575a4..efac1158cfb 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastore.h @@ -11,10 +11,10 @@ #include "raw_document_meta_data.h" #include <vespa/searchcore/proton/bucketdb/bucket_db_owner.h> #include <vespa/searchcore/proton/common/subdbtype.h> -#include <vespa/searchlib/common/rcuvector.h> #include <vespa/searchlib/attribute/singlesmallnumericattribute.h> #include <vespa/searchlib/queryeval/blueprint.h> #include <vespa/searchlib/docstore/ibucketizer.h> +#include <vespa/vespalib/util/rcuvector.h> namespace proton::bucketdb { class SplitBucketSession; @@ -54,7 +54,7 @@ public: private: // maps from lid -> meta data - typedef search::attribute::RcuVectorBase<RawDocumentMetaData> MetaDataStore; + typedef vespalib::RcuVectorBase<RawDocumentMetaData> MetaDataStore; typedef documentmetastore::LidGidKeyComparator KeyComp; // Lids are stored as keys in the tree, sorted by their gid diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoresaver.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoresaver.h index deb1dc4a3c2..e0a808692ad 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoresaver.h +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoresaver.h @@ -25,7 +25,7 @@ public: search::btree::BTreeNoLeafData, search::btree::NoAggregated, const KeyComp &>; - using MetaDataStore = search::attribute::RcuVectorBase<RawDocumentMetaData>; + using MetaDataStore = vespalib::RcuVectorBase<RawDocumentMetaData>; private: GidIterator _gidIterator; // iterator over frozen tree diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/lid_gid_key_comparator.h b/searchcore/src/vespa/searchcore/proton/documentmetastore/lid_gid_key_comparator.h index 6de870a0b5d..a081fc9a670 100644 --- a/searchcore/src/vespa/searchcore/proton/documentmetastore/lid_gid_key_comparator.h +++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/lid_gid_key_comparator.h @@ -5,8 +5,8 @@ #include "gid_compare.h" #include "raw_document_meta_data.h" #include <vespa/document/base/globalid.h> -#include <vespa/searchlib/common/rcuvector.h> #include <vespa/searchlib/common/idocumentmetastore.h> +#include <vespa/vespalib/util/rcuvector.h> namespace proton { namespace documentmetastore { @@ -22,7 +22,7 @@ public: private: typedef search::IDocumentMetaStore::DocId DocId; - typedef search::attribute::RcuVectorBase<RawDocumentMetaData> MetaDataStore; + typedef vespalib::RcuVectorBase<RawDocumentMetaData> MetaDataStore; const document::GlobalId &_gid; const MetaDataStore &_metaDataStore; diff --git a/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h b/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h index 2ca6f969c55..5e3ff79b92e 100644 --- a/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h +++ b/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h @@ -68,7 +68,7 @@ public: search::index::Schema::SP getPrunedSchema() const override { return _index.getPrunedSchema(); } - search::MemoryUsage getMemoryUsage() const override { + vespalib::MemoryUsage getMemoryUsage() const override { return _index.getMemoryUsage(); } void insertDocument(uint32_t lid, const document::Document &doc) override { diff --git a/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.cpp b/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.cpp index b675e80920f..1f687d14969 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.cpp +++ b/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.cpp @@ -1,7 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "memory_usage_metrics.h" -#include <vespa/searchlib/util/memoryusage.h> +#include <vespa/vespalib/util/memoryusage.h> namespace proton { @@ -17,7 +17,7 @@ MemoryUsageMetrics::MemoryUsageMetrics(metrics::MetricSet *parent) MemoryUsageMetrics::~MemoryUsageMetrics() {} void -MemoryUsageMetrics::update(const search::MemoryUsage &usage) +MemoryUsageMetrics::update(const vespalib::MemoryUsage &usage) { _allocatedBytes.set(usage.allocatedBytes()); _usedBytes.set(usage.usedBytes()); diff --git a/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.h b/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.h index 333a6bf5dcf..89177c3a359 100644 --- a/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.h +++ b/searchcore/src/vespa/searchcore/proton/metrics/memory_usage_metrics.h @@ -4,7 +4,7 @@ #include <vespa/metrics/metrics.h> -namespace search { class MemoryUsage; } +namespace vespalib { class MemoryUsage; } namespace proton { @@ -22,7 +22,7 @@ private: public: MemoryUsageMetrics(metrics::MetricSet *parent); ~MemoryUsageMetrics(); - void update(const search::MemoryUsage &usage); + void update(const vespalib::MemoryUsage &usage); }; } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp index 96a14d6d62b..3a086046a27 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp @@ -16,15 +16,15 @@ #include <vespa/searchcore/proton/metrics/executor_threading_service_stats.h> #include <vespa/searchlib/attribute/attributevector.h> #include <vespa/searchlib/docstore/cachestats.h> -#include <vespa/searchlib/util/memoryusage.h> #include <vespa/searchlib/util/searchable_stats.h> +#include <vespa/vespalib/util/memoryusage.h> #include <vespa/log/log.h> LOG_SETUP(".proton.server.documentdb_metrics_updater"); using search::LidUsageStats; using search::CacheStats; -using search::MemoryUsage; +using vespalib::MemoryUsage; namespace proton { @@ -49,7 +49,7 @@ DocumentDBMetricsUpdater::~DocumentDBMetricsUpdater() = default; namespace { struct TotalStats { - search::MemoryUsage memoryUsage; + MemoryUsage memoryUsage; uint64_t diskUsage; TotalStats() : memoryUsage(), diskUsage() {} }; diff --git a/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h b/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h index 258be5e3936..a62e5e77bc1 100644 --- a/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h +++ b/searchcore/src/vespa/searchcore/proton/test/dummy_document_store.h @@ -50,7 +50,7 @@ struct DummyDocumentStore : public search::IDocumentStore virtual search::DataStoreStorageStats getStorageStats() const override { return search::DataStoreStorageStats(0, 0, 0.0, 0, 0, 0); } - virtual search::MemoryUsage getMemoryUsage() const override { return search::MemoryUsage(); } + virtual vespalib::MemoryUsage getMemoryUsage() const override { return vespalib::MemoryUsage(); } virtual std::vector<search::DataStoreFileChunkStats> getFileChunkStats() const override { std::vector<search::DataStoreFileChunkStats> result; return result; |