summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-10-12 13:14:26 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-10-12 13:14:26 +0200
commit1f7028c1a609dc1c643c82fe1ea05f7baebb85ba (patch)
tree5f567d397d38a2a04a30d6fdd07ee9983b034172 /searchlib
parente1c94134d68d9a10e036d952883fd7a47205318e (diff)
- Let the commitExecutor and the sessionExecutor be different.
- No need to sync commitExecutor.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.h1
3 files changed, 4 insertions, 3 deletions
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
index e46b8744ae8..74ca3e6527d 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
@@ -193,7 +193,6 @@ Domain::triggerSyncNow()
MonitorGuard guard(_syncMonitor);
if (!_pendingSync) {
_pendingSync = true;
- _commitExecutor.sync();
DomainPart::SP dp(_parts.rbegin()->second);
_sessionExecutor.execute(Sync::UP(new Sync(_syncMonitor, dp, _pendingSync)));
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
index 1eb6301f3f5..ca17457bdb9 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
@@ -93,6 +93,7 @@ TransLogServer::TransLogServer(const vespalib::string &name, int listenPort, con
_baseDir(baseDir),
_domainPartSize(domainPartSize),
_defaultCrcType(defaultCrcType),
+ _commitExecutor(maxThreads, 128*1024),
_sessionExecutor(maxThreads, 128*1024),
_threadPool(8192, 1),
_supervisor(std::make_unique<FRT_Supervisor>()),
@@ -109,7 +110,7 @@ TransLogServer::TransLogServer(const vespalib::string &name, int listenPort, con
domainDir >> domainName;
if ( ! domainName.empty()) {
try {
- auto domain = std::make_shared<Domain>(domainName, dir(), _sessionExecutor, _sessionExecutor,
+ auto domain = std::make_shared<Domain>(domainName, dir(), _commitExecutor, _sessionExecutor,
_domainPartSize, _defaultCrcType,_fileHeaderContext);
_domains[domain->name()] = domain;
} catch (const std::exception & e) {
@@ -344,7 +345,7 @@ void TransLogServer::createDomain(FRT_RPCRequest *req)
Domain::SP domain(findDomain(domainName));
if ( !domain ) {
try {
- domain = std::make_shared<Domain>(domainName, dir(), _sessionExecutor, _sessionExecutor,
+ domain = std::make_shared<Domain>(domainName, dir(), _commitExecutor, _sessionExecutor,
_domainPartSize, _defaultCrcType, _fileHeaderContext);
{
Guard domainGuard(_lock);
diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h
index 8b612e4967a..92832786059 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.h
+++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.h
@@ -82,6 +82,7 @@ private:
vespalib::string _baseDir;
const uint64_t _domainPartSize;
const DomainPart::Crc _defaultCrcType;
+ vespalib::ThreadStackExecutor _commitExecutor;
vespalib::ThreadStackExecutor _sessionExecutor;
FastOS_ThreadPool _threadPool;
std::unique_ptr<FRT_Supervisor> _supervisor;