Repository: spark
Updated Branches:
  refs/heads/master 05c9aa9eb -> f938a155b


Fix error in 2d Graph Partitioner

Their was a minor bug in which negative partition ids could be generated when 
constructing a 2D partitioning of a graph.  This could lead to an inefficient 
2D partition for large vertex id values.

Author: Joseph E. Gonzalez <[email protected]>

Closes #709 from jegonzal/fix_2d_partitioning and squashes the following 
commits:

937c562 [Joseph E. Gonzalez] fixing bug in 2d partitioning algorithm where 
negative partition ids could be generated.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/f938a155
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/f938a155
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/f938a155

Branch: refs/heads/master
Commit: f938a155b2a9c126b292d5403aca31de83d5105a
Parents: 05c9aa9
Author: Joseph E. Gonzalez <[email protected]>
Authored: Sun May 11 18:33:46 2014 -0700
Committer: Matei Zaharia <[email protected]>
Committed: Sun May 11 18:33:46 2014 -0700

----------------------------------------------------------------------
 .../main/scala/org/apache/spark/graphx/PartitionStrategy.scala   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/f938a155/graphx/src/main/scala/org/apache/spark/graphx/PartitionStrategy.scala
----------------------------------------------------------------------
diff --git 
a/graphx/src/main/scala/org/apache/spark/graphx/PartitionStrategy.scala 
b/graphx/src/main/scala/org/apache/spark/graphx/PartitionStrategy.scala
index 0470d74..1526cce 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/PartitionStrategy.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/PartitionStrategy.scala
@@ -78,8 +78,8 @@ object PartitionStrategy {
     override def getPartition(src: VertexId, dst: VertexId, numParts: 
PartitionID): PartitionID = {
       val ceilSqrtNumParts: PartitionID = math.ceil(math.sqrt(numParts)).toInt
       val mixingPrime: VertexId = 1125899906842597L
-      val col: PartitionID = ((math.abs(src) * mixingPrime) % 
ceilSqrtNumParts).toInt
-      val row: PartitionID = ((math.abs(dst) * mixingPrime) % 
ceilSqrtNumParts).toInt
+      val col: PartitionID = (math.abs(src * mixingPrime) % 
ceilSqrtNumParts).toInt
+      val row: PartitionID = (math.abs(dst * mixingPrime) % 
ceilSqrtNumParts).toInt
       (col * ceilSqrtNumParts + row) % numParts
     }
   }

Reply via email to