diff options
25 files changed, 55 insertions, 72 deletions
diff --git a/chain/CMakeLists.txt b/chain/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/chain/CMakeLists.txt +++ b/chain/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/config-provisioning/CMakeLists.txt b/config-provisioning/CMakeLists.txt index ee0bc7f1bae..d46e1bc0215 100644 --- a/config-provisioning/CMakeLists.txt +++ b/config-provisioning/CMakeLists.txt @@ -1,3 +1,3 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_fat_java_artifact(config-provisioning) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-accesslogging/CMakeLists.txt b/container-accesslogging/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/container-accesslogging/CMakeLists.txt +++ b/container-accesslogging/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-core/CMakeLists.txt b/container-core/CMakeLists.txt index de3ef9a517e..74f02518b59 100644 --- a/container-core/CMakeLists.txt +++ b/container-core/CMakeLists.txt @@ -1,4 +1,4 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() vespa_install_script(src/main/sh/vespa-load-balancer-status libexec/vespa) diff --git a/container-di/CMakeLists.txt b/container-di/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/container-di/CMakeLists.txt +++ b/container-di/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-disc/CMakeLists.txt b/container-disc/CMakeLists.txt index 3d781a95075..6c63babf66f 100644 --- a/container-disc/CMakeLists.txt +++ b/container-disc/CMakeLists.txt @@ -3,4 +3,4 @@ install_fat_java_artifact(container-disc) vespa_install_script(src/main/sh/vespa-start-container-daemon.sh vespa-start-container-daemon bin) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-messagebus/CMakeLists.txt b/container-messagebus/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/container-messagebus/CMakeLists.txt +++ b/container-messagebus/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-search-and-docproc/CMakeLists.txt b/container-search-and-docproc/CMakeLists.txt index aef014583f5..a8a374d7feb 100644 --- a/container-search-and-docproc/CMakeLists.txt +++ b/container-search-and-docproc/CMakeLists.txt @@ -1,4 +1,4 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_fat_java_artifact(container-search-and-docproc) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/container-search/CMakeLists.txt b/container-search/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/container-search/CMakeLists.txt +++ b/container-search/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/docproc/CMakeLists.txt b/docproc/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/docproc/CMakeLists.txt +++ b/docproc/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/fileacquirer/CMakeLists.txt b/fileacquirer/CMakeLists.txt index c05241bf795..0b71d1fc1cd 100644 --- a/fileacquirer/CMakeLists.txt +++ b/fileacquirer/CMakeLists.txt @@ -10,4 +10,4 @@ vespa_define_module( src/vespa/fileacquirer ) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/functions.cmake b/functions.cmake index 5d23a3cb9ad..bdecc2f5124 100644 --- a/functions.cmake +++ b/functions.cmake @@ -644,7 +644,12 @@ function(install_config_definition) endfunction() function(install_config_definitions) - install(DIRECTORY ${ARGV0}/ DESTINATION share/vespa/configdefinitions FILES_MATCHING PATTERN "*.def") + if(ARGC EQUAL 0) + set(DEFINITIONS_DIR src/main/resources/configdefinitions) + else() + set(DEFINITIONS_DIR ${ARGV0}) + endif() + install(DIRECTORY ${DEFINITIONS_DIR}/ DESTINATION share/vespa/configdefinitions FILES_MATCHING PATTERN "*.def") endfunction() function(install_java_artifact NAME) diff --git a/jdisc-security-filters/CMakeLists.txt b/jdisc-security-filters/CMakeLists.txt index fc39c20dc29..c1ef62a3107 100644 --- a/jdisc-security-filters/CMakeLists.txt +++ b/jdisc-security-filters/CMakeLists.txt @@ -1,4 +1,4 @@ # Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_fat_java_artifact(jdisc-security-filters) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/jdisc_http_service/CMakeLists.txt b/jdisc_http_service/CMakeLists.txt index e0f17286b85..e9e9447bd03 100644 --- a/jdisc_http_service/CMakeLists.txt +++ b/jdisc_http_service/CMakeLists.txt @@ -2,4 +2,4 @@ install_fat_java_artifact(jdisc_http_service) install_java_artifact_dependencies(jdisc_http_service) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/linguistics/CMakeLists.txt b/linguistics/CMakeLists.txt index f2179625aae..13486b3a551 100644 --- a/linguistics/CMakeLists.txt +++ b/linguistics/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/metrics-proxy/CMakeLists.txt b/metrics-proxy/CMakeLists.txt index 20d508c84d3..f6069dd2fe9 100644 --- a/metrics-proxy/CMakeLists.txt +++ b/metrics-proxy/CMakeLists.txt @@ -4,4 +4,4 @@ install_fat_java_artifact(metrics-proxy) vespa_install_script(src/main/sh/start-telegraf.sh libexec/vespa) vespa_install_script(src/main/sh/stop-telegraf.sh libexec/vespa) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp index aaf70964068..293e316f799 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp @@ -30,15 +30,12 @@ using std::make_shared; namespace search::transactionlog { -VESPA_THREAD_STACK_TAG(domain_commit_executor); - -Domain::Domain(const string &domainName, const string & baseDir, Executor & commitExecutor, - Executor & sessionExecutor, const DomainConfig & cfg, const FileHeaderContext &fileHeaderContext) +Domain::Domain(const string &domainName, const string & baseDir, Executor & executor, + const DomainConfig & cfg, const FileHeaderContext &fileHeaderContext) : _config(cfg), _lastSerial(0), _singleCommiter(std::make_unique<vespalib::ThreadStackExecutor>(1, 128*1024)), - _commitExecutor(commitExecutor), - _sessionExecutor(sessionExecutor), + _executor(executor), _sessionId(1), _syncMonitor(), _pendingSync(false), @@ -64,10 +61,10 @@ Domain::Domain(const string &domainName, const string & baseDir, Executor & comm const int64_t lastPart = partIdVector.empty() ? 0 : partIdVector.back(); for (const int64_t partId : partIdVector) { if ( partId != -1) { - _sessionExecutor.execute(makeTask(makeClosure(this, &Domain::addPart, partId, partId == lastPart))); + _executor.execute(makeTask(makeClosure(this, &Domain::addPart, partId, partId == lastPart))); } } - _sessionExecutor.sync(); + _executor.sync(); if (_parts.empty() || _parts.crbegin()->second->isClosed()) { _parts[lastPart] = std::make_shared<DomainPart>(_name, dir(), lastPart, _config.getEncoding(), _config.getCompressionlevel(), _fileHeaderContext, false); @@ -76,6 +73,11 @@ Domain::Domain(const string &domainName, const string & baseDir, Executor & comm _lastSerial = end(); } +vespalib::Executor::Task::UP +Domain::execute(vespalib::Executor::Task::UP task) { + return _executor.execute(std::move(task)); +} + Domain & Domain::setConfig(const DomainConfig & cfg) { _config = cfg; @@ -101,27 +103,6 @@ void Domain::addPart(int64_t partId, bool isLastPart) { } } -class Sync : public vespalib::Executor::Task -{ -public: - Sync(Monitor &syncMonitor, const DomainPart::SP &dp, bool &pendingSync) : - _syncMonitor(syncMonitor), - _dp(dp), - _pendingSync(pendingSync) - { } -private: - void run() override { - _dp->sync(); - MonitorGuard guard(_syncMonitor); - _pendingSync = false; - guard.broadcast(); - } - - Monitor & _syncMonitor; - DomainPart::SP _dp; - bool & _pendingSync; -}; - Domain::~Domain() { } DomainInfo @@ -216,8 +197,12 @@ Domain::triggerSyncNow() MonitorGuard guard(_syncMonitor); if (!_pendingSync) { _pendingSync = true; - DomainPart::SP dp(_parts.rbegin()->second); - _commitExecutor.execute(std::make_unique<Sync>(_syncMonitor, dp, _pendingSync)); + _executor.execute(makeLambdaTask([this, domainPart=_parts.rbegin()->second]() { + domainPart->sync(); + MonitorGuard monitorGuard(_syncMonitor); + _pendingSync = false; + monitorGuard.broadcast(); + })); } } @@ -383,7 +368,7 @@ Domain::startSession(int sessionId) int Domain::closeSession(int sessionId) { - _commitExecutor.sync(); + _executor.sync(); int retval(-1); DurationSeconds sessionRunTime(0); { diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.h b/searchlib/src/vespa/searchlib/transactionlog/domain.h index 9c8b578a2c9..1e407188b11 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/domain.h +++ b/searchlib/src/vespa/searchlib/transactionlog/domain.h @@ -18,8 +18,8 @@ public: using SP = std::shared_ptr<Domain>; using Executor = vespalib::SyncableThreadExecutor; using DomainPartSP = std::shared_ptr<DomainPart>; - Domain(const vespalib::string &name, const vespalib::string &baseDir, Executor & commitExecutor, - Executor & sessionExecutor, const DomainConfig & cfg, const common::FileHeaderContext &fileHeaderContext); + Domain(const vespalib::string &name, const vespalib::string &baseDir, Executor & executor, + const DomainConfig & cfg, const common::FileHeaderContext &fileHeaderContext); ~Domain(); @@ -51,9 +51,7 @@ public: getDir(const vespalib::string & base, const vespalib::string & domain) { return base + "/" + domain; } - vespalib::Executor::Task::UP execute(vespalib::Executor::Task::UP task) { - return _sessionExecutor.execute(std::move(task)); - } + vespalib::Executor::Task::UP execute(vespalib::Executor::Task::UP task); uint64_t size() const; Domain & setConfig(const DomainConfig & cfg); private: @@ -76,8 +74,7 @@ private: DomainConfig _config; SerialNum _lastSerial; std::unique_ptr<Executor> _singleCommiter; - Executor & _commitExecutor; - Executor & _sessionExecutor; + Executor & _executor; std::atomic<int> _sessionId; vespalib::Monitor _syncMonitor; bool _pendingSync; diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp index 93b65002492..42bf057d3cf 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp @@ -72,6 +72,8 @@ SyncHandler::PerformTask() } } +VESPA_THREAD_STACK_TAG(tls_executor); + } TransLogServer::TransLogServer(const vespalib::string &name, int listenPort, const vespalib::string &baseDir, @@ -92,8 +94,7 @@ TransLogServer::TransLogServer(const vespalib::string &name, int listenPort, con _name(name), _baseDir(baseDir), _domainConfig(cfg), - _commitExecutor(maxThreads, 128*1024), - _sessionExecutor(maxThreads, 128*1024), + _executor(maxThreads, 128 * 1024, tls_executor), _threadPool(std::make_unique<FastOS_ThreadPool>(1024*120)), _transport(std::make_unique<FNET_Transport>()), _supervisor(std::make_unique<FRT_Supervisor>(_transport.get())), @@ -110,8 +111,7 @@ TransLogServer::TransLogServer(const vespalib::string &name, int listenPort, con domainDir >> domainName; if ( ! domainName.empty()) { try { - auto domain = make_shared<Domain>(domainName, dir(), _commitExecutor, - _sessionExecutor, cfg, _fileHeaderContext); + auto domain = make_shared<Domain>(domainName, dir(), _executor, cfg, _fileHeaderContext); _domains[domain->name()] = domain; } catch (const std::exception & e) { LOG(warning, "Failed creating %s domain on startup. Exception = %s", domainName.c_str(), e.what()); @@ -147,10 +147,8 @@ TransLogServer::~TransLogServer() { stop(); join(); - _commitExecutor.shutdown(); - _commitExecutor.sync(); - _sessionExecutor.shutdown(); - _sessionExecutor.sync(); + _executor.shutdown(); + _executor.sync(); _transport->ShutDown(true); } @@ -449,8 +447,7 @@ TransLogServer::createDomain(FRT_RPCRequest *req) Domain::SP domain(findDomain(domainName)); if ( !domain ) { try { - domain = std::make_shared<Domain>(domainName, dir(), _commitExecutor, - _sessionExecutor, _domainConfig, _fileHeaderContext); + domain = std::make_shared<Domain>(domainName, dir(), _executor, _domainConfig, _fileHeaderContext); Guard domainGuard(_domainMutex); _domains[domain->name()] = domain; writeDomainDir(domainGuard, dir(), domainList(), _domains); diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h index c6443f33b55..ed5d475bb73 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h @@ -83,8 +83,7 @@ private: vespalib::string _name; vespalib::string _baseDir; DomainConfig _domainConfig; - vespalib::ThreadStackExecutor _commitExecutor; - vespalib::ThreadStackExecutor _sessionExecutor; + vespalib::ThreadStackExecutor _executor; std::unique_ptr<FastOS_ThreadPool> _threadPool; std::unique_ptr<FNET_Transport> _transport; std::unique_ptr<FRT_Supervisor> _supervisor; diff --git a/simplemetrics/CMakeLists.txt b/simplemetrics/CMakeLists.txt index f593afbfa0c..782e9c7e02a 100644 --- a/simplemetrics/CMakeLists.txt +++ b/simplemetrics/CMakeLists.txt @@ -1,4 +1,4 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_fat_java_artifact(simplemetrics) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/statistics/CMakeLists.txt b/statistics/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/statistics/CMakeLists.txt +++ b/statistics/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/vespa-osgi-testrunner/CMakeLists.txt b/vespa-osgi-testrunner/CMakeLists.txt index 13095c213a3..e9c592c81a9 100644 --- a/vespa-osgi-testrunner/CMakeLists.txt +++ b/vespa-osgi-testrunner/CMakeLists.txt @@ -1,3 +1,3 @@ # Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_fat_java_artifact(vespa-osgi-testrunner) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/vespa-testrunner-components/CMakeLists.txt b/vespa-testrunner-components/CMakeLists.txt index 475039cb38e..ff18f8d27c6 100644 --- a/vespa-testrunner-components/CMakeLists.txt +++ b/vespa-testrunner-components/CMakeLists.txt @@ -1,4 +1,4 @@ # Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. install_java_artifact(vespa-testrunner-components) install_fat_java_artifact(vespa-testrunner-components) -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() diff --git a/vespaclient-core/CMakeLists.txt b/vespaclient-core/CMakeLists.txt index 14909bc4ca1..7bb25e6a420 100644 --- a/vespaclient-core/CMakeLists.txt +++ b/vespaclient-core/CMakeLists.txt @@ -1,2 +1,2 @@ # Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -install_config_definitions(src/main/resources/configdefinitions) +install_config_definitions() |