aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-06-27 14:11:25 +0200
committerGitHub <noreply@github.com>2021-06-27 14:11:25 +0200
commitedce49a639fa13d6a046b30f33a034ac9828d7b3 (patch)
tree0ecf4a6c279cdc46794f3d549c114274cfd7598c
parent281d6ed48cf5412bbe02d25ad252bfcd6c94ebe4 (diff)
parent55c352b818bf2ea0beca3bc7a42ebdaceab6ba22 (diff)
Merge pull request #18420 from vespa-engine/balder/gc-unused-partitionid
Balder/gc unused partitionid
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java1
-rw-r--r--searchcore/src/vespa/searchcore/config/proton.def3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp8
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.h50
-rw-r--r--searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp13
-rw-r--r--searchlib/src/tests/engine/proto_rpc_adapter/proto_rpc_adapter_test.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/engine/monitorapi.h4
-rw-r--r--searchlib/src/vespa/searchlib/engine/monitorreply.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/engine/monitorreply.h14
-rw-r--r--searchlib/src/vespa/searchlib/engine/monitorrequest.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/engine/monitorrequest.h8
-rw-r--r--searchlib/src/vespa/searchlib/engine/proto_converter.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp2
13 files changed, 37 insertions, 87 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index ab8c36ae99d..b77aa25cd43 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -265,7 +265,6 @@ public class SearchNode extends AbstractService implements
builder.
rpcport(getRpcPort()).
httpport(getHttpPort()).
- partition(getNodeSpec().partitionId()).
clustername(getClusterName()).
basedir(getBaseDir()).
tlsspec("tcp/" + getHost().getHostname() + ":" + getTransactionLogServer().getTlsPort()).
diff --git a/searchcore/src/vespa/searchcore/config/proton.def b/searchcore/src/vespa/searchcore/config/proton.def
index dd411d7f30f..7dff74c4fdd 100644
--- a/searchcore/src/vespa/searchcore/config/proton.def
+++ b/searchcore/src/vespa/searchcore/config/proton.def
@@ -13,9 +13,6 @@ httpport int default=0 restart
## Cluster name
clustername string default="" restart
-## Partition number
-partition int default=0 restart
-
## Distribution key
distributionkey int default=-1
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index afeaec5333f..26e1bc8b951 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -60,6 +60,7 @@ using search::transactionlog::DomainStats;
using vespa::config::search::core::ProtonConfig;
using vespa::config::search::core::internal::InternalProtonType;
using vespalib::compression::CompressionConfig;
+using search::engine::MonitorReply;
namespace proton {
@@ -698,20 +699,17 @@ Proton::removeDocumentDB(const DocTypeName &docTypeName)
}
-Proton::MonitorReply::UP
-Proton::ping(MonitorRequest::UP request, MonitorClient & client)
+std::unique_ptr<MonitorReply>
+Proton::ping(std::unique_ptr<MonitorRequest>, MonitorClient &)
{
- (void) client;
auto reply = std::make_unique<MonitorReply>();
MonitorReply &ret = *reply;
BootstrapConfig::SP configSnapshot = getActiveConfigSnapshot();
const ProtonConfig &protonConfig = configSnapshot->getProtonConfig();
- ret.partid = protonConfig.partition;
ret.distribution_key = protonConfig.distributionkey;
ret.timestamp = (_matchEngine->isOnline()) ? 42 : 0;
ret.activeDocs = (_matchEngine->isOnline()) ? getNumActiveDocs() : 0;
- ret.activeDocsRequested = request->reportActiveDocs;
ret.is_blocking_writes = !_diskMemUsageSampler->writeFilter().acceptWriteOperation();
return reply;
}
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.h b/searchcore/src/vespa/searchcore/proton/server/proton.h
index 4396224fb01..0651e45bc49 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.h
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.h
@@ -78,31 +78,31 @@ private:
void setClusterName(const vespalib::string &clusterName, const vespalib::string &baseDir);
};
- const config::ConfigUri _configUri;
- mutable std::shared_mutex _mutex;
- std::unique_ptr<metrics::UpdateHook> _metricsHook;
- std::unique_ptr<MetricsEngine> _metricsEngine;
- ProtonFileHeaderContext _fileHeaderContext;
- std::unique_ptr<TLS> _tls;
- std::unique_ptr<DiskMemUsageSampler> _diskMemUsageSampler;
- std::unique_ptr<PersistenceEngine> _persistenceEngine;
- DocumentDBMap _documentDBMap;
- std::unique_ptr<MatchEngine> _matchEngine;
- std::unique_ptr<SummaryEngine> _summaryEngine;
- std::unique_ptr<DocsumBySlime> _docsumBySlime;
- MemoryFlushConfigUpdater::UP _memoryFlushConfigUpdater;
- std::unique_ptr<FlushEngine> _flushEngine;
+ const config::ConfigUri _configUri;
+ mutable std::shared_mutex _mutex;
+ std::unique_ptr<metrics::UpdateHook> _metricsHook;
+ std::unique_ptr<MetricsEngine> _metricsEngine;
+ ProtonFileHeaderContext _fileHeaderContext;
+ std::unique_ptr<TLS> _tls;
+ std::unique_ptr<DiskMemUsageSampler> _diskMemUsageSampler;
+ std::unique_ptr<PersistenceEngine> _persistenceEngine;
+ DocumentDBMap _documentDBMap;
+ std::unique_ptr<MatchEngine> _matchEngine;
+ std::unique_ptr<SummaryEngine> _summaryEngine;
+ std::unique_ptr<DocsumBySlime> _docsumBySlime;
+ MemoryFlushConfigUpdater::UP _memoryFlushConfigUpdater;
+ std::unique_ptr<FlushEngine> _flushEngine;
std::unique_ptr<PrepareRestartHandler> _prepareRestartHandler;
- RPCHooks::UP _rpcHooks;
- HealthAdapter _healthAdapter;
- vespalib::GenericStateHandler _genericStateHandler;
- vespalib::JsonHandlerRepo::Token::UP _customComponentBindToken;
- vespalib::JsonHandlerRepo::Token::UP _customComponentRootToken;
- std::unique_ptr<vespalib::StateServer> _stateServer;
- vespalib::ThreadStackExecutor _executor;
- std::unique_ptr<IProtonDiskLayout> _protonDiskLayout;
- ProtonConfigurer _protonConfigurer;
- ProtonConfigFetcher _protonConfigFetcher;
+ RPCHooks::UP _rpcHooks;
+ HealthAdapter _healthAdapter;
+ vespalib::GenericStateHandler _genericStateHandler;
+ vespalib::JsonHandlerRepo::Token::UP _customComponentBindToken;
+ vespalib::JsonHandlerRepo::Token::UP _customComponentRootToken;
+ std::unique_ptr<vespalib::StateServer> _stateServer;
+ vespalib::ThreadStackExecutor _executor;
+ std::unique_ptr<IProtonDiskLayout> _protonDiskLayout;
+ ProtonConfigurer _protonConfigurer;
+ ProtonConfigFetcher _protonConfigFetcher;
std::unique_ptr<vespalib::ThreadStackExecutorBase> _warmupExecutor;
std::shared_ptr<vespalib::ThreadStackExecutorBase> _sharedExecutor;
vespalib::eval::CompileCache::ExecutorBinding::UP _compile_cache_executor_binding;
@@ -128,7 +128,7 @@ private:
void removeDocumentDB(const DocTypeName &docTypeName) override;
void applyConfig(const BootstrapConfig::SP & configSnapshot) override;
- MonitorReply::UP ping(MonitorRequest::UP request, MonitorClient &client) override;
+ std::unique_ptr<MonitorReply> ping(std::unique_ptr<MonitorRequest> request, MonitorClient &client) override;
void waitForInitDone();
void waitForOnlineState();
diff --git a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp
index 16e4f93b6fb..9cf8c73765c 100644
--- a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp
+++ b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp
@@ -492,19 +492,6 @@ TEST_F(DocsumReplyTest, require_that_missing_root_slime_gives_empty_payload) {
//-----------------------------------------------------------------------------
-struct MonitorRequestTest : ::testing::Test {
- Converter::ProtoMonitorRequest proto;
- MonitorRequest request;
- void convert() { Converter::monitor_request_from_proto(proto, request); }
-};
-
-TEST_F(MonitorRequestTest, require_that_active_docs_are_always_requested) {
- convert();
- EXPECT_TRUE(request.reportActiveDocs);
-}
-
-//-----------------------------------------------------------------------------
-
struct MonitorReplyTest : ::testing::Test {
MonitorReply reply;
Converter::ProtoMonitorReply proto;
diff --git a/searchlib/src/tests/engine/proto_rpc_adapter/proto_rpc_adapter_test.cpp b/searchlib/src/tests/engine/proto_rpc_adapter/proto_rpc_adapter_test.cpp
index 1cd91329912..304e33900a6 100644
--- a/searchlib/src/tests/engine/proto_rpc_adapter/proto_rpc_adapter_test.cpp
+++ b/searchlib/src/tests/engine/proto_rpc_adapter/proto_rpc_adapter_test.cpp
@@ -62,7 +62,7 @@ struct MyDocsumServer : DocsumServer {
};
struct MyMonitorServer : MonitorServer {
- MonitorReply::UP ping(MonitorRequest::UP req, MonitorClient &) override {
+ std::unique_ptr<MonitorReply> ping(std::unique_ptr<MonitorRequest> req, MonitorClient &) override {
(void) req;
assert(req);
auto reply = std::make_unique<MonitorReply>();
diff --git a/searchlib/src/vespa/searchlib/engine/monitorapi.h b/searchlib/src/vespa/searchlib/engine/monitorapi.h
index ece52da74da..2f467f12e5c 100644
--- a/searchlib/src/vespa/searchlib/engine/monitorapi.h
+++ b/searchlib/src/vespa/searchlib/engine/monitorapi.h
@@ -20,7 +20,7 @@ public:
*
* @param reply the monitor reply
**/
- virtual void pingDone(MonitorReply::UP reply) = 0;
+ virtual void pingDone(std::unique_ptr<MonitorReply> reply) = 0;
/**
* Empty, needed for subclassing
@@ -52,7 +52,7 @@ public:
* @param request object containing request parameters
* @param client the client to be notified of async completion
**/
- virtual MonitorReply::UP ping(MonitorRequest::UP request, MonitorClient &client) = 0;
+ virtual std::unique_ptr<MonitorReply> ping(std::unique_ptr<MonitorRequest> request, MonitorClient &client) = 0;
/**
* Empty, needed for subclassing
diff --git a/searchlib/src/vespa/searchlib/engine/monitorreply.cpp b/searchlib/src/vespa/searchlib/engine/monitorreply.cpp
index 3414603a893..5d9c381515d 100644
--- a/searchlib/src/vespa/searchlib/engine/monitorreply.cpp
+++ b/searchlib/src/vespa/searchlib/engine/monitorreply.cpp
@@ -5,17 +5,9 @@
namespace search::engine {
MonitorReply::MonitorReply()
- : mld(),
- activeDocsRequested(false),
- partid(),
+ : activeDocs(0),
distribution_key(-1),
timestamp(),
- totalNodes(),
- activeNodes(),
- totalParts(),
- activeParts(),
- activeDocs(0),
- flags(),
is_blocking_writes(false)
{ }
diff --git a/searchlib/src/vespa/searchlib/engine/monitorreply.h b/searchlib/src/vespa/searchlib/engine/monitorreply.h
index f66a30fdd89..0010735ef43 100644
--- a/searchlib/src/vespa/searchlib/engine/monitorreply.h
+++ b/searchlib/src/vespa/searchlib/engine/monitorreply.h
@@ -2,25 +2,15 @@
#pragma once
-#include <memory>
+#include <cstdint>
namespace search::engine {
struct MonitorReply
{
- typedef std::unique_ptr<MonitorReply> UP;
-
- bool mld;
- bool activeDocsRequested;
- uint32_t partid;
+ uint64_t activeDocs;
int32_t distribution_key;
uint32_t timestamp;
- uint32_t totalNodes; // mld
- uint32_t activeNodes; // mld
- uint32_t totalParts; // mld
- uint32_t activeParts; // mld
- uint64_t activeDocs;
- uint32_t flags;
bool is_blocking_writes;
MonitorReply();
diff --git a/searchlib/src/vespa/searchlib/engine/monitorrequest.cpp b/searchlib/src/vespa/searchlib/engine/monitorrequest.cpp
index 1e5c2868cef..efc4faaa402 100644
--- a/searchlib/src/vespa/searchlib/engine/monitorrequest.cpp
+++ b/searchlib/src/vespa/searchlib/engine/monitorrequest.cpp
@@ -4,10 +4,7 @@
namespace search::engine {
-MonitorRequest::MonitorRequest()
- : reportActiveDocs(false), flags(0)
-{
-}
+MonitorRequest::MonitorRequest() = default;
}
diff --git a/searchlib/src/vespa/searchlib/engine/monitorrequest.h b/searchlib/src/vespa/searchlib/engine/monitorrequest.h
index ac07e42a68a..d99221e24ae 100644
--- a/searchlib/src/vespa/searchlib/engine/monitorrequest.h
+++ b/searchlib/src/vespa/searchlib/engine/monitorrequest.h
@@ -2,18 +2,10 @@
#pragma once
-#include <memory>
-
namespace search::engine {
struct MonitorRequest
{
- typedef std::shared_ptr<MonitorRequest> SP;
- typedef std::unique_ptr<MonitorRequest> UP;
-
- bool reportActiveDocs;
- uint32_t flags;
-
MonitorRequest();
};
diff --git a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp
index 53756bfcac6..9ad058c20ad 100644
--- a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp
+++ b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp
@@ -171,10 +171,8 @@ ProtoConverter::docsum_reply_to_proto(const DocsumReply &reply, ProtoDocsumReply
//-----------------------------------------------------------------------------
void
-ProtoConverter::monitor_request_from_proto(const ProtoMonitorRequest &proto, MonitorRequest &request)
+ProtoConverter::monitor_request_from_proto(const ProtoMonitorRequest &, MonitorRequest &)
{
- (void) proto;
- request.reportActiveDocs = true;
}
void
diff --git a/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp b/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp
index 4634c192a51..b1bc8ec37b4 100644
--- a/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp
+++ b/searchlib/src/vespa/searchlib/engine/proto_rpc_adapter.cpp
@@ -174,7 +174,7 @@ struct GetDocsumsCompletionHandler : DocsumClient {
struct PingCompletionHandler : MonitorClient {
FRT_RPCRequest &req;
PingCompletionHandler(FRT_RPCRequest &req_in) : req(req_in) {}
- void pingDone(MonitorReply::UP reply) override {
+ void pingDone(std::unique_ptr<MonitorReply> reply) override {
ProtoMonitorReply msg;
ProtoConverter::monitor_reply_to_proto(*reply, msg);
encode_message(msg, *req.GetReturn());