aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@yandex-team.ru>2022-02-25 17:23:17 +0300
committerhor911 <hor911@yandex-team.ru>2022-02-25 17:23:17 +0300
commit61429a8d8816ecf30d5fa28d89fc8ec7460e2ba7 (patch)
tree1021504f888f287d9489b39123e15265f2e952db
parent8d376b593b789ca1b7e9b2dafb9fe28c3c3f5e60 (diff)
downloadydb-61429a8d8816ecf30d5fa28d89fc8ec7460e2ba7.tar.gz
Use YQ own config to pass IC info
Use different config part tmp wip ref:f693fc1665e59c6d6a407bf60181142d8c70e682
-rw-r--r--ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp11
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.cpp36
-rw-r--r--ydb/core/yq/libs/config/protos/nodes_manager.proto2
3 files changed, 34 insertions, 15 deletions
diff --git a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp
index d8d29c7b7c..65fdae809f 100644
--- a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp
+++ b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp
@@ -513,12 +513,11 @@ protected:
}
}
- if (!nodeIdFoundInConfig && NodeKind == NODE_KIND_YQ && InterconnectPort && NodeId) {
- auto& nameserviceConfig = *AppConfig.MutableNameserviceConfig();
- auto& node = *nameserviceConfig.AddNode();
- node.SetPort(InterconnectPort);
- node.SetHost(HostName());
- node.SetNodeId(NodeId);
+ if (NodeKind == NODE_KIND_YQ && InterconnectPort) {
+ auto& yqConfig = *AppConfig.MutableYandexQueryConfig();
+ auto& nmConfig = *yqConfig.MutableNodesManager();
+ nmConfig.SetPort(InterconnectPort);
+ nmConfig.SetHost(HostName());
}
if (config.ParseResult->Has("suppress-version-check")) {
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
index 32554bb5c7..acfeed1f7d 100644
--- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
+++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
@@ -352,6 +352,14 @@ static TSchedulerConfig CreateSchedulerConfig(const NKikimrConfig::TActorSystemC
return TSchedulerConfig(resolution, spinThreshold, progressThreshold, useSchedulerActor);
}
+static bool IsServiceInitialized(NActors::TActorSystemSetup* setup, TActorId service)
+{
+ for (auto &pr : setup->LocalServices)
+ if (pr.first == service)
+ return true;
+ return false;
+}
+
TBasicServicesInitializer::TBasicServicesInitializer(const TKikimrRunConfig& runConfig)
: IKikimrServicesInitializer(runConfig)
{
@@ -561,7 +569,6 @@ void TBasicServicesInitializer::InitializeServices(NActors::TActorSystemSetup* s
} else if (node.HasLocation()) {
location = TNodeLocation(node.GetLocation());
}
-
table->StaticNodeTable[nodeId] = TTableNameserverSetup::TNodeInfo(addr, host, resolveHost, port, location);
++numNodes;
@@ -755,6 +762,25 @@ void TBasicServicesInitializer::InitializeServices(NActors::TActorSystemSetup* s
TMailboxType::ReadAsFilled, interconnectPoolId));
}
+ if (!IsServiceInitialized(setup, MakeInterconnectListenerActorId(false)) && !IsServiceInitialized(setup, MakeInterconnectListenerActorId(false))) {
+ if (Config.HasYandexQueryConfig() && Config.GetYandexQueryConfig().GetEnabled()) {
+ auto& nodesManagerConfig = Config.GetYandexQueryConfig().GetNodesManager();
+ if (nodesManagerConfig.GetEnabled()) {
+ TYandexQueryInitializer::SetIcPort(nodesManagerConfig.GetPort());
+ icCommon->TechnicalSelfHostName = nodesManagerConfig.GetHost();
+ //bind ipv6 interfaces by default
+ auto listener = new TInterconnectListenerTCP("::", nodesManagerConfig.GetPort(), icCommon);
+ if (int err = listener->Bind()) {
+ Cerr << "Failed to set up IC listener on port " << nodesManagerConfig.GetPort()
+ << " errno# " << err << " (" << strerror(err) << ")" << Endl;
+ exit(1);
+ }
+ setup->LocalServices.emplace_back(MakeInterconnectListenerActorId(true), TActorSetupCmd(listener,
+ TMailboxType::ReadAsFilled, interconnectPoolId));
+ }
+ }
+ }
+
// create load responder for interconnect
// TODO(alexvru): pool?
setup->LocalServices.emplace_back(NInterconnect::MakeLoadResponderActorId(NodeId),
@@ -1407,14 +1433,6 @@ void TMiniKQLCompileServiceInitializer::InitializeServices(NActors::TActorSystem
appData->UserPoolId)));
}
-static bool IsServiceInitialized(NActors::TActorSystemSetup* setup, TActorId service)
-{
- for (auto &pr : setup->LocalServices)
- if (pr.first == service)
- return true;
- return false;
-}
-
// TMessageBusServicesInitializer
TMessageBusServicesInitializer::TMessageBusServicesInitializer(const TKikimrRunConfig& runConfig,
diff --git a/ydb/core/yq/libs/config/protos/nodes_manager.proto b/ydb/core/yq/libs/config/protos/nodes_manager.proto
index 8daaff6bb4..cfc1073cae 100644
--- a/ydb/core/yq/libs/config/protos/nodes_manager.proto
+++ b/ydb/core/yq/libs/config/protos/nodes_manager.proto
@@ -8,4 +8,6 @@ option java_package = "ru.yandex.kikimr.proto";
message TNodesManagerConfig {
bool Enabled = 1;
+ uint32 Port = 2;
+ string Host = 3;
}