Skip to content

Instantly share code, notes, and snippets.

== GroupByHashBenchmark (trunk) ==
Benchmark Mode Samples Score Score error Units
c.f.p.o.GroupByHashBenchmark.testExistingGroupIds avgt 10 0.005 0.000 ms/op // all groupIds already exist
c.f.p.o.GroupByHashBenchmark.testNewGroupIds avgt 10 0.996 0.165 ms/op // all groupIds new
c.f.p.o.GroupByHashBenchmark.testMixGroupIds avgt 10 0.007 0.000 ms/op // half already exist
== GroupByHashBenchmark (branch) ==
Benchmark Mode Samples Score Score error Units
c.f.p.o.GroupByHashBenchmark.testExistingGroupIds avgt 10 0.006 0.000 ms/op
c.f.p.o.GroupByHashBenchmark.testNewGroupIds avgt 10 0.024 0.000 ms/op
- Output[orderpriority, shippriority]
- Project => [orderpriority:varchar, shippriority:bigint]
- Aggregate[orderpriority, shippriority] => [orderpriority:varchar, shippriority:bigint, $hashvalue:bigint]
- Project => [orderpriority:varchar, shippriority:bigint, $hashvalue:bigint]
$hashvalue := "hash"("hash"(0, "$operator$hash_code"("orderpriority")), "$operator$hash_code"("shippriority"))
- TableScan[local:tpch:orders:sf0.01, original constraint=true] => [orderpriority:varchar, shippriority:bigint]
orderpriority := local:tpch:orderpriority:5
shippriority := local:tpch:shippriority:7
diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveType.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveType.java
index d043fd6..3a5ec58 100644
--- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveType.java
+++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveType.java
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableSet;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
presto:tiny> explain SELECT * FROM (SELECT row_number() over(partition by orderstatus) rn, orderkey, orderstatus, custkey from orders) where rn < 10;
Query Plan
--------------------------------------------------------------------------------------------------------------------------------------
- Output[rn, orderkey, orderstatus, custkey]
rn := row_1
- Filter[("row_1" < 10)] => [orderkey:bigint, custkey:bigint, orderstatus:varchar, row_1:bigint]
- RowNumber[partition by (orderstatus) , limit (9) ] => [orderkey:bigint, custkey:bigint, orderstatus:varchar, row_1:bigint]
row_1 := row_number()
- TableScan[tpch:tpch:orders:sf0.01, original constraint=true] => [orderkey:bigint, custkey:bigint, orderstatus:varchar]
orderkey := tpch:tpch:orderkey:0
WithoutHash_1 38.00ms
WithoutHash_2 73.16ms
WithoutHash_3 41.63ms
WithoutHash_4 68.75ms
WithoutHash_5 28.33ms
WithoutHash_6 71.54ms
WithoutHash_7 58.94ms
WithoutHash_8 66.81ms
WithoutHash_9 27.91ms
WithoutHash_10 73.82ms
WithoutHash__channels_2__groups_1 87.30ms
WithoutHash__channels_3__groups_1 90.09ms
WithoutHash__channels_4__groups_1 72.55ms
WithoutHash__channels_5__groups_1 77.22ms
WithoutHash__channels_6__groups_1 68.59ms
WithoutHash__channels_7__groups_1 70.64ms
WithoutHash__channels_8__groups_1 70.24ms
WithoutHash__channels_9__groups_1 80.80ms
WithoutHash__channels_10__groups_1 92.15ms
WithoutHash__channels_2__groups_2 77.79ms
WithoutHash_channels_1 38.45ms
WithoutHash_channels_2 72.90ms
WithoutHash_channels_3 40.35ms
WithoutHash_channels_4 67.26ms
WithoutHash_channels_5 28.08ms
WithoutHash_channels_6 71.23ms
WithoutHash_channels_7 58.33ms
WithoutHash_channels_8 67.60ms
WithoutHash_channels_9 27.95ms
WithoutHash_channels_10 73.18ms
Benchmark (channelCount) (hashEnabled) Mode Samples Score Score error Units
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 2 true thrpt 9 0.061 0.005 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 2 false thrpt 9 0.030 0.009 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 5 true thrpt 9 0.095 0.012 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 5 false thrpt 9 0.013 0.005 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 10 true thrpt 9 0.094 0.026 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 10 false thrpt 9 0.028 0.010 ops/ms
c.f.p.BenchmarkHashPagePartitionFunction.runBenchmark 15 true thrpt 9 0.0
Benchmark (channelCount) (groupCount) (hashEnabled) Mode Samples Score Score error Units
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 2 true thrpt 15 0.019 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 2 false thrpt 15 0.013 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 10 true thrpt 15 0.019 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 10 false thrpt 15 0.013 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 100 true thrpt 15 0.018 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 100 false thrpt 15 0.011 0.001 ops/ms
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 1000 true thr
Benchmark (channelCount) (groupCount) (hashEnabled) Mode Samples Score Score error Units
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 2 true thrpt 30 21.228 0.560 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 2 false thrpt 30 14.329 0.653 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 10 true thrpt 30 20.145 0.243 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 10 false thrpt 30 13.415 0.221 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 100 true thrpt 30 18.860 0.224 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 100 false thrpt 30 11.555 0.311 ops/s
c.f.p.o.BenchmarkGroupByHash.runBenchmark 2 1000 true thr