You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hama.apache.org by tj...@apache.org on 2012/05/20 20:42:47 UTC
svn commit: r1340796 - in /incubator/hama/trunk:
core/src/main/java/org/apache/hama/bsp/HashPartitioner.java
graph/src/main/java/org/apache/hama/graph/Vertex.java
Author: tjungblut
Date: Sun May 20 18:42:26 2012
New Revision: 1340796
URL: http://svn.apache.org/viewvc?rev=1340796&view=rev
Log:
vertex should override hashcode to work correctly
Modified:
incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/HashPartitioner.java
incubator/hama/trunk/graph/src/main/java/org/apache/hama/graph/Vertex.java
Modified: incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/HashPartitioner.java
URL: http://svn.apache.org/viewvc/incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/HashPartitioner.java?rev=1340796&r1=1340795&r2=1340796&view=diff
==============================================================================
--- incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/HashPartitioner.java (original)
+++ incubator/hama/trunk/core/src/main/java/org/apache/hama/bsp/HashPartitioner.java Sun May 20 18:42:26 2012
@@ -25,7 +25,7 @@ public class HashPartitioner<K, V> imple
@Override
public int getPartition(K key, V value, int numTasks) {
- return key.hashCode() % numTasks;
+ return Math.abs(key.hashCode() % numTasks);
}
}
Modified: incubator/hama/trunk/graph/src/main/java/org/apache/hama/graph/Vertex.java
URL: http://svn.apache.org/viewvc/incubator/hama/trunk/graph/src/main/java/org/apache/hama/graph/Vertex.java?rev=1340796&r1=1340795&r2=1340796&view=diff
==============================================================================
--- incubator/hama/trunk/graph/src/main/java/org/apache/hama/graph/Vertex.java (original)
+++ incubator/hama/trunk/graph/src/main/java/org/apache/hama/graph/Vertex.java Sun May 20 18:42:26 2012
@@ -28,8 +28,8 @@ import org.apache.hama.bsp.BSPPeer;
public abstract class Vertex<ID_TYPE extends Writable, MSG_TYPE extends Writable, EDGE_VALUE_TYPE extends Writable>
implements VertexInterface<ID_TYPE, MSG_TYPE, EDGE_VALUE_TYPE> {
- private MSG_TYPE value;
private ID_TYPE vertexID;
+ private MSG_TYPE value;
protected GraphJobRunner<ID_TYPE, MSG_TYPE, EDGE_VALUE_TYPE> runner;
protected BSPPeer<VertexWritable<ID_TYPE, MSG_TYPE>, VertexArrayWritable, Writable, Writable, GraphJobMessage> peer;
public List<Edge<ID_TYPE, EDGE_VALUE_TYPE>> edges;
@@ -117,6 +117,31 @@ public abstract class Vertex<ID_TYPE ext
}
@Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((vertexID == null) ? 0 : vertexID.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Vertex<?, ?, ?> other = (Vertex<?, ?, ?>) obj;
+ if (vertexID == null) {
+ if (other.vertexID != null)
+ return false;
+ } else if (!vertexID.equals(other.vertexID))
+ return false;
+ return true;
+ }
+
+ @Override
public String toString() {
return getVertexID() + (getValue() != null ? " = " + getValue() : "")
+ " // " + edges;