This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit d0710cefe032017800887fe68cbbb8a25a8f28a1 Author: Michael Blow <[email protected]> AuthorDate: Sat Jan 11 10:46:20 2020 -0500 [NO ISSUE][NET] Utilize unresolved NC reg address Follow on change to https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4643 which correctly consumes the unresolved NC registration addresses made available in the previous change. Change-Id: I316a37cc92da2f4bbb8990a3f0a43dd36095c47f Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/4683 Tested-by: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Integration-Tests: Jenkins <[email protected]> --- .../main/java/org/apache/hyracks/api/comm/NetworkAddress.java | 11 ++++++++++- .../org/apache/hyracks/control/cc/work/RegisterNodeWork.java | 2 +- .../hyracks/control/common/controllers/NodeRegistration.java | 5 +++-- .../org/apache/hyracks/control/nc/NodeControllerService.java | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/NetworkAddress.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/NetworkAddress.java index 4fad59a..d74f500 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/NetworkAddress.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/NetworkAddress.java @@ -33,7 +33,9 @@ public final class NetworkAddress implements IWritable, Serializable { private String address; // Cached locally, not serialized - private byte[] ipAddress; + private volatile byte[] ipAddress; + // Cached locally, not serialized + private volatile InetSocketAddress inetSocketAddress; private int port; @@ -73,6 +75,13 @@ public final class NetworkAddress implements IWritable, Serializable { return ipAddress; } + public InetSocketAddress resolveInetSocketAddress() { + if (inetSocketAddress == null) { + inetSocketAddress = new InetSocketAddress(address, port); + } + return inetSocketAddress; + } + public int getPort() { return port; } diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/RegisterNodeWork.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/RegisterNodeWork.java index fe33bc9..bb0684f 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/RegisterNodeWork.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/RegisterNodeWork.java @@ -51,7 +51,7 @@ public class RegisterNodeWork extends SynchronizableWork { String id = reg.getNodeId(); LOGGER.info("registering node: {}", id); NodeControllerRemoteProxy nc = new NodeControllerRemoteProxy(ccs.getCcId(), - ccs.getClusterIPC().getReconnectingHandle(reg.getNodeControllerAddress())); + ccs.getClusterIPC().getReconnectingHandle(reg.getNodeControllerPort().resolveInetSocketAddress())); INodeManager nodeManager = ccs.getNodeManager(); NodeParameters params = new NodeParameters(); params.setClusterControllerInfo(ccs.getClusterControllerInfo()); diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NodeRegistration.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NodeRegistration.java index bcf6d22..5f55513 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NodeRegistration.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NodeRegistration.java @@ -40,6 +40,7 @@ public final class NodeRegistration implements Serializable { private static final Logger LOGGER = LogManager.getLogger(); + @Deprecated private InetSocketAddress ncAddress; private NetworkAddress ncPort; @@ -109,8 +110,8 @@ public final class NodeRegistration implements Serializable { this.pid = PidHelper.getPid(); } - public InetSocketAddress getNodeControllerAddress() { - return ncAddress; + public NetworkAddress getNodeControllerPort() { + return ncPort; } public String getNodeId() { diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java index 3c456dd..1ce97a1 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java @@ -423,7 +423,7 @@ public class NodeControllerService implements IControllerService { NodeParameters nodeParameters = ccc.getNodeParameters(); // Start heartbeat generator. heartbeatManagers.computeIfAbsent(ccId, newCcId -> HeartbeatManager.init(this, ccc, hbTask.getHeartbeatData(), - nodeRegistration.getNodeControllerAddress())); + nodeRegistration.getNodeControllerPort().resolveInetSocketAddress())); if (!ccTimers.containsKey(ccId) && nodeParameters.getProfileDumpPeriod() > 0) { Timer ccTimer = new Timer("Timer-" + ccId, true); // Schedule profile dump generator.
