Maryann Xue created PHOENIX-2344:
------------------------------------

             Summary: Implement partial stream aggregate
                 Key: PHOENIX-2344
                 URL: https://issues.apache.org/jira/browse/PHOENIX-2344
             Project: Phoenix
          Issue Type: Improvement
            Reporter: Maryann Xue
            Assignee: Maryann Xue


We now have ordered group-by (stream aggregate) and unordered group-by (hash 
aggregate) in Phoenix. Stream aggregate is usually much more beneficial than 
hash aggregate in terms of memory usage and pipelining, but it requires that 
the aggregate's input is ordered on group-by expressions, i.e. the group-by 
expressions is the beginning part of the input's collation (ordering).
However, we could have something in the middle, a stream/hash hybrid aggregate 
when the group-by expressions and the input collation share some common part. 
For example, we group table T1 by column A, B and T1 is sorted on column A, C, 
we'll have the ordered part as A, and the hash part as B. Thus within the range 
of a same A, a hash table is used for collecting all different Bs; while at the 
changing point of A, we can purge the intermediate hash table and feed the 
result for the previous A to next operator.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to