[
https://issues.apache.org/jira/browse/PHOENIX-2943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15308320#comment-15308320
]
Samarth Jain commented on PHOENIX-2943:
---------------------------------------
Thanks for pointing that out, [[email protected]]. It turns out we were not
executing the query serially when doing an order by on non-prefix column of
rowkey. However, if the user provided a hint, we would end up doing serial
execution which would be incorrect to do. I have filed PHOENIX-2959 to fix that
issue.
> Performance of parallel order by query is > 30X slower than serial execution
> ----------------------------------------------------------------------------
>
> Key: PHOENIX-2943
> URL: https://issues.apache.org/jira/browse/PHOENIX-2943
> Project: Phoenix
> Issue Type: Bug
> Reporter: Mujtaba Chohan
> Fix For: 4.8.0
>
>
> {code}
> select /*+SERIAL*/ L_DISCOUNT, L_QUANTITY from lineitem_encoded order by
> (l_discount,L_QUANTITY) limit 1;
> +-------------+-------------+
> | L_DISCOUNT | L_QUANTITY |
> +-------------+-------------+
> | 0.04 | 17 |
> +-------------+-------------+
> 1 row selected (0.129 seconds)
> select L_DISCOUNT, L_QUANTITY from lineitem_encoded order by
> (l_discount,L_QUANTITY) limit 1;
> +-------------+-------------+
> | L_DISCOUNT | L_QUANTITY |
> +-------------+-------------+
> | 0.04 | 17 |
> +-------------+-------------+
> 1 row selected (4.63 seconds)
> explain select /*+SERIAL*/ L_DISCOUNT, L_QUANTITY from lineitem_encoded
> order by (l_discount,L_QUANTITY) limit 1;
> +------------------------------------------------------------------------------------------------+
> | PLAN
> |
> +------------------------------------------------------------------------------------------------+
> | CLIENT 417-CHUNK 5978838 ROWS 4150009682 BYTES SERIAL 417-WAY FULL SCAN
> OVER LINEITEM_ENCODED |
> | SERVER TOP 1 ROW SORTED BY [(L_DISCOUNT, L_QUANTITY)]
> |
> | CLIENT MERGE SORT
> |
> +------------------------------------------------------------------------------------------------+
> 3 rows selected (0.016 seconds)
> 0: jdbc:phoenix:localhost> explain select L_DISCOUNT, L_QUANTITY from
> lineitem_encoded order by (l_discount,L_QUANTITY) limit 1;
> +--------------------------------------------------------------------------------------------------+
> | PLAN
> |
> +--------------------------------------------------------------------------------------------------+
> | CLIENT 417-CHUNK 5978838 ROWS 4150009682 BYTES PARALLEL 417-WAY FULL SCAN
> OVER LINEITEM_ENCODED |
> | SERVER TOP 1 ROW SORTED BY [(L_DISCOUNT, L_QUANTITY)]
> |
> | CLIENT MERGE SORT
> |
> +--------------------------------------------------------------------------------------------------+
> 3 rows selected (0.015 seconds)
> {code}
> Profiler information on this to be added soon.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)