Repository: incubator-crail Updated Branches: refs/heads/master 45823af26 -> 7ea8753a6
DataNodeInfo.key() was not updated when the object got updated, this is fixed now. https://issues.apache.org/jira/browse/CRAIL-8 Close #4 Signed-off-by: Jonas Pfefferle <peppe...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/incubator-crail/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-crail/commit/7ea8753a Tree: http://git-wip-us.apache.org/repos/asf/incubator-crail/tree/7ea8753a Diff: http://git-wip-us.apache.org/repos/asf/incubator-crail/diff/7ea8753a Branch: refs/heads/master Commit: 7ea8753a64d2a1124de36f799471b0b3c2195f79 Parents: 45823af Author: Patrick Stuedi <s...@zurich.ibm.com> Authored: Thu Feb 22 16:59:08 2018 +0100 Committer: Jonas Pfefferle <peppe...@apache.org> Committed: Fri Feb 23 10:31:36 2018 +0100 ---------------------------------------------------------------------- .../org/apache/crail/metadata/DataNodeInfo.java | 4 ++- .../crail/storage/tcp/TcpStorageConstants.java | 35 ++++++++++++++++++++ .../crail/storage/tcp/TcpStorageServer.java | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-crail/blob/7ea8753a/client/src/main/java/org/apache/crail/metadata/DataNodeInfo.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/crail/metadata/DataNodeInfo.java b/client/src/main/java/org/apache/crail/metadata/DataNodeInfo.java index 0574ec7..7dade79 100644 --- a/client/src/main/java/org/apache/crail/metadata/DataNodeInfo.java +++ b/client/src/main/java/org/apache/crail/metadata/DataNodeInfo.java @@ -67,6 +67,7 @@ public class DataNodeInfo { this.ipAddress[i] = info.getIpAddress()[i]; } this.port = info.getPort(); + this.key = 0; } public int write(ByteBuffer buffer){ @@ -84,6 +85,7 @@ public class DataNodeInfo { this.locationClass = buffer.getInt(); buffer.get(ipAddress); this.port = buffer.getInt(); + this.key = 0; } public byte[] getIpAddress() { @@ -119,6 +121,6 @@ public class DataNodeInfo { return "DataNodeInfo [storageType=" + storageType + ", storageClass=" + storageClass + ", locationClass=" + locationClass + ", ipAddress=" + Arrays.toString(ipAddress) + ", port=" - + port + ", key=" + key + "]"; + + port + ", key=" + key() + "]"; } } http://git-wip-us.apache.org/repos/asf/incubator-crail/blob/7ea8753a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageConstants.java ---------------------------------------------------------------------- diff --git a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageConstants.java b/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageConstants.java index 1cbc6a1..55c882e 100644 --- a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageConstants.java +++ b/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageConstants.java @@ -19,11 +19,22 @@ package org.apache.crail.storage.tcp; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; import org.apache.crail.conf.CrailConfiguration; import org.apache.crail.conf.CrailConstants; +import org.apache.crail.utils.CrailUtils; import org.slf4j.Logger; +import java.util.Arrays; public class TcpStorageConstants { + private static final Logger LOG = CrailUtils.getLogger(); + public static final String STORAGE_TCP_INTERFACE_KEY = "crail.storage.tcp.interface"; public static String STORAGE_TCP_INTERFACE = "eth0"; @@ -42,6 +53,30 @@ public class TcpStorageConstants { public static final String STORAGE_TCP_QUEUE_DEPTH_KEY = "crail.storage.tcp.queuedepth"; public static int STORAGE_TCP_QUEUE_DEPTH = 16; + public static void init(CrailConfiguration conf, String[] args) throws Exception { + if (args != null) { + Option portOption = Option.builder("p").desc("port to start server on").hasArg().build(); + Options options = new Options(); + options.addOption(portOption); + CommandLineParser parser = new DefaultParser(); + + try { + CommandLine line = parser.parse(options, Arrays.copyOfRange(args, 0, args.length)); + if (line.hasOption(portOption.getOpt())) { + String port = line.getOptionValue(portOption.getOpt()); + LOG.info("using custom port " + port); + conf.set(TcpStorageConstants.STORAGE_TCP_PORT_KEY, port); + } + } catch (ParseException e) { + HelpFormatter formatter = new HelpFormatter(); + formatter.printHelp("RDMA storage tier", options); + System.exit(-1); + } + } + + TcpStorageConstants.updateConstants(conf); + } + public static void updateConstants(CrailConfiguration conf){ if (conf.get(STORAGE_TCP_INTERFACE_KEY) != null) { STORAGE_TCP_INTERFACE = conf.get(STORAGE_TCP_INTERFACE_KEY); http://git-wip-us.apache.org/repos/asf/incubator-crail/blob/7ea8753a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageServer.java ---------------------------------------------------------------------- diff --git a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageServer.java b/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageServer.java index 83b5eb9..9ed2260 100644 --- a/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageServer.java +++ b/storage-narpc/src/main/java/org/apache/crail/storage/tcp/TcpStorageServer.java @@ -59,7 +59,7 @@ public class TcpStorageServer implements Runnable, StorageServer, NaRPCService<T @Override public void init(CrailConfiguration conf, String[] args) throws Exception { - TcpStorageConstants.updateConstants(conf); + TcpStorageConstants.init(conf, args); this.serverGroup = new NaRPCServerGroup<TcpStorageRequest, TcpStorageResponse>(this, TcpStorageConstants.STORAGE_TCP_QUEUE_DEPTH, (int) CrailConstants.BLOCK_SIZE*2, false); this.serverEndpoint = serverGroup.createServerEndpoint();