diff --git a/src/main/java/com/baidu/hugegraph/config/ConfigOption.java b/src/main/java/com/baidu/hugegraph/config/ConfigOption.java index 32e239984..a9dccb149 100644 --- a/src/main/java/com/baidu/hugegraph/config/ConfigOption.java +++ b/src/main/java/com/baidu/hugegraph/config/ConfigOption.java @@ -16,7 +16,8 @@ import com.google.common.collect.ImmutableSet; */ public class ConfigOption { - private static final Logger logger = LoggerFactory.getLogger(ConfigOption.class); + private static final Logger logger = + LoggerFactory.getLogger(ConfigOption.class); private static final Set> ACCEPTED_DATATYPES; private static final String ACCEPTED_DATATYPES_STRING; @@ -45,20 +46,20 @@ public class ConfigOption { private final Predicate checkFunc; public ConfigOption(String name, T value, Boolean rewritable, String desc, - Predicate verifyFunc) { - this(name, (Class) value.getClass(), value, rewritable, desc, verifyFunc); + Predicate func) { + this(name, (Class) value.getClass(), value, rewritable, desc, func); } - public ConfigOption(String name, Class dataType, T value, Boolean - rewritable, String desc, Predicate checkFunc) { + public ConfigOption(String name, Class dataType, T value, + Boolean rewritable, String desc, Predicate func) { Preconditions.checkNotNull(name); Preconditions.checkNotNull(dataType); Preconditions.checkNotNull(rewritable); if (!ACCEPTED_DATATYPES.contains(dataType)) { - String msg = String.format("Input datatype: '%s' doesn't belong " - + "to acceptable type set: [%s]", - dataType, ACCEPTED_DATATYPES_STRING); + String msg = String.format("Input datatype: '%s' doesn't belong " + + "to acceptable type set: [%s]", + dataType, ACCEPTED_DATATYPES_STRING); logger.error(msg); throw new IllegalArgumentException(msg); } @@ -68,7 +69,7 @@ public class ConfigOption { this.value = value; this.rewritable = rewritable; this.desc = desc; - this.checkFunc = checkFunc; + this.checkFunc = func; if (this.checkFunc != null) { check(this.value); @@ -93,19 +94,22 @@ public class ConfigOption { public void value(T value) { check(value); - E.checkArgument(this.rewritable, "Not allowed to modify option: '%s' " - + "which is unrewritable", this.name); + E.checkArgument(this.rewritable, + "Not allowed to modify option: '%s' which " + + "is unrewritable", this.name); this.value = value; } public void check(Object value) { E.checkNotNull(value, "value", this.name); E.checkArgument(this.dataType.isInstance(value), - "Invalid class for option '%s'. Expected '%s' but given '%s'", - this.name, this.dataType, value.getClass()); + "Invalid class for option '%s'. Expected '%s' but " + + "given '%s'", this.name, this.dataType, + value.getClass()); T result = (T) value; E.checkArgument(this.checkFunc.apply(result), - "Invalid option value for [%s]: %s", this.name, value); + "Invalid option value for [%s]: %s", + this.name, value); } } diff --git a/src/main/java/com/baidu/hugegraph/config/HugeConfig.java b/src/main/java/com/baidu/hugegraph/config/HugeConfig.java index 494fbb386..6e16fd23d 100644 --- a/src/main/java/com/baidu/hugegraph/config/HugeConfig.java +++ b/src/main/java/com/baidu/hugegraph/config/HugeConfig.java @@ -61,8 +61,8 @@ public class HugeConfig extends PropertiesConfiguration { File file = new File(fileName); E.checkArgument(file.exists() && file.isFile() && file.canRead(), - "Need to specify a readable config file, " + - "but got: %s", file.toString()); + "Need to specify a readable config file, " + + "but got: %s", file.toString()); return file; } @@ -79,7 +79,7 @@ public class HugeConfig extends PropertiesConfiguration { Class dataType = option.dataType(); String getMethod = "get" + dataType.getSimpleName(); Method method = this.getClass() - .getMethod(getMethod, String.class, dataType); + .getMethod(getMethod, String.class, dataType); option.value(method.invoke(this, key, option.value())); } } catch (Exception e) { diff --git a/src/main/java/com/baidu/hugegraph/config/OptionHolder.java b/src/main/java/com/baidu/hugegraph/config/OptionHolder.java index 00d1b7401..100f25acf 100644 --- a/src/main/java/com/baidu/hugegraph/config/OptionHolder.java +++ b/src/main/java/com/baidu/hugegraph/config/OptionHolder.java @@ -14,7 +14,8 @@ import com.baidu.hugegraph.exception.ConfigException; */ public class OptionHolder { - private static final Logger logger = LoggerFactory.getLogger(HugeConfig.class); + private static final Logger logger = + LoggerFactory.getLogger(HugeConfig.class); protected Map options; @@ -29,7 +30,8 @@ public class OptionHolder { ConfigOption option = (ConfigOption) field.get(this); this.options.put(option.name(), option); } catch (Exception e) { - String msg = String.format("Failed to regiser option : %s", field); + String msg = String.format( + "Failed to regiser option : %s", field); logger.error(msg, e); throw new ConfigException(msg, e); } diff --git a/src/main/java/com/baidu/hugegraph/config/OptionSpace.java b/src/main/java/com/baidu/hugegraph/config/OptionSpace.java index 7512aa350..7e75c2a3c 100644 --- a/src/main/java/com/baidu/hugegraph/config/OptionSpace.java +++ b/src/main/java/com/baidu/hugegraph/config/OptionSpace.java @@ -13,7 +13,8 @@ import com.google.common.collect.Maps; */ public class OptionSpace { - private static final Logger logger = LoggerFactory.getLogger(OptionSpace.class); + private static final Logger logger = + LoggerFactory.getLogger(OptionSpace.class); private static final Map options = Maps.newHashMap(); diff --git a/src/main/java/com/baidu/hugegraph/perf/PerfUtil.java b/src/main/java/com/baidu/hugegraph/perf/PerfUtil.java index 846bd0976..d24f4f30a 100644 --- a/src/main/java/com/baidu/hugegraph/perf/PerfUtil.java +++ b/src/main/java/com/baidu/hugegraph/perf/PerfUtil.java @@ -32,7 +32,8 @@ import javassist.NotFoundException; public class PerfUtil { - private static final Logger logger = LoggerFactory.getLogger(PerfUtil.class); + private static final Logger logger = + LoggerFactory.getLogger(PerfUtil.class); private static ThreadLocal instance = new ThreadLocal<>(); private Map stopwatches; @@ -40,7 +41,7 @@ public class PerfUtil { private PerfUtil() { this.stopwatches = new HashMap<>(); - this.callStack = new Stack(); + this.callStack = new Stack<>(); } public static PerfUtil instance() { @@ -143,7 +144,8 @@ public class PerfUtil { } ctMethod.insertBefore(String.format(START, name)); - ctMethod.insertAfter(String.format(END, name), true); // asFinally true + // Insert as a finally-statement + ctMethod.insertAfter(String.format(END, name), true); logger.debug("Profiled for: '{}' [{}]", name, ctMethod.getLongName()); } @@ -193,13 +195,13 @@ public class PerfUtil { sb.append("name: 'Total Cost',"); sb.append("type: 'pie',"); sb.append(String.format("radius: ['%s%%', '%s%%'],", - radiusFrom, radiusTo)); + radiusFrom, radiusTo)); sb.append(String.format( - "label: {normal: {position: 'inner', formatter:" - + "function(params) {" - + " if (params.percent > %s) return params.data.name;" - + " else return '';" - + "}}},", showFactor)); + "label: {normal: {position: 'inner', formatter:" + + "function(params) {" + + " if (params.percent > %s) return params.data.name;" + + " else return '';" + + "}}},", showFactor)); sb.append("data: ["); items.sort((i, j) -> i.id().compareTo(j.id())); @@ -239,8 +241,8 @@ public class PerfUtil { return sb.toString(); }; - BiConsumer, List> fillOther = ( - itemsOfI, parents) -> { + BiConsumer, List> fillOther = + (itemsOfI, parents) -> { for (Stopwatch parent : parents) { Stream children = itemsOfI.stream().filter(c -> { return c.parent().equals(parent.id()); diff --git a/src/main/java/com/baidu/hugegraph/perf/Stopwatch.java b/src/main/java/com/baidu/hugegraph/perf/Stopwatch.java index da6d451d2..6de525317 100644 --- a/src/main/java/com/baidu/hugegraph/perf/Stopwatch.java +++ b/src/main/java/com/baidu/hugegraph/perf/Stopwatch.java @@ -97,9 +97,9 @@ public class Stopwatch implements Cloneable { } public String toJson() { - return String.format("{\"totalCost\":%s, " - + "\"minCost\":%s, \"maxCost\":%s, \"times\":%s, " - + "\"name\":\"%s\", \"parent\":\"%s\"}", + return String.format("{\"totalCost\":%s, " + + "\"minCost\":%s, \"maxCost\":%s, \"times\":%s, " + + "\"name\":\"%s\", \"parent\":\"%s\"}", this.totalCost, this.minCost, this.maxCost, diff --git a/src/main/java/com/baidu/hugegraph/type/Shard.java b/src/main/java/com/baidu/hugegraph/type/Shard.java new file mode 100644 index 000000000..65d2c6379 --- /dev/null +++ b/src/main/java/com/baidu/hugegraph/type/Shard.java @@ -0,0 +1,52 @@ +package com.baidu.hugegraph.type; + +/** + * Shard is used for backend storage (like cassandra, hbase) scanning + * operations. Each shard represents a range of tokens for a node. + * Reading data from a given shard does not cross multiple nodes. + */ +public class Shard { + + // token range start + private String start; + // token range end + private String end; + // partitions count in this range + private long length; + + public Shard(String start, String end, long length) { + this.start = start; + this.end = end; + this.length = length; + } + + public String start() { + return this.start; + } + + public void start(String start) { + this.start = start; + } + + public String end() { + return this.end; + } + + public void end(String end) { + this.end = end; + } + + public long length() { + return this.length; + } + + public void length(long length) { + this.length = length; + } + + @Override + public String toString() { + return String.format("Shard{start=%s, end=%s, length=%s}", + this.start, this.end, this.length); + } +} \ No newline at end of file diff --git a/src/main/java/com/baidu/hugegraph/type/Split.java b/src/main/java/com/baidu/hugegraph/type/Split.java deleted file mode 100644 index d92614253..000000000 --- a/src/main/java/com/baidu/hugegraph/type/Split.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.baidu.hugegraph.type; - -public class Split { - - private String start; // token range start - private String end; // token range end - private long length; // partitions count in this range - - public Split(String start, String end, long length) { - this.start = start; - this.end = end; - this.length = length; - } - - public String start() { - return this.start; - } - - public void start(String start) { - this.start = start; - } - - public String end() { - return this.end; - } - - public void end(String end) { - this.end = end; - } - - public long length() { - return this.length; - } - - public void length(long length) { - this.length = length; - } - - @Override - public String toString() { - return String.format("Split{start=%s, end=%s, length=%s}", - this.start, this.end, this.length); - } -} \ No newline at end of file diff --git a/src/main/java/com/baidu/hugegraph/util/CheckSocket.java b/src/main/java/com/baidu/hugegraph/util/CheckSocket.java index 8b7893185..3f104f83d 100644 --- a/src/main/java/com/baidu/hugegraph/util/CheckSocket.java +++ b/src/main/java/com/baidu/hugegraph/util/CheckSocket.java @@ -42,9 +42,8 @@ public class CheckSocket { System.exit(E_USAGE); } try { - Socket s = new Socket( - InetAddress.getByName(args[0]), - Integer.valueOf(args[1]).intValue()); + Socket s = new Socket(InetAddress.getByName(args[0]), + Integer.valueOf(args[1]).intValue()); s.close(); System.exit(0); } catch (Throwable t) {