From e35d4f9559ac5a236de74d6c3707e17e7e505c7f Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Tue, 14 May 2019 18:26:00 +0000 Subject: Use the shared executor from the threading service, and remove the loose wire. --- .../document_subdbs/document_subdbs_test.cpp | 101 ++++++++++----------- .../docsummary/summarymanagerinitializer.cpp | 2 +- .../proton/docsummary/summarymanagerinitializer.h | 2 +- .../vespa/searchcore/proton/server/documentdb.cpp | 2 +- .../proton/server/documentsubdbcollection.cpp | 3 +- .../proton/server/documentsubdbcollection.h | 1 - .../searchcore/proton/server/storeonlydocsubdb.cpp | 5 +- .../searchcore/proton/server/storeonlydocsubdb.h | 3 - 8 files changed, 52 insertions(+), 67 deletions(-) (limited to 'searchcore') 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 cbf82fd7e11..a80497636e6 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 @@ -145,22 +145,20 @@ struct MyStoreOnlyContext HwInfo _hwInfo; StoreOnlyContext _ctx; MyStoreOnlyContext(IThreadingService &writeService, - ThreadStackExecutorBase &summaryExecutor, std::shared_ptr bucketDB, - IBucketDBHandlerInitializer & - bucketDBHandlerInitializer); + IBucketDBHandlerInitializer & bucketDBHandlerInitializer); ~MyStoreOnlyContext(); const MySubDBOwner &getOwner() const { return _owner; } }; -MyStoreOnlyContext::MyStoreOnlyContext(IThreadingService &writeService, ThreadStackExecutorBase &summaryExecutor, +MyStoreOnlyContext::MyStoreOnlyContext(IThreadingService &writeService, std::shared_ptr bucketDB, IBucketDBHandlerInitializer &bucketDBHandlerInitializer) : _owner(), _syncProxy(), _getSerialNum(), _fileHeader(), _metrics(DOCTYPE_NAME, 1), _configMutex(), _hwInfo(), - _ctx(_owner, _syncProxy, _getSerialNum, _fileHeader, writeService, summaryExecutor, bucketDB, + _ctx(_owner, _syncProxy, _getSerialNum, _fileHeader, writeService, bucketDB, bucketDBHandlerInitializer, _metrics, _configMutex, _hwInfo) { } @@ -183,7 +181,6 @@ struct MyFastAccessContext MyMetricsWireService _wireService; FastAccessContext _ctx; MyFastAccessContext(IThreadingService &writeService, - ThreadStackExecutorBase &summaryExecutor, std::shared_ptr bucketDB, IBucketDBHandlerInitializer & bucketDBHandlerInitializer); ~MyFastAccessContext(); @@ -195,11 +192,11 @@ struct MyFastAccessContext } }; -MyFastAccessContext::MyFastAccessContext(IThreadingService &writeService, ThreadStackExecutorBase &summaryExecutor, +MyFastAccessContext::MyFastAccessContext(IThreadingService &writeService, std::shared_ptr bucketDB, IBucketDBHandlerInitializer & bucketDBHandlerInitializer) - : _storeOnlyCtx(writeService, summaryExecutor, bucketDB, bucketDBHandlerInitializer), - _attributeMetrics(NULL), + : _storeOnlyCtx(writeService, bucketDB, bucketDBHandlerInitializer), + _attributeMetrics(nullptr), _wireService(), _ctx(_storeOnlyCtx._ctx, _attributeMetrics, _wireService) {} @@ -221,7 +218,6 @@ struct MySearchableContext vespalib::Clock _clock; SearchableContext _ctx; MySearchableContext(IThreadingService &writeService, - ThreadStackExecutorBase &executor, std::shared_ptr bucketDB, IBucketDBHandlerInitializer & bucketDBHandlerInitializer); ~MySearchableContext(); @@ -234,14 +230,14 @@ struct MySearchableContext }; -MySearchableContext::MySearchableContext(IThreadingService &writeService, ThreadStackExecutorBase &executor, +MySearchableContext::MySearchableContext(IThreadingService &writeService, std::shared_ptr bucketDB, IBucketDBHandlerInitializer & bucketDBHandlerInitializer) - : _fastUpdCtx(writeService, executor, bucketDB, bucketDBHandlerInitializer), + : _fastUpdCtx(writeService, bucketDB, bucketDBHandlerInitializer), _queryLimiter(), _clock(), - _ctx(_fastUpdCtx._ctx, _queryLimiter, _clock, executor) + _ctx(_fastUpdCtx._ctx, _queryLimiter, _clock, writeService.shared()) {} -MySearchableContext::~MySearchableContext() {} +MySearchableContext::~MySearchableContext() = default; struct OneAttrSchema : public Schema { @@ -264,15 +260,13 @@ struct MyConfigSnapshot DocBuilder _builder; DocumentDBConfig::SP _cfg; BootstrapConfig::SP _bootstrap; - MyConfigSnapshot(const Schema &schema, - const vespalib::string &cfgDir) + MyConfigSnapshot(const Schema &schema, const vespalib::string &cfgDir) : _schema(schema), _builder(_schema), _cfg(), _bootstrap() { - DocumentDBConfig::DocumenttypesConfigSP documenttypesConfig - (new DocumenttypesConfig(_builder.getDocumenttypesConfig())); + auto documenttypesConfig = std::make_shared(_builder.getDocumenttypesConfig()); TuneFileDocumentDB::SP tuneFileDocumentDB(new TuneFileDocumentDB()); _bootstrap = std::make_shared(1, documenttypesConfig, @@ -307,15 +301,14 @@ struct FixtureBase : _summaryExecutor(1, 64 * 1024), _writeService(_summaryExecutor), _cfg(), - _bucketDB(std::make_shared()), - _bucketDBHandler(*_bucketDB), - _ctx(_writeService, _summaryExecutor, _bucketDB, - _bucketDBHandler), + _bucketDB(std::make_shared()), + _bucketDBHandler(*_bucketDB), + _ctx(_writeService, _bucketDB, _bucketDBHandler), _baseSchema(), _snapshot(new MyConfigSnapshot(_baseSchema, Traits::ConfigDir::dir())), _baseDir(BASE_DIR + "/" + SUB_NAME, BASE_DIR), _subDb(_cfg._cfg, _ctx._ctx), - _tmpFeedView() + _tmpFeedView() { init(); } @@ -370,7 +363,7 @@ struct FixtureBase _tmpFeedView = _subDb.getFeedView(); const typename Traits::FeedView *retval = dynamic_cast(_tmpFeedView.get()); - ASSERT_TRUE(retval != NULL); + ASSERT_TRUE(retval != nullptr); return retval; } const MyMetricsWireService &getWireService() const { @@ -468,44 +461,44 @@ assertAttributes2(const std::vector &attributes) TEST_F("require that managers and components are instantiated", StoreOnlyFixture) { - EXPECT_TRUE(f._subDb.getSummaryManager().get() != NULL); - EXPECT_TRUE(f._subDb.getSummaryAdapter().get() != NULL); - EXPECT_TRUE(f._subDb.getAttributeManager().get() == NULL); - EXPECT_TRUE(f._subDb.getIndexManager().get() == NULL); - EXPECT_TRUE(f._subDb.getIndexWriter().get() == NULL); - EXPECT_TRUE(f._subDb.getFeedView().get() != NULL); - EXPECT_TRUE(f._subDb.getSearchView().get() != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != NULL); + EXPECT_TRUE(f._subDb.getSummaryManager()); + EXPECT_TRUE(f._subDb.getSummaryAdapter()); + EXPECT_TRUE( ! f._subDb.getAttributeManager()); + EXPECT_TRUE( ! f._subDb.getIndexManager()); + EXPECT_TRUE( ! f._subDb.getIndexWriter()); + EXPECT_TRUE(f._subDb.getFeedView()); + EXPECT_TRUE(f._subDb.getSearchView()); + EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != nullptr); } TEST_F("require that managers and components are instantiated", FastAccessFixture) { - EXPECT_TRUE(f._subDb.getSummaryManager().get() != NULL); - EXPECT_TRUE(f._subDb.getSummaryAdapter().get() != NULL); - EXPECT_TRUE(f._subDb.getAttributeManager().get() != NULL); - EXPECT_TRUE(f._subDb.getIndexManager().get() == NULL); - EXPECT_TRUE(f._subDb.getIndexWriter().get() == NULL); - EXPECT_TRUE(f._subDb.getFeedView().get() != NULL); - EXPECT_TRUE(f._subDb.getSearchView().get() != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != NULL); + EXPECT_TRUE(f._subDb.getSummaryManager()); + EXPECT_TRUE(f._subDb.getSummaryAdapter()); + EXPECT_TRUE(f._subDb.getAttributeManager()); + EXPECT_TRUE( ! f._subDb.getIndexManager()); + EXPECT_TRUE( ! f._subDb.getIndexWriter()); + EXPECT_TRUE(f._subDb.getFeedView()); + EXPECT_TRUE(f._subDb.getSearchView()); + EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != nullptr); } TEST_F("require that managers and components are instantiated", SearchableFixture) { - EXPECT_TRUE(f._subDb.getSummaryManager().get() != NULL); - EXPECT_TRUE(f._subDb.getSummaryAdapter().get() != NULL); - EXPECT_TRUE(f._subDb.getAttributeManager().get() != NULL); - EXPECT_TRUE(f._subDb.getIndexManager().get() != NULL); - EXPECT_TRUE(f._subDb.getIndexWriter().get() != NULL); - EXPECT_TRUE(f._subDb.getFeedView().get() != NULL); - EXPECT_TRUE(f._subDb.getSearchView().get() != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != NULL); - EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != NULL); + EXPECT_TRUE(f._subDb.getSummaryManager()); + EXPECT_TRUE(f._subDb.getSummaryAdapter()); + EXPECT_TRUE(f._subDb.getAttributeManager()); + EXPECT_TRUE(f._subDb.getIndexManager()); + EXPECT_TRUE(f._subDb.getIndexWriter()); + EXPECT_TRUE(f._subDb.getFeedView()); + EXPECT_TRUE(f._subDb.getSearchView()); + EXPECT_TRUE(dynamic_cast(f._subDb.getFeedView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getSearchView().get()) != nullptr); + EXPECT_TRUE(dynamic_cast(f._subDb.getDocumentRetriever().get()) != nullptr); } template diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp index eee0be77c26..32a03219416 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp +++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp @@ -11,7 +11,7 @@ SummaryManagerInitializer(const search::GrowStrategy &grow, const vespalib::string baseDir, const vespalib::string &subDbName, const DocTypeName &docTypeName, - vespalib::ThreadStackExecutorBase &summaryExecutor, + vespalib::ThreadExecutor &summaryExecutor, const search::LogDocumentStore::Config & storeCfg, const search::TuneFileSummary &tuneFile, const search::common::FileHeaderContext &fileHeaderContext, diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.h b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.h index d96e94df5c3..e7cb37aea28 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.h +++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.h @@ -36,7 +36,7 @@ public: const vespalib::string baseDir, const vespalib::string &subDbName, const DocTypeName &docTypeName, - vespalib::ThreadStackExecutorBase & summaryExecutor, + vespalib::ThreadExecutor & summaryExecutor, const search::LogDocumentStore::Config & storeCfg, const search::TuneFileSummary &tuneFile, const search::common::FileHeaderContext & fileHeaderContext, diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp index 1d0429ee81a..16e8d7ae90a 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp @@ -169,7 +169,7 @@ DocumentDB::DocumentDB(const vespalib::string &baseDir, _dmUsageForwarder(_writeService.master()), _writeFilter(), _feedHandler(_writeService, tlsSpec, docTypeName, _state, *this, _writeFilter, *this, tlsDirectWriter), - _subDBs(*this, *this, _feedHandler, _docTypeName, _writeService, warmupExecutor, sharedExecutor, fileHeaderContext, + _subDBs(*this, *this, _feedHandler, _docTypeName, _writeService, warmupExecutor, fileHeaderContext, metricsWireService, getMetrics(), queryLimiter, clock, _configMutex, _baseDir, makeSubDBConfig(protonCfg.distribution, findDocumentDB(protonCfg.documentdb, docTypeName.getName())->allocation, diff --git a/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.cpp b/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.cpp index a3cd4222a06..70e548e8c05 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.cpp @@ -35,7 +35,6 @@ DocumentSubDBCollection::DocumentSubDBCollection( const DocTypeName &docTypeName, searchcorespi::index::IThreadingService &writeService, vespalib::ThreadExecutor &warmupExecutor, - vespalib::ThreadStackExecutorBase &sharedExecutor, const search::common::FileHeaderContext &fileHeaderContext, MetricsWireService &metricsWireService, DocumentDBTaggedMetrics &metrics, @@ -61,7 +60,7 @@ DocumentSubDBCollection::DocumentSubDBCollection( _bucketDBHandler = std::make_unique(*_bucketDB); StoreOnlyDocSubDB::Context context(owner, tlSyncer, getSerialNum, fileHeaderContext, writeService, - sharedExecutor, _bucketDB, *_bucketDBHandler, metrics, configMutex, hwInfo); + _bucketDB, *_bucketDBHandler, metrics, configMutex, hwInfo); _subDBs.push_back (new SearchableDocSubDB( SearchableDocSubDB::Config( diff --git a/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.h b/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.h index 934c11e485b..05427f5e545 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.h +++ b/searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.h @@ -101,7 +101,6 @@ public: const DocTypeName &docTypeName, searchcorespi::index::IThreadingService &writeService, vespalib::ThreadExecutor &warmupExecutor, - vespalib::ThreadStackExecutorBase &sharedExecutor, const search::common::FileHeaderContext &fileHeaderContext, MetricsWireService &metricsWireService, DocumentDBTaggedMetrics &metrics, diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp index 0a3852d7819..609982a46d5 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp @@ -77,7 +77,6 @@ StoreOnlyDocSubDB::Context::Context(IDocumentSubDBOwner &owner, const IGetSerialNum &getSerialNum, const FileHeaderContext &fileHeaderContext, searchcorespi::index::IThreadingService &writeService, - vespalib::ThreadStackExecutorBase &sharedExecutor, std::shared_ptr bucketDB, bucketdb::IBucketDBHandlerInitializer & bucketDBHandlerInitializer, DocumentDBTaggedMetrics &metrics, @@ -88,7 +87,6 @@ StoreOnlyDocSubDB::Context::Context(IDocumentSubDBOwner &owner, _getSerialNum(getSerialNum), _fileHeaderContext(fileHeaderContext), _writeService(writeService), - _sharedExecutor(sharedExecutor), _bucketDB(bucketDB), _bucketDBHandlerInitializer(bucketDBHandlerInitializer), _metrics(metrics), @@ -114,7 +112,6 @@ StoreOnlyDocSubDB::StoreOnlyDocSubDB(const Config &cfg, const Context &ctx) _rSummaryMgr(), _summaryAdapter(), _writeService(ctx._writeService), - _sharedExecutor(ctx._sharedExecutor), _metrics(ctx._metrics), _iSearchView(), _iFeedView(), @@ -234,7 +231,7 @@ createSummaryManagerInitializer(const search::LogDocumentStore::Config & storeCf GrowStrategy grow = _attributeGrow; vespalib::string baseDir(_baseDir + "/summary"); return std::make_shared - (grow, baseDir, getSubDbName(), _docTypeName, _sharedExecutor, + (grow, baseDir, getSubDbName(), _docTypeName, _writeService.shared(), storeCfg, tuneFile, _fileHeaderContext, _tlSyncer, bucketizer, result); } diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h index 2518ea38f82..9d5b8c18d01 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h @@ -109,7 +109,6 @@ public: const IGetSerialNum &_getSerialNum; const search::common::FileHeaderContext &_fileHeaderContext; searchcorespi::index::IThreadingService &_writeService; - vespalib::ThreadStackExecutorBase &_sharedExecutor; std::shared_ptr _bucketDB; bucketdb::IBucketDBHandlerInitializer &_bucketDBHandlerInitializer; DocumentDBTaggedMetrics &_metrics; @@ -121,7 +120,6 @@ public: const IGetSerialNum &getSerialNum, const search::common::FileHeaderContext &fileHeaderContext, searchcorespi::index::IThreadingService &writeService, - vespalib::ThreadStackExecutorBase &sharedExecutor, std::shared_ptr bucketDB, bucketdb::IBucketDBHandlerInitializer & bucketDBHandlerInitializer, @@ -152,7 +150,6 @@ private: ISummaryAdapter::SP _summaryAdapter; protected: searchcorespi::index::IThreadingService &_writeService; - vespalib::ThreadStackExecutorBase &_sharedExecutor; DocumentDBTaggedMetrics &_metrics; vespalib::VarHolder _iSearchView; vespalib::VarHolder _iFeedView; -- cgit v1.2.3