hive git commit: HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by Chao Sun)

2015-08-19 Thread sunchao
Repository: hive
Updated Branches:
  refs/heads/master f8b02610d -> ab03dc97b


HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by 
Chao Sun)


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

Branch: refs/heads/master
Commit: ab03dc97b53ac6138de1be68fcb2f8b15aef400f
Parents: f8b0261
Author: Yongzhi Chen 
Authored: Wed Aug 19 18:21:54 2015 -0700
Committer: Chao Sun 
Committed: Wed Aug 19 18:21:54 2015 -0700

--
 .../hadoop/hive/ql/exec/KeyWrapperFactory.java| 18 +-
 1 file changed, 17 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/ab03dc97/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
--
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
index bf4ba7f..22bd951 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hive.ql.exec;
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.lazy.LazyDouble;
 import org.apache.hadoop.hive.serde2.objectinspector.ListObjectsEqualComparer;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -103,7 +104,22 @@ public class KeyWrapperFactory {
 
 @Override
 public void setHashKey() {
-  hashcode = Arrays.hashCode(keys);
+  if (keys == null) {
+hashcode = 0;
+  } else {
+hashcode = 1;
+for (Object element : keys) {
+  hashcode = 31 * hashcode;
+  if(element != null) {
+if(element instanceof LazyDouble) {
+  long v = 
Double.doubleToLongBits(((LazyDouble)element).getWritableObject().get());
+  hashcode = hashcode + (int) (v ^ (v >>> 32));
+} else {
+  hashcode = hashcode + element.hashCode();
+}
+  }
+}
+  }
 }
 
 @Override



hive git commit: HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by Chao Sun)

2015-08-19 Thread sunchao
Repository: hive
Updated Branches:
  refs/heads/branch-1 1f6fdc2d8 -> 88378a2e9


HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by 
Chao Sun)


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

Branch: refs/heads/branch-1
Commit: 88378a2e9426e915863a30bbc22813172cd4cf08
Parents: 1f6fdc2
Author: Yongzhi Chen 
Authored: Wed Aug 19 18:22:52 2015 -0700
Committer: Chao Sun 
Committed: Wed Aug 19 18:22:52 2015 -0700

--
 .../hadoop/hive/ql/exec/KeyWrapperFactory.java| 18 +-
 1 file changed, 17 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/88378a2e/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
--
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
index bf4ba7f..22bd951 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hive.ql.exec;
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.lazy.LazyDouble;
 import org.apache.hadoop.hive.serde2.objectinspector.ListObjectsEqualComparer;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -103,7 +104,22 @@ public class KeyWrapperFactory {
 
 @Override
 public void setHashKey() {
-  hashcode = Arrays.hashCode(keys);
+  if (keys == null) {
+hashcode = 0;
+  } else {
+hashcode = 1;
+for (Object element : keys) {
+  hashcode = 31 * hashcode;
+  if(element != null) {
+if(element instanceof LazyDouble) {
+  long v = 
Double.doubleToLongBits(((LazyDouble)element).getWritableObject().get());
+  hashcode = hashcode + (int) (v ^ (v >>> 32));
+} else {
+  hashcode = hashcode + element.hashCode();
+}
+  }
+}
+  }
 }
 
 @Override



[31/50] [abbrv] hive git commit: HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by Chao Sun)

2015-08-25 Thread sershe
HIVE-11502: Map side aggregation is extremely slow (Yongzhi Chen, reviewed by 
Chao Sun)


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

Branch: refs/heads/llap
Commit: ab03dc97b53ac6138de1be68fcb2f8b15aef400f
Parents: f8b0261
Author: Yongzhi Chen 
Authored: Wed Aug 19 18:21:54 2015 -0700
Committer: Chao Sun 
Committed: Wed Aug 19 18:21:54 2015 -0700

--
 .../hadoop/hive/ql/exec/KeyWrapperFactory.java| 18 +-
 1 file changed, 17 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/ab03dc97/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
--
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
index bf4ba7f..22bd951 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/KeyWrapperFactory.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hive.ql.exec;
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.lazy.LazyDouble;
 import org.apache.hadoop.hive.serde2.objectinspector.ListObjectsEqualComparer;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -103,7 +104,22 @@ public class KeyWrapperFactory {
 
 @Override
 public void setHashKey() {
-  hashcode = Arrays.hashCode(keys);
+  if (keys == null) {
+hashcode = 0;
+  } else {
+hashcode = 1;
+for (Object element : keys) {
+  hashcode = 31 * hashcode;
+  if(element != null) {
+if(element instanceof LazyDouble) {
+  long v = 
Double.doubleToLongBits(((LazyDouble)element).getWritableObject().get());
+  hashcode = hashcode + (int) (v ^ (v >>> 32));
+} else {
+  hashcode = hashcode + element.hashCode();
+}
+  }
+}
+  }
 }
 
 @Override