aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorAleksandr Khoroshilov <hor911@gmail.com>2022-06-30 19:03:49 +0300
committerAleksandr Khoroshilov <hor911@gmail.com>2022-06-30 19:03:49 +0300
commitfd58b11067041cacf6feca44fe47f46bc01422dc (patch)
treeb43874aa28eb9adb801623260afe5e89fc3e8646 /library
parent81fd9ea2d075516cb0725f85118dcca474cd42e3 (diff)
downloadydb-fd58b11067041cacf6feca44fe47f46bc01422dc.tar.gz
DC awareness
ref:cf26d330761ea0ba13530ba17766b91269d2ab35
Diffstat (limited to 'library')
-rw-r--r--library/cpp/actors/core/interconnect.cpp7
-rw-r--r--library/cpp/actors/core/interconnect.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/library/cpp/actors/core/interconnect.cpp b/library/cpp/actors/core/interconnect.cpp
index 9b377cbb00..192fb68769 100644
--- a/library/cpp/actors/core/interconnect.cpp
+++ b/library/cpp/actors/core/interconnect.cpp
@@ -76,6 +76,13 @@ namespace NActors {
: TNodeLocation(ParseLocation(s))
{}
+ TNodeLocation::TNodeLocation(const TString& DataCenter, const TString& Module, const TString& Rack, const TString& Unit) {
+ if (DataCenter) Items.emplace_back(TKeys::DataCenter, DataCenter);
+ if (Module) Items.emplace_back(TKeys::Module, Module);
+ if (Rack) Items.emplace_back(TKeys::Rack, Rack);
+ if (Unit) Items.emplace_back(TKeys::Unit, Unit);
+ }
+
NActorsInterconnect::TNodeLocation TNodeLocation::ParseLocation(const TString& s) {
NActorsInterconnect::TNodeLocation res;
const bool success = res.ParseFromString(s);
diff --git a/library/cpp/actors/core/interconnect.h b/library/cpp/actors/core/interconnect.h
index 5ecac1deec..37fd7bff4d 100644
--- a/library/cpp/actors/core/interconnect.h
+++ b/library/cpp/actors/core/interconnect.h
@@ -57,6 +57,7 @@ namespace NActors {
TNodeLocation() = default;
TNodeLocation(const TNodeLocation&) = default;
TNodeLocation(TNodeLocation&&) = default;
+ TNodeLocation(const TString& DataCenter, const TString& Module = "", const TString& Rack = "", const TString& Unit = "");
// protobuf-parser ctor
explicit TNodeLocation(const NActorsInterconnect::TNodeLocation& location);
@@ -79,6 +80,7 @@ namespace NActors {
TString GetDataCenterId() const { return ToStringUpTo(TKeys::DataCenter); }
TString GetModuleId() const { return ToStringUpTo(TKeys::Module); }
TString GetRackId() const { return ToStringUpTo(TKeys::Rack); }
+ TString GetUnitId() const { return ToStringUpTo(TKeys::Unit); }
TString ToString() const { return ToStringUpTo(TKeys::E(Max<int>())); }
TString ToStringUpTo(TKeys::E upToKey) const;