Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.0
-
None
Description
For TPC-DS Query27, the TopN operation is delayed by the group-by - the group-by operator buffers up all the rows before discarding the 99% of the rows in the TopN Hash within the ReduceSink Operator.
The RS TopN operator is very restrictive as it only supports doing the filtering on the shuffle keys, but it is better to do this before breaking the vectors into rows and losing the isRepeating properties.
Adding a TopN Key operator in the physical operator tree allows the following to happen.
GBY->RS(Top=1)
can become
TNK(1)>GBY>RS(Top=1)
So that, the TopNKey can remove rows before they are buffered into the GBY and consume memory.
Here's the equivalent implementation in Presto
Adding this as a sub-feature of GroupBy prevents further optimizations if the GBY is on keys "a,b,c" and the TopNKey is on just "a".
Attachments
Attachments
Issue Links
- is related to
-
HIVE-22749 ReEnable TopNKey optimization in vectorized q tests
- Closed
-
HIVE-23101 Fix topnkey_grouping_sets
- Closed
-
HIVE-23120 TopNKey related tests should be run by TestMiniLlapLocalCliDriver only
- Closed
-
HIVE-20368 Remove VectorTopNKeyOperator lock
- Closed
-
HIVE-22435 Exception when using VectorTopNKeyOperator operator
- Closed
-
HIVE-22726 TopN Key optimizer should use array instead of priority queue
- Closed
-
HIVE-22925 Implement TopNKeyFilter efficiency check
- Closed
-
HIVE-22982 TopN Key efficiency check might disable filter too soon
- Closed
-
HIVE-20150 TopNKey pushdown
- Closed
-
HIVE-22464 Implement support for NULLS FIRST/LAST in TopNKeyOperator
- Closed
-
HIVE-22652 TopNKey push through Group by with Grouping sets
- Closed
-
HIVE-22666 Introduce TopNKey operator for PTF Reduce Sink
- Closed
-
HIVE-22735 TopNKey operator deduplication
- Closed
-
HIVE-22867 Add partitioning support to VectorTopNKeyOperator
- Closed
-
HIVE-23736 Disable topn in ReduceSinkOp if a TNK is introduced
- Closed
- relates to
-
HIVE-22507 KeyWrapper comparator create field comparator instances at every comparison
- Closed
- links to