ASTERIXDB-1625: NC2NC Messaging NCService Config
NC2NC Messaging networking parameters should be configurable when using
NCService. Adds the following NCService INI configuration parameters:
- messaging.address
- messaging.port
- public.messaging.address
- public.messaging.port
Change-Id: Iacfd3cabb084319cd7458c938fd43f82b2f7fe52
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1231
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
index de336ed..049a55a 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
@@ -34,7 +34,8 @@
public class NCConfig implements Serializable {
private static final long serialVersionUID = 2L;
- @Option(name = "-cc-host", usage = "Cluster Controller host name (required unless specified in config file)", required = false)
+ @Option(name = "-cc-host", usage = "Cluster Controller host name (required unless specified in config file)",
+ required = false)
public String ccHost = null;
@Option(name = "-cc-port", usage = "Cluster Controller port (default: 1099)", required = false)
@@ -43,76 +44,100 @@
@Option(name = "-address", usage = "IP Address for NC (default: localhost)", required = false)
public String ipAddress = InetAddress.getLoopbackAddress().getHostAddress();
- @Option(name = "-cluster-net-ip-address", usage = "IP Address to bind cluster listener (default: same as -address)", required = false)
+ @Option(name = "-cluster-net-ip-address", usage = "IP Address to bind cluster listener (default: same as -address)",
+ required = false)
public String clusterNetIPAddress;
- @Option(name = "-cluster-net-port", usage = "IP port to bind cluster listener (default: random port)", required = false)
+ @Option(name = "-cluster-net-port", usage = "IP port to bind cluster listener (default: random port)",
+ required = false)
public int clusterNetPort = 0;
- @Option(name = "-cluster-net-public-ip-address", usage = "Public IP Address to announce cluster listener (default: same as -cluster-net-ip-address)", required = false)
+ @Option(name = "-cluster-net-public-ip-address",
+ usage = "Public IP Address to announce cluster listener (default: same as -cluster-net-ip-address)",
+ required = false)
public String clusterNetPublicIPAddress;
- @Option(name = "-cluster-net-public-port", usage = "Public IP port to announce cluster listener (default: same as -cluster-net-port; must set -cluser-net-public-ip-address also)", required = false)
+ @Option(name = "-cluster-net-public-port",
+ usage = "Public IP port to announce cluster listener (default: same as -cluster-net-port; " +
+ "must set -cluster-net-public-ip-address also)", required = false)
public int clusterNetPublicPort = 0;
- @Option(name = "-node-id", usage = "Logical name of node controller unique within the cluster (required unless specified in config file)", required = false)
+ @Option(name = "-node-id", usage = "Logical name of node controller unique within the cluster (required unless " +
+ "specified in config file)", required = false)
public String nodeId = null;
- @Option(name = "-data-ip-address", usage = "IP Address to bind data listener (default: same as -address)", required = false)
+ @Option(name = "-data-ip-address", usage = "IP Address to bind data listener (default: same as -address)",
+ required = false)
public String dataIPAddress;
@Option(name = "-data-port", usage = "IP port to bind data listener (default: random port)", required = false)
public int dataPort = 0;
- @Option(name = "-data-public-ip-address", usage = "Public IP Address to announce data listener (default: same as -data-ip-address)", required = false)
+ @Option(name = "-data-public-ip-address",
+ usage = "Public IP Address to announce data listener (default: same as -data-ip-address)", required = false)
public String dataPublicIPAddress;
- @Option(name = "-data-public-port", usage = "Public IP port to announce data listener (default: same as -data-port; must set -data-public-ip-address also)", required = false)
+ @Option(name = "-data-public-port",
+ usage = "Public IP port to announce data listener (default: same as -data-port; must set " +
+ "-data-public-ip-address also)", required = false)
public int dataPublicPort = 0;
- @Option(name = "-result-ip-address", usage = "IP Address to bind dataset result distribution listener (default: same as -address)", required = false)
+ @Option(name = "-result-ip-address",
+ usage = "IP Address to bind dataset result distribution listener (default: same as -address)",
+ required = false)
public String resultIPAddress;
- @Option(name = "-result-port", usage = "IP port to bind dataset result distribution listener (default: random port)", required = false)
+ @Option(name = "-result-port",
+ usage = "IP port to bind dataset result distribution listener (default: random port)",
+ required = false)
public int resultPort = 0;
- @Option(name = "-result-public-ip-address", usage = "Public IP Address to announce dataset result distribution listener (default: same as -result-ip-address)", required = false)
+ @Option(name = "-result-public-ip-address",
+ usage = "Public IP Address to announce dataset result distribution listener (default: same as " +
+ "-result-ip-address)", required = false)
public String resultPublicIPAddress;
- @Option(name = "-result-public-port", usage = "Public IP port to announce dataset result distribution listener (default: same as -result-port; must set -result-public-ip-address also)", required = false)
+ @Option(name = "-result-public-port", usage = "Public IP port to announce dataset result distribution listener " +
+ "(default: same as -result-port; must set -result-public-ip-address also)", required = false)
public int resultPublicPort = 0;
- @Option(name = "-retries", usage = "Number of attempts to contact CC before giving up (default = 5)")
+ @Option(name = "-retries", usage = "Number of attempts to contact CC before giving up (default: 5)")
public int retries = 5;
- @Option(name = "-iodevices", usage = "Comma separated list of IO Device mount points (default: One device in default temp folder)", required = false)
+ @Option(name = "-iodevices",
+ usage = "Comma separated list of IO Device mount points (default: One device in default temp folder)",
+ required = false)
public String ioDevices = System.getProperty("java.io.tmpdir");
@Option(name = "-net-thread-count", usage = "Number of threads to use for Network I/O (default: 1)")
public int nNetThreads = 1;
- @Option(name = "-net-buffer-count", usage = "Number of network buffers per input/output channel (default:1)", required = false)
+ @Option(name = "-net-buffer-count", usage = "Number of network buffers per input/output channel (default: 1)",
+ required = false)
public int nNetBuffers = 1;
@Option(name = "-max-memory", usage = "Maximum memory usable at this Node Controller in bytes (default: -1 auto)")
public int maxMemory = -1;
- @Option(name = "-result-time-to-live", usage = "Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds. (default: 24 hours)")
+ @Option(name = "-result-time-to-live", usage = "Limits the amount of time results for asynchronous jobs should " +
+ "be retained by the system in milliseconds. (default: 24 hours)")
public long resultTTL = 86400000;
- @Option(name = "-result-sweep-threshold", usage = "The duration within which an instance of the result cleanup should be invoked in milliseconds. (default: 1 minute)")
+ @Option(name = "-result-sweep-threshold", usage = "The duration within which an instance of the result cleanup " +
+ "should be invoked in milliseconds. (default: 1 minute)")
public long resultSweepThreshold = 60000;
- @Option(name = "-result-manager-memory", usage = "Memory usable for result caching at this Node Controller in bytes (default: -1 auto)")
+ @Option(name = "-result-manager-memory",
+ usage = "Memory usable for result caching at this Node Controller in bytes (default: -1 auto)")
public int resultManagerMemory = -1;
@Option(name = "-app-nc-main-class", usage = "Application NC Main Class")
public String appNCMainClass;
- @Option(name = "-config-file", usage = "Specify path to local configuration file (default: no local config)", required = false)
+ @Option(name = "-config-file", usage = "Specify path to local configuration file (default: no local config)",
+ required = false)
public String configFile = null;
- //TODO add messaging values to NC start scripts
@Option(name = "-messaging-ip-address", usage = "IP Address to bind messaging "
+ "listener (default: same as -address)", required = false)
public String messagingIPAddress;
@@ -166,7 +191,12 @@
dataPublicPort = IniUtils.getInt(ini, nodeSection, "public.data.port", dataPublicPort);
resultPublicIPAddress = IniUtils.getString(ini, nodeSection, "public.result.address", resultPublicIPAddress);
resultPublicPort = IniUtils.getInt(ini, nodeSection, "public.result.port", resultPublicPort);
- //TODO pass messaging info from ini file
+
+ messagingIPAddress = IniUtils.getString(ini, nodeSection, "messaging.address", messagingIPAddress);
+ messagingPort = IniUtils.getInt(ini, nodeSection, "messaging.port", messagingPort);
+ messagingPublicIPAddress = IniUtils.getString(ini, nodeSection, "public.messaging.address",
+ messagingPublicIPAddress);
+ messagingPublicPort = IniUtils.getInt(ini, nodeSection, "public.messaging.port", messagingPublicPort);
retries = IniUtils.getInt(ini, nodeSection, "retries", retries);