improve the performance of the reachability vertex and the shortest paths vertex
diff --git a/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ReachabilityVertex.java b/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ReachabilityVertex.java
index 1bb33b8..fa16ce5 100644
--- a/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ReachabilityVertex.java
+++ b/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ReachabilityVertex.java
@@ -87,6 +87,7 @@
private ByteWritable tmpVertexValue = new ByteWritable();
private long sourceId = -1;
+ private long destId = -1;
/** The source vertex id */
public static final String SOURCE_ID = "ReachibilityVertex.sourceId";
@@ -112,7 +113,7 @@
* @return True if the source id
*/
private boolean isDest(VLongWritable v) {
- return (v.get() == getContext().getConfiguration().getLong(DEST_ID, DEST_ID_DEFAULT));
+ return (v.get() == destId);
}
@Override
@@ -120,6 +121,9 @@
if (sourceId < 0) {
sourceId = getContext().getConfiguration().getLong(SOURCE_ID, SOURCE_ID_DEFAULT);
}
+ if (destId < 0) {
+ destId = getContext().getConfiguration().getLong(DEST_ID, DEST_ID_DEFAULT);
+ }
if (getSuperstep() == 1) {
boolean isSource = isSource(getVertexId());
if (isSource) {
diff --git a/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ShortestPathsVertex.java b/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ShortestPathsVertex.java
index 648f168..2fea813 100644
--- a/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ShortestPathsVertex.java
+++ b/pregelix/pregelix-example/src/main/java/edu/uci/ics/pregelix/example/ShortestPathsVertex.java
@@ -16,8 +16,6 @@
package edu.uci.ics.pregelix.example;
import java.util.Iterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.apache.hadoop.io.FloatWritable;
@@ -84,12 +82,12 @@
private DoubleWritable outputValue = new DoubleWritable();
private DoubleWritable tmpVertexValue = new DoubleWritable();
- /** Class logger */
- private static final Logger LOG = Logger.getLogger(ShortestPathsVertex.class.getName());
/** The shortest paths id */
public static final String SOURCE_ID = "SimpleShortestPathsVertex.sourceId";
/** Default shortest paths id */
public static final long SOURCE_ID_DEFAULT = 1;
+ /** the source vertex id */
+ private long sourceId = -1;
/**
* Is this vertex the source id?
@@ -97,11 +95,14 @@
* @return True if the source id
*/
private boolean isSource() {
- return (getVertexId().get() == getContext().getConfiguration().getLong(SOURCE_ID, SOURCE_ID_DEFAULT));
+ return (getVertexId().get() == sourceId);
}
@Override
public void compute(Iterator<DoubleWritable> msgIterator) {
+ if (sourceId < 0) {
+ sourceId = getContext().getConfiguration().getLong(SOURCE_ID, SOURCE_ID_DEFAULT);
+ }
if (getSuperstep() == 1) {
tmpVertexValue.set(Double.MAX_VALUE);
setVertexValue(tmpVertexValue);
@@ -110,17 +111,10 @@
while (msgIterator.hasNext()) {
minDist = Math.min(minDist, msgIterator.next().get());
}
- if (LOG.getLevel() == Level.FINE) {
- LOG.fine("Vertex " + getVertexId() + " got minDist = " + minDist + " vertex value = " + getVertexValue());
- }
if (minDist < getVertexValue().get()) {
tmpVertexValue.set(minDist);
setVertexValue(tmpVertexValue);
for (Edge<VLongWritable, FloatWritable> edge : getEdges()) {
- if (LOG.getLevel() == Level.FINE) {
- LOG.fine("Vertex " + getVertexId() + " sent to " + edge.getDestVertexId() + " = "
- + (minDist + edge.getEdgeValue().get()));
- }
outputValue.set(minDist + edge.getEdgeValue().get());
sendMsg(edge.getDestVertexId(), outputValue);
}