From a1744f67fe954d8408c5b84e28ecccc130157f8e Mon Sep 17 00:00:00 2001 From: ashione Date: Tue, 19 Nov 2019 15:03:46 +0800 Subject: [PATCH] Add hostname to nodeinfo(#6156) --- .../src/main/java/org/ray/api/runtimecontext/NodeInfo.java | 6 +++++- .../src/main/java/org/ray/runtime/gcs/GcsClient.java | 6 ++++-- python/ray/state.py | 1 + src/ray/protobuf/gcs.proto | 3 +++ src/ray/raylet/raylet.cc | 4 +++- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/java/api/src/main/java/org/ray/api/runtimecontext/NodeInfo.java b/java/api/src/main/java/org/ray/api/runtimecontext/NodeInfo.java index 12d011fd9..92694a401 100644 --- a/java/api/src/main/java/org/ray/api/runtimecontext/NodeInfo.java +++ b/java/api/src/main/java/org/ray/api/runtimecontext/NodeInfo.java @@ -12,14 +12,17 @@ public class NodeInfo { public final String nodeAddress; + public final String nodeHostname; + public final boolean isAlive; public final Map resources; - public NodeInfo(UniqueId nodeId, String nodeAddress, + public NodeInfo(UniqueId nodeId, String nodeAddress, String nodeHostname, boolean isAlive, Map resources) { this.nodeId = nodeId; this.nodeAddress = nodeAddress; + this.nodeHostname = nodeHostname; this.isAlive = isAlive; this.resources = resources; } @@ -28,6 +31,7 @@ public class NodeInfo { return "NodeInfo{" + "nodeId='" + nodeId + '\'' + ", nodeAddress='" + nodeAddress + "\'" + + ", nodeHostname'" + nodeHostname + "\'" + ", isAlive=" + isAlive + ", resources=" + resources + "}"; diff --git a/java/runtime/src/main/java/org/ray/runtime/gcs/GcsClient.java b/java/runtime/src/main/java/org/ray/runtime/gcs/GcsClient.java index 8e55043f8..1b46a3a2b 100644 --- a/java/runtime/src/main/java/org/ray/runtime/gcs/GcsClient.java +++ b/java/runtime/src/main/java/org/ray/runtime/gcs/GcsClient.java @@ -77,12 +77,14 @@ public class GcsClient { if (data.getState() == GcsNodeInfo.GcsNodeState.ALIVE) { //Code path of node insertion. NodeInfo nodeInfo = new NodeInfo( - nodeId, data.getNodeManagerAddress(), true, new HashMap<>()); + nodeId, data.getNodeManagerAddress(), + data.getNodeManagerHostname(), + true, new HashMap<>()); nodes.put(nodeId, nodeInfo); } else { // Code path of node deletion. NodeInfo nodeInfo = new NodeInfo(nodeId, nodes.get(nodeId).nodeAddress, - false, new HashMap<>()); + nodes.get(nodeId).nodeHostname, false, new HashMap<>()); nodes.put(nodeId, nodeInfo); } } diff --git a/python/ray/state.py b/python/ray/state.py index f561a793e..3d86118a4 100644 --- a/python/ray/state.py +++ b/python/ray/state.py @@ -58,6 +58,7 @@ def _parse_client_table(redis_client): "NodeID": node_id, "Alive": True, "NodeManagerAddress": item.node_manager_address, + "NodeManagerHostname": item.node_manager_hostname, "NodeManagerPort": item.node_manager_port, "ObjectManagerPort": item.object_manager_port, "ObjectStoreSocketName": item.object_store_socket_name, diff --git a/src/ray/protobuf/gcs.proto b/src/ray/protobuf/gcs.proto index 7bcb84e14..9003bfd66 100644 --- a/src/ray/protobuf/gcs.proto +++ b/src/ray/protobuf/gcs.proto @@ -183,6 +183,9 @@ message GcsNodeInfo { // Current state of this node. GcsNodeState state = 7; + + // The Hostname address of the node manager. + string node_manager_hostname = 8; } message HeartbeatTableData { diff --git a/src/ray/raylet/raylet.cc b/src/ray/raylet/raylet.cc index 56b509240..b3c8d8c37 100644 --- a/src/ray/raylet/raylet.cc +++ b/src/ray/raylet/raylet.cc @@ -84,12 +84,14 @@ ray::Status Raylet::RegisterGcs(const std::string &node_ip_address, node_info.set_object_store_socket_name(object_store_socket_name); node_info.set_object_manager_port(object_manager_.GetServerPort()); node_info.set_node_manager_port(node_manager_.GetServerPort()); + node_info.set_node_manager_hostname(boost::asio::ip::host_name()); RAY_LOG(DEBUG) << "Node manager " << gcs_client_->client_table().GetLocalClientId() << " started on " << node_info.node_manager_address() << ":" << node_info.node_manager_port() << " object manager at " << node_info.node_manager_address() << ":" - << node_info.object_manager_port(); + << node_info.object_manager_port() << ", hostname " + << node_info.node_manager_hostname(); ; RAY_RETURN_NOT_OK(gcs_client_->client_table().Connect(node_info));