[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15502501#comment-15502501
 ] 

ASF subversion and git services commented on ASTERIXDB-1626:
------------------------------------------------------------

Commit 4b30d79012e7bc8283ae6506cc381078fe92ea6c in asterixdb's branch 
refs/heads/master from [~buyingyi]
[ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=4b30d79 ]

ASTERIXDB-1626: performance improvement for multiple global aggregates.

- add a groupAll option for preclustered group-by.
- the listify function is removed in multiple global aggregate plans.

Change-Id: I85bb47748950cc909ddbd9720f613e0b8956d320
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1185
Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <ti...@apache.org>
Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>


> Multiple global aggregations result in sub-optimal plan
> -------------------------------------------------------
>
>                 Key: ASTERIXDB-1626
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1626
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: Optimizer
>            Reporter: Yingyi Bu
>            Assignee: Yingyi Bu
>              Labels: soon
>
> query:
> {noformat}
> Select count(*), avg(I_ID) 
> FROM  items;
> {noformat}
> {noformat}
> istribute result [%0->$$24]
> -- DISTRIBUTE_RESULT  |UNPARTITIONED|
>   exchange
>   -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
>     project ([$$24])
>     -- STREAM_PROJECT  |UNPARTITIONED|
>       assign [$$24] <- [function-call: asterix:closed-record-constructor, 
> Args:[AString: {$1}, function-call: asterix:sql-count, Args:[%0->$$19], 
> AString: {$2}, function-call: asterix:sql-avg, Args:[%0->$$23]]]
>       -- ASSIGN  |UNPARTITIONED|
>         project ([$$19, $$23])
>         -- STREAM_PROJECT  |UNPARTITIONED|
>           subplan {
>                     aggregate [$$23] <- [function-call: asterix:listify, 
> Args:[%0->$$22]]
>                     -- AGGREGATE  |UNPARTITIONED|
>                       assign [$$22] <- [function-call: 
> asterix:field-access-by-name, Args:[%0->$$27, AString: {I_ID}]]
>                       -- ASSIGN  |UNPARTITIONED|
>                         assign [$$27] <- [function-call: 
> asterix:field-access-by-index, Args:[%0->$$12, AInt32: {0}]]
>                         -- ASSIGN  |UNPARTITIONED|
>                           unnest $$12 <- function-call: 
> asterix:scan-collection, Args:[%0->$$15]
>                           -- UNNEST  |UNPARTITIONED|
>                             nested tuple source
>                             -- NESTED_TUPLE_SOURCE  |UNPARTITIONED|
>                  }
>           -- SUBPLAN  |UNPARTITIONED|
>             project ([$$19, $$15])
>             -- STREAM_PROJECT  |UNPARTITIONED|
>               subplan {
>                         aggregate [$$19] <- [function-call: asterix:listify, 
> Args:[%0->$$18]]
>                         -- AGGREGATE  |UNPARTITIONED|
>                           unnest $$11 <- function-call: 
> asterix:scan-collection, Args:[%0->$$15]
>                           -- UNNEST  |UNPARTITIONED|
>                             nested tuple source
>                             -- NESTED_TUPLE_SOURCE  |UNPARTITIONED|
>                      }
>               -- SUBPLAN  |UNPARTITIONED|
>                 assign [$$18] <- [AInt64: {1}]
>                 -- ASSIGN  |UNPARTITIONED|
>                   aggregate [$$15] <- [function-call: asterix:listify, 
> Args:[%0->$$10]]
>                   -- AGGREGATE  |UNPARTITIONED|
>                     exchange
>                     -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
>                       project ([$$10])
>                       -- STREAM_PROJECT  |PARTITIONED|
>                         assign [$$10] <- [function-call: 
> asterix:closed-record-constructor, Args:[AString: {items}, %0->$$7]]
>                         -- ASSIGN  |PARTITIONED|
>                           project ([$$7])
>                           -- STREAM_PROJECT  |PARTITIONED|
>                             exchange
>                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                               data-scan []<-[$$25, $$7, $$26] <- 
> CouchbaseAnalytics:items
>                               -- DATASOURCE_SCAN  |PARTITIONED|
>                                 exchange
>                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                                   empty-tuple-source
>                                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
> {noformat}



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

Reply via email to