diff options
author | hor911 <hor911@yandex-team.ru> | 2022-02-25 17:23:17 +0300 |
---|---|---|
committer | hor911 <hor911@yandex-team.ru> | 2022-02-25 17:23:17 +0300 |
commit | 61429a8d8816ecf30d5fa28d89fc8ec7460e2ba7 (patch) | |
tree | 1021504f888f287d9489b39123e15265f2e952db | |
parent | 8d376b593b789ca1b7e9b2dafb9fe28c3c3f5e60 (diff) | |
download | ydb-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.cpp | 11 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.cpp | 36 | ||||
-rw-r--r-- | ydb/core/yq/libs/config/protos/nodes_manager.proto | 2 |
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; } |