summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chain/CMakeLists.txt2
-rw-r--r--config-provisioning/CMakeLists.txt2
-rw-r--r--container-accesslogging/CMakeLists.txt2
-rw-r--r--container-core/CMakeLists.txt2
-rw-r--r--container-di/CMakeLists.txt2
-rw-r--r--container-disc/CMakeLists.txt2
-rw-r--r--container-messagebus/CMakeLists.txt2
-rw-r--r--container-search-and-docproc/CMakeLists.txt2
-rw-r--r--container-search/CMakeLists.txt2
-rw-r--r--docproc/CMakeLists.txt2
-rw-r--r--fileacquirer/CMakeLists.txt2
-rw-r--r--functions.cmake7
-rw-r--r--jdisc-security-filters/CMakeLists.txt2
-rw-r--r--jdisc_http_service/CMakeLists.txt2
-rw-r--r--linguistics/CMakeLists.txt2
-rw-r--r--metrics-proxy/CMakeLists.txt2
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.cpp49
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.h11
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp17
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.h3
-rw-r--r--simplemetrics/CMakeLists.txt2
-rw-r--r--statistics/CMakeLists.txt2
-rw-r--r--vespa-osgi-testrunner/CMakeLists.txt2
-rw-r--r--vespa-testrunner-components/CMakeLists.txt2
-rw-r--r--vespaclient-core/CMakeLists.txt2
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()