You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2014/08/09 04:08:13 UTC

[jira] [Resolved] (PHOENIX-828) Detect if split occurs while ORDER BY query is in progress

     [ https://issues.apache.org/jira/browse/PHOENIX-828?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Taylor resolved PHOENIX-828.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 4.1
                   3.1
                   5.0.0

We detect if we have a scan that spans region boundaries and retry, so this scenario should be fixed.

> Detect if split occurs while ORDER BY query is in progress
> ----------------------------------------------------------
>
>                 Key: PHOENIX-828
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-828
>             Project: Phoenix
>          Issue Type: Task
>    Affects Versions: 3.0-Release
>            Reporter: James Taylor
>             Fix For: 5.0.0, 3.1, 4.1
>
>
> There's an edge case for ORDER BY processing:
> * An ORDER BY query is chunked up and parallelized based on region boundaries
> * A split occurs after this, but before the results come back
> * The results we get back from a parallel scan will potentially no longer be ordered according to the ORDER BY, as if the scan was split up between different regions (unbeknownst to us), there'd be a point at which the order is wrong
> We should write a unit test for this first, and then there are different ways of solving it:
> * While buffering the results, detect an out-of-order row and "insert" a new ResultIterator that will take part in the merge sort.
> * Perform the ORDER BY on the client side for each parallel scan results instead of on the server-side (this is the approach we've taken with GROUP BY).



--
This message was sent by Atlassian JIRA
(v6.2#6252)