respect -graphClean_maxIterations in P*
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/config/GenomixJobConf.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/config/GenomixJobConf.java
index 5576854..0c89b7f 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/config/GenomixJobConf.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/config/GenomixJobConf.java
@@ -120,7 +120,7 @@
private float bubbleMerge_maxDissimilarity = -1;
@Option(name = "-graphCleanMaxIterations", usage = "The maximum number of iterations any graph cleaning job is allowed to run for", required = false)
- private int graphCleanMaxIterations = -1; // TODO respect this value in pregelix
+ private int graphCleanMaxIterations = -1;
@Option(name = "-pathMergeRandom_randSeed", usage = "The seed used in the random path-merge algorithm", required = false)
private long pathMergeRandom_randSeed = -1;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P1ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P1ForPathMergeVertex.java
index 0d4c16d..63bba91 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P1ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P1ForPathMergeVertex.java
@@ -249,6 +249,10 @@
@Override
public void compute(Iterator<PathMergeMessageWritable> msgIterator) throws Exception {
initVertex();
+ if (getSuperstep() > maxIteration) {
+ voteToHalt();
+ return;
+ }
if (getSuperstep() == 1) {
restrictNeighbors();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java
index 4a168af..9edcf9b 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java
@@ -42,11 +42,7 @@
*/
@Override
public void initVertex() {
- if (kmerSize == -1)
- kmerSize = Integer.parseInt(getContext().getConfiguration().get(GenomixJobConf.KMER_LENGTH));
- if (maxIteration < 0)
- maxIteration = Integer.parseInt(getContext().getConfiguration().get(GenomixJobConf.GRAPH_CLEAN_MAX_ITERATIONS));
- GenomixJobConf.setGlobalStaticConstants(getContext().getConfiguration());
+ super.initVertex();
selfFlag = (byte)(getVertexValue().getState() & State.VERTEX_MASK);
outFlag = 0;
if(incomingMsg == null)
@@ -471,6 +467,14 @@
@Override
public void compute(Iterator<P2PathMergeMessageWritable> msgIterator) {
initVertex();
+
+ // holy smokes this is a complicated compute function!!!
+ // TODO clean it up!!
+ if (getSuperstep() > maxIteration) {
+ voteToHalt();
+ return;
+ }
+
if (getSuperstep() == 1){
addFakeVertex();
// initiate prependMergeNode and appendMergeNode
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
index 6af0ffe..cd530fb 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
@@ -226,6 +226,10 @@
@Override
public void compute(Iterator<PathMergeMessageWritable> msgIterator) throws HyracksDataException {
initVertex();
+ if (getSuperstep() > maxIteration) { // TODO should we make sure the graph is complete or allow interruptions that will cause an asymmetric graph?
+ voteToHalt();
+ return;
+ }
if (getSuperstep() == 1) {
restrictNeighbors();