hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gunt...@apache.org
Subject svn commit: r1582599 - /hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java
Date Fri, 28 Mar 2014 05:25:20 GMT
Author: gunther
Date: Fri Mar 28 05:25:20 2014
New Revision: 1582599

URL: http://svn.apache.org/r1582599
Log:
HIVE-6761: Hashcode computation does not use maximum parallelism for scalable dynamic partitioning
 (Prasanth J via Gunther Hagleitner)

Modified:
    hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java

Modified: hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java?rev=1582599&r1=1582598&r2=1582599&view=diff
==============================================================================
--- hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java
(original)
+++ hive/branches/branch-0.13/ql/src/java/org/apache/hadoop/hive/ql/exec/ReduceSinkOperator.java
Fri Mar 28 05:25:20 2014
@@ -391,29 +391,8 @@ public class ReduceSinkOperator extends 
   }
 
   private int computeHashCode(Object row, int buckNum) throws HiveException {
-    // Evaluate the HashCode
-    int keyHashCode = 0;
-    if (partitionEval.length == 0) {
-      // If no partition cols, just distribute the data uniformly to provide better
-      // load balance. If the requirement is to have a single reducer, we should set
-      // the number of reducers to 1.
-      // Use a constant seed to make the code deterministic.
-      if (random == null) {
-        random = new Random(12345);
-      }
-      keyHashCode = random.nextInt();
-    } else {
-      // partitionEval will include all columns from distribution columns i.e;
-      // partition columns + bucket number columns. Bucket number column is
-      // initialized with -1. Ignore that and use bucket number instead
-      for (int i = 0; i < partitionEval.length - 1; i++) {
-        Object o = partitionEval[i].evaluate(row);
-        keyHashCode = keyHashCode * 31
-            + ObjectInspectorUtils.hashCode(o, partitionObjectInspectors[i]);
-      }
-
-      keyHashCode = keyHashCode * 31 + buckNum;
-    }
+    int keyHashCode = computeHashCode(row);
+    keyHashCode = keyHashCode * 31 + buckNum;
     return keyHashCode;
   }
 



Mime
View raw message