This is an automated email from the ASF dual-hosted git repository. jin pushed a commit to branch olap-algo in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
commit b8936c76760637ac2cf80398810d398b57a08867 Author: Zhangmei Li <[email protected]> AuthorDate: Fri Jun 5 17:38:26 2020 +0800 rebase master(0.11.1) Change-Id: I565602945a26c2a575baaa3f17d084b65399a009 --- .../java/com/baidu/hugegraph/job/AlgorithmJob.java | 2 +- .../hugegraph/job/algorithm/AbstractAlgorithm.java | 8 ++--- .../baidu/hugegraph/job/algorithm/Algorithm.java | 4 +-- .../job/algorithm/CountEdgeAlgorithm.java | 6 ++-- .../job/algorithm/CountVertexAlgorithm.java | 6 ++-- .../job/algorithm/SubgraphStatAlgorithm.java | 34 ++++++++++++---------- .../job/algorithm/cent/AbstractCentAlgorithm.java | 4 +-- .../cent/BetweenessCentralityAlgorithm.java | 6 ++-- .../cent/ClosenessCentralityAlgorithm.java | 6 ++-- .../algorithm/cent/DegreeCentralityAlgorithm.java | 6 ++-- .../cent/EigenvectorCentralityAlgorithm.java | 6 ++-- .../algorithm/comm/ClusterCoeffcientAlgorithm.java | 6 ++-- .../job/algorithm/comm/KCoreAlgorithm.java | 6 ++-- .../job/algorithm/comm/LouvainAlgorithm.java | 4 +-- .../job/algorithm/comm/LouvainTraverser.java | 4 +-- .../hugegraph/job/algorithm/comm/LpaAlgorithm.java | 6 ++-- .../job/algorithm/comm/TriangleCountAlgorithm.java | 10 +++---- .../job/algorithm/comm/WeakConnectedComponent.java | 8 ++--- .../job/algorithm/path/RingsDetectAlgorithm.java | 6 ++-- .../job/algorithm/rank/PageRankAlgorithm.java | 6 ++-- .../similarity/FusiformSimilarityAlgorithm.java | 6 ++-- 21 files changed, 76 insertions(+), 74 deletions(-) diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/AlgorithmJob.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/AlgorithmJob.java index 7e752ac42..f25c1b250 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/AlgorithmJob.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/AlgorithmJob.java @@ -26,7 +26,7 @@ import com.baidu.hugegraph.job.algorithm.AlgorithmPool; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.JsonUtil; -public class AlgorithmJob extends Job<Object> { +public class AlgorithmJob extends UserJob<Object> { public static final String TASK_TYPE = "algorithm"; diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java index e30ce1e16..cc245f6f9 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java @@ -44,7 +44,7 @@ import com.baidu.hugegraph.backend.query.ConditionQuery; import com.baidu.hugegraph.backend.query.Query; import com.baidu.hugegraph.iterator.FilterIterator; import com.baidu.hugegraph.iterator.FlatMapperIterator; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.Consumers.StopExecution; import com.baidu.hugegraph.testutil.Whitebox; import com.baidu.hugegraph.traversal.algorithm.HugeTraverser; @@ -323,17 +323,17 @@ public abstract class AbstractAlgorithm implements Algorithm { public static class AlgoTraverser extends HugeTraverser implements AutoCloseable { - private final Job<Object> job; + private final UserJob<Object> job; protected final ExecutorService executor; protected long progress; - public AlgoTraverser(Job<Object> job) { + public AlgoTraverser(UserJob<Object> job) { super(job.graph()); this.job = job; this.executor = null; } - protected AlgoTraverser(Job<Object> job, String name, int workers) { + protected AlgoTraverser(UserJob<Object> job, String name, int workers) { super(job.graph()); this.job = job; String prefix = name + "-" + job.task().id(); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java index 6ad200157..b1cb53144 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java @@ -21,7 +21,7 @@ package com.baidu.hugegraph.job.algorithm; import java.util.Map; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; public interface Algorithm { @@ -29,7 +29,7 @@ public interface Algorithm { public String category(); - public Object call(Job<Object> job, Map<String, Object> parameters); + public Object call(UserJob<Object> job, Map<String, Object> parameters); public void checkParameters(Map<String, Object> parameters); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountEdgeAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountEdgeAlgorithm.java index 670f54471..9ed617b08 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountEdgeAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountEdgeAlgorithm.java @@ -26,7 +26,7 @@ import java.util.Map; import org.apache.commons.lang3.mutable.MutableLong; import org.apache.tinkerpop.gremlin.structure.Edge; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.util.JsonUtil; public class CountEdgeAlgorithm extends AbstractAlgorithm { @@ -42,7 +42,7 @@ public class CountEdgeAlgorithm extends AbstractAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.count(); } @@ -50,7 +50,7 @@ public class CountEdgeAlgorithm extends AbstractAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountVertexAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountVertexAlgorithm.java index 68a59a363..721979c35 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountVertexAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/CountVertexAlgorithm.java @@ -26,7 +26,7 @@ import java.util.Map; import org.apache.commons.lang3.mutable.MutableLong; import org.apache.tinkerpop.gremlin.structure.Vertex; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.util.JsonUtil; public class CountVertexAlgorithm extends AbstractAlgorithm { @@ -42,7 +42,7 @@ public class CountVertexAlgorithm extends AbstractAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.count(); } @@ -50,7 +50,7 @@ public class CountVertexAlgorithm extends AbstractAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java index 4ce97d362..199d1b020 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java @@ -27,10 +27,11 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo import org.apache.tinkerpop.gremlin.structure.Vertex; import com.baidu.hugegraph.HugeGraph; +import com.baidu.hugegraph.StandardHugeGraph; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.config.CoreOptions; import com.baidu.hugegraph.config.HugeConfig; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.cent.BetweenessCentralityAlgorithm; import com.baidu.hugegraph.job.algorithm.cent.ClosenessCentralityAlgorithm; import com.baidu.hugegraph.job.algorithm.cent.DegreeCentralityAlgorithm; @@ -39,6 +40,7 @@ import com.baidu.hugegraph.job.algorithm.comm.ClusterCoeffcientAlgorithm; import com.baidu.hugegraph.job.algorithm.path.RingsDetectAlgorithm; import com.baidu.hugegraph.job.algorithm.rank.PageRankAlgorithm; import com.baidu.hugegraph.task.HugeTask; +import com.baidu.hugegraph.testutil.Whitebox; import com.baidu.hugegraph.traversal.algorithm.HugeTraverser; import com.baidu.hugegraph.traversal.optimize.HugeScriptTraversal; import com.baidu.hugegraph.util.E; @@ -66,27 +68,27 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { HugeGraph graph = this.createTempGraph(job); try (Traverser traverser = new Traverser(job)) { - this.initGraph(job.graph(), graph, subgraph(parameters), - copySchema(parameters)); - Job<Object> tmpJob = new TempJob<>(graph, job, job.task()); + this.initGraph(job.graph(), graph, + subgraph(parameters), copySchema(parameters)); + UserJob<Object> tmpJob = new TempJob<>(graph, job, job.task()); return traverser.subgraphStat(tmpJob); } finally { graph.truncateBackend(); - // FIXME: task thread can't call close() here (will hang) - graph.closeTx(); + // FIXME: task thread can't call close() (will hang), use closeTx() + Whitebox.invoke(graph.getClass(), "closeTx", graph); } } - private HugeGraph createTempGraph(Job<Object> job) { + private HugeGraph createTempGraph(UserJob<Object> job) { Id id = job.task().id(); PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty(CoreOptions.BACKEND.name(), "memory"); config.setProperty(CoreOptions.STORE.name(), "tmp_" + id); config.setDelimiterParsingDisabled(true); - return new HugeGraph(new HugeConfig(config)); + return new StandardHugeGraph(new HugeConfig(config)); } @SuppressWarnings("resource") @@ -127,11 +129,11 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { "top", -1L /* sorted */, "workers", 0); - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } - public Object subgraphStat(Job<Object> job) { + public Object subgraphStat(UserJob<Object> job) { Map<String, Object> results = InsertionOrderUtil.newMap(); GraphTraversalSource g = job.graph().traversal(); @@ -168,7 +170,7 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { return results; } - private Map<Object, Double> pageRanks(Job<Object> job) { + private Map<Object, Double> pageRanks(UserJob<Object> job) { PageRankAlgorithm algo = new PageRankAlgorithm(); algo.call(job, ImmutableMap.of("alpha", 0.15)); @@ -184,12 +186,12 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { } } - private static class TempJob<V> extends Job<V> { + private static class TempJob<V> extends UserJob<V> { - private final Job<V> parent; + private final UserJob<V> parent; - public TempJob(HugeGraph graph, Job<V> job, HugeTask<V> task) { - this.scheduler(graph.taskScheduler()); + public TempJob(HugeGraph graph, UserJob<V> job, HugeTask<V> task) { + this.graph(graph); this.task(task); this.parent = job; } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java index 7b11c134c..19da8e968 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java @@ -34,7 +34,7 @@ import org.apache.tinkerpop.gremlin.structure.Direction; import org.apache.tinkerpop.gremlin.structure.Vertex; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.AbstractAlgorithm; import com.baidu.hugegraph.structure.HugeElement; import com.baidu.hugegraph.type.define.Directions; @@ -61,7 +61,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm { protected static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java index 40b38f655..465c6f96c 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java @@ -27,7 +27,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.structure.Vertex; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.type.define.Directions; public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm { @@ -38,7 +38,7 @@ public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.betweenessCentrality(direction(parameters), edgeLabel(parameters), @@ -54,7 +54,7 @@ public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm { private static class Traverser extends AbstractCentAlgorithm.Traverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java index 9a25b6394..3391a191a 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java @@ -29,7 +29,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.structure.Vertex; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.type.define.Directions; public class ClosenessCentralityAlgorithm extends AbstractCentAlgorithm { @@ -48,7 +48,7 @@ public class ClosenessCentralityAlgorithm extends AbstractCentAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.closenessCentrality(direction(parameters), edgeLabel(parameters), @@ -64,7 +64,7 @@ public class ClosenessCentralityAlgorithm extends AbstractCentAlgorithm { private static class Traverser extends AbstractCentAlgorithm.Traverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java index 01b3e5c4b..b2030e845 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java @@ -27,7 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.structure.HugeEdge; import com.baidu.hugegraph.type.define.Directions; @@ -46,7 +46,7 @@ public class DegreeCentralityAlgorithm extends AbstractCentAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.degreeCentrality(direction(parameters), edgeLabel(parameters), @@ -56,7 +56,7 @@ public class DegreeCentralityAlgorithm extends AbstractCentAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java index 0f695a1fb..15748ec72 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java @@ -26,7 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.structure.T; import org.apache.tinkerpop.gremlin.structure.Vertex; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.type.define.Directions; public class EigenvectorCentralityAlgorithm extends AbstractCentAlgorithm { @@ -40,7 +40,7 @@ public class EigenvectorCentralityAlgorithm extends AbstractCentAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.eigenvectorCentrality(direction(parameters), edgeLabel(parameters), @@ -56,7 +56,7 @@ public class EigenvectorCentralityAlgorithm extends AbstractCentAlgorithm { private static class Traverser extends AbstractCentAlgorithm.Traverser { - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java index 3f3a26c3c..2a0cf1a42 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java @@ -21,7 +21,7 @@ package com.baidu.hugegraph.job.algorithm.comm; import java.util.Map; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.type.define.Directions; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.InsertionOrderUtil; @@ -43,7 +43,7 @@ public class ClusterCoeffcientAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workersWhenBoth(parameters); try (Traverser traverser = new Traverser(job, workers)) { return traverser.clusterCoeffcient(direction(parameters), @@ -63,7 +63,7 @@ public class ClusterCoeffcientAlgorithm extends AbstractCommAlgorithm { private static class Traverser extends TriangleCountAlgorithm.Traverser { - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java index 52ddeeb71..508052354 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java @@ -33,7 +33,7 @@ import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; import com.baidu.hugegraph.HugeGraph; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.schema.EdgeLabel; import com.baidu.hugegraph.traversal.algorithm.FusiformSimilarityTraverser; import com.baidu.hugegraph.type.define.Directions; @@ -70,7 +70,7 @@ public class KCoreAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workers(parameters); try (Traverser traverser = new Traverser(job, workers)) { return traverser.kcore(sourceLabel(parameters), @@ -102,7 +102,7 @@ public class KCoreAlgorithm extends AbstractCommAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainAlgorithm.java index 8eee9f43e..f05f85e56 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainAlgorithm.java @@ -21,7 +21,7 @@ package com.baidu.hugegraph.job.algorithm.comm; import java.util.Map; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.traversal.algorithm.HugeTraverser; public class LouvainAlgorithm extends AbstractCommAlgorithm { @@ -48,7 +48,7 @@ public class LouvainAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { String label = sourceLabel(parameters); String clabel = sourceCLabel(parameters); long degree = degree(parameters); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java index 6135d1d40..3a8a83f53 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java @@ -48,7 +48,7 @@ import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.backend.id.IdGenerator; import com.baidu.hugegraph.exception.ExistedException; import com.baidu.hugegraph.iterator.ListIterator; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.AbstractAlgorithm; import com.baidu.hugegraph.job.algorithm.AbstractAlgorithm.AlgoTraverser; import com.baidu.hugegraph.job.algorithm.Consumers; @@ -83,7 +83,7 @@ public class LouvainTraverser extends AlgoTraverser { private long m; private String passLabel; - public LouvainTraverser(Job<Object> job, int workers, long degree, + public LouvainTraverser(UserJob<Object> job, int workers, long degree, String sourceLabel, String sourceCLabel) { super(job, LouvainAlgorithm.ALGO_NAME, workers); this.g = this.graph().traversal(); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java index 0f3506a15..8b54241fe 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java @@ -32,7 +32,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.structure.Vertex; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.schema.SchemaManager; import com.baidu.hugegraph.schema.VertexLabel; import com.baidu.hugegraph.type.define.Directions; @@ -61,7 +61,7 @@ public class LpaAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workers(parameters); String showComm = showCommunity(parameters); @@ -88,7 +88,7 @@ public class LpaAlgorithm extends AbstractCommAlgorithm { private final Random R = new Random(); - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/TriangleCountAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/TriangleCountAlgorithm.java index d8a17653c..4cecc623b 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/TriangleCountAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/TriangleCountAlgorithm.java @@ -30,7 +30,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge; import com.baidu.hugegraph.backend.id.Id; import com.baidu.hugegraph.backend.id.IdGenerator; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.structure.HugeEdge; import com.baidu.hugegraph.type.define.Directions; import com.baidu.hugegraph.util.E; @@ -54,7 +54,7 @@ public class TriangleCountAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workersWhenBoth(parameters); try (Traverser traverser = new Traverser(job, workers)) { return traverser.triangleCount(direction4Out(parameters), @@ -77,11 +77,11 @@ public class TriangleCountAlgorithm extends AbstractCommAlgorithm { protected static final String KEY_TRIANGLES = "triangles"; protected static final String KEY_TRIADS = "triads"; - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); } - protected Traverser(Job<Object> job, String name, int workers) { + protected Traverser(UserJob<Object> job, String name, int workers) { super(job, name, workers); } @@ -205,7 +205,7 @@ public class TriangleCountAlgorithm extends AbstractCommAlgorithm { protected long intersect(long degree, Set<Id> adjVertices) { long count = 0L; Directions dir = Directions.OUT; - Id empty = IdGenerator.of(0); + Id empty = IdGenerator.ZERO; Iterator<Id> vertices; for (Id v : adjVertices) { vertices = this.adjacentVertices(v, dir, null, degree); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/WeakConnectedComponent.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/WeakConnectedComponent.java index 99dee85cd..435a6e777 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/WeakConnectedComponent.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/WeakConnectedComponent.java @@ -30,7 +30,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.slf4j.Logger; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.schema.SchemaManager; import com.baidu.hugegraph.schema.VertexLabel; import com.baidu.hugegraph.structure.HugeEdge; @@ -56,7 +56,7 @@ public class WeakConnectedComponent extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.connectedComponent(times(parameters), directionOutIn(parameters), @@ -71,7 +71,7 @@ public class WeakConnectedComponent extends AbstractCommAlgorithm { private final Map<Id, Id> vertexComponentMap = new HashMap<>(); - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); } @@ -81,7 +81,7 @@ public class WeakConnectedComponent extends AbstractCommAlgorithm { this.initSchema(); this.initVertexComponentMap(); int times; - + for (times = 0; times < maxTimes; times++) { long changeCount = 0; Id currentSourceVertexId = null; diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java index bbb028efc..d228b70a2 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java @@ -23,7 +23,7 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.AbstractAlgorithm; import com.baidu.hugegraph.job.algorithm.Consumers.StopExecution; import com.baidu.hugegraph.traversal.algorithm.SubGraphTraverser; @@ -61,7 +61,7 @@ public class RingsDetectAlgorithm extends AbstractAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workers(parameters); try (Traverser traverser = new Traverser(job, workers)) { return traverser.rings(sourceLabel(parameters), @@ -85,7 +85,7 @@ public class RingsDetectAlgorithm extends AbstractAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/rank/PageRankAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/rank/PageRankAlgorithm.java index 9f51bf7b6..fa552e399 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/rank/PageRankAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/rank/PageRankAlgorithm.java @@ -30,7 +30,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.slf4j.Logger; import com.baidu.hugegraph.backend.id.Id; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.comm.AbstractCommAlgorithm; import com.baidu.hugegraph.schema.SchemaManager; import com.baidu.hugegraph.schema.VertexLabel; @@ -64,7 +64,7 @@ public class PageRankAlgorithm extends AbstractCommAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { try (Traverser traverser = new Traverser(job)) { return traverser.pageRank(alpha(parameters), times(parameters), @@ -85,7 +85,7 @@ public class PageRankAlgorithm extends AbstractCommAlgorithm { */ private final Map<Id, DoublePair> vertexRankMap; - public Traverser(Job<Object> job) { + public Traverser(UserJob<Object> job) { super(job); this.vertexRankMap = new HashMap<>(); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/similarity/FusiformSimilarityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/similarity/FusiformSimilarityAlgorithm.java index fbaca4960..daf5b09aa 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/similarity/FusiformSimilarityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/similarity/FusiformSimilarityAlgorithm.java @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicLong; import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; import com.baidu.hugegraph.HugeGraph; -import com.baidu.hugegraph.job.Job; +import com.baidu.hugegraph.job.UserJob; import com.baidu.hugegraph.job.algorithm.AbstractAlgorithm; import com.baidu.hugegraph.job.algorithm.Consumers.StopExecution; import com.baidu.hugegraph.schema.EdgeLabel; @@ -78,7 +78,7 @@ public class FusiformSimilarityAlgorithm extends AbstractAlgorithm { } @Override - public Object call(Job<Object> job, Map<String, Object> parameters) { + public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workers(parameters); try (Traverser traverser = new Traverser(job, workers)) { return traverser.fusiformSimilars(sourceLabel(parameters), @@ -150,7 +150,7 @@ public class FusiformSimilarityAlgorithm extends AbstractAlgorithm { private static class Traverser extends AlgoTraverser { - public Traverser(Job<Object> job, int workers) { + public Traverser(UserJob<Object> job, int workers) { super(job, ALGO_NAME, workers); }
