aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-14 18:26:00 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-05-14 18:29:21 +0000
commite35d4f9559ac5a236de74d6c3707e17e7e505c7f (patch)
tree8de5b4c59580a3181c19000ad866d450bd413bba
parentd2dec4cfb9cff2c746ba20e727c6f8c846c7985d (diff)
Use the shared executor from the threading service, and remove the loose wire.
-rw-r--r--searchcore/src/tests/proton/documentdb/document_subdbs/document_subdbs_test.cpp101
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.cpp3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentsubdbcollection.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.cpp5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlydocsubdb.h3
8 files changed, 52 insertions, 67 deletions
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<BucketDBOwner> 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<BucketDBOwner> 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<BucketDBOwner> bucketDB,
IBucketDBHandlerInitializer & bucketDBHandlerInitializer);
~MyFastAccessContext();
@@ -195,11 +192,11 @@ struct MyFastAccessContext
}
};
-MyFastAccessContext::MyFastAccessContext(IThreadingService &writeService, ThreadStackExecutorBase &summaryExecutor,
+MyFastAccessContext::MyFastAccessContext(IThreadingService &writeService,
std::shared_ptr<BucketDBOwner> 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<BucketDBOwner> bucketDB,
IBucketDBHandlerInitializer & bucketDBHandlerInitializer);
~MySearchableContext();
@@ -234,14 +230,14 @@ struct MySearchableContext
};
-MySearchableContext::MySearchableContext(IThreadingService &writeService, ThreadStackExecutorBase &executor,
+MySearchableContext::MySearchableContext(IThreadingService &writeService,
std::shared_ptr<BucketDBOwner> 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<DocumenttypesConfig>(_builder.getDocumenttypesConfig());
TuneFileDocumentDB::SP tuneFileDocumentDB(new TuneFileDocumentDB());
_bootstrap = std::make_shared<BootstrapConfig>(1,
documenttypesConfig,
@@ -307,15 +301,14 @@ struct FixtureBase
: _summaryExecutor(1, 64 * 1024),
_writeService(_summaryExecutor),
_cfg(),
- _bucketDB(std::make_shared<BucketDBOwner>()),
- _bucketDBHandler(*_bucketDB),
- _ctx(_writeService, _summaryExecutor, _bucketDB,
- _bucketDBHandler),
+ _bucketDB(std::make_shared<BucketDBOwner>()),
+ _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<typename Traits::FeedView *>(_tmpFeedView.get());
- ASSERT_TRUE(retval != NULL);
+ ASSERT_TRUE(retval != nullptr);
return retval;
}
const MyMetricsWireService &getWireService() const {
@@ -468,44 +461,44 @@ assertAttributes2(const std::vector<search::AttributeVector *> &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<StoreOnlyFeedView *>(f._subDb.getFeedView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<EmptySearchView *>(f._subDb.getSearchView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<MinimalDocumentRetriever *>(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<StoreOnlyFeedView *>(f._subDb.getFeedView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<EmptySearchView *>(f._subDb.getSearchView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<MinimalDocumentRetriever *>(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<FastAccessFeedView *>(f._subDb.getFeedView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<EmptySearchView *>(f._subDb.getSearchView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<FastAccessDocumentRetriever *>(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<FastAccessFeedView *>(f._subDb.getFeedView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<EmptySearchView *>(f._subDb.getSearchView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<FastAccessDocumentRetriever *>(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<SearchableFeedView *>(f._subDb.getFeedView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<SearchView *>(f._subDb.getSearchView().get()) != NULL);
- EXPECT_TRUE(dynamic_cast<FastAccessDocumentRetriever *>(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<SearchableFeedView *>(f._subDb.getFeedView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<SearchView *>(f._subDb.getSearchView().get()) != nullptr);
+ EXPECT_TRUE(dynamic_cast<FastAccessDocumentRetriever *>(f._subDb.getDocumentRetriever().get()) != nullptr);
}
template<typename Fixture>
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::BucketDBHandler>(*_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<BucketDBOwner> 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<SummaryManagerInitializer>
- (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<BucketDBOwner> _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<BucketDBOwner> bucketDB,
bucketdb::IBucketDBHandlerInitializer &
bucketDBHandlerInitializer,
@@ -152,7 +150,6 @@ private:
ISummaryAdapter::SP _summaryAdapter;
protected:
searchcorespi::index::IThreadingService &_writeService;
- vespalib::ThreadStackExecutorBase &_sharedExecutor;
DocumentDBTaggedMetrics &_metrics;
vespalib::VarHolder<ISearchHandler::SP> _iSearchView;
vespalib::VarHolder<IFeedView::SP> _iFeedView;