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

Ruben Q L commented on CALCITE-3920:
------------------------------------

Thanks for your great effort in this one [~thomas.rebele].
I agree with [~zabetak], in terms of maintainability, it would be better to 
stick to an existing algorithm, unless we have an incredible performance 
improvement with our own ad-hoc implementation.
My 2 cents here: looking at your benchmarks, it would seem that 
priorityQueue:stableSort could be a good candidate for a compromise solution. 
Even though it is not the best one in all cases, it performs pretty well 
(specially in cases with a reasonable limit involved, which was the main target 
of the current ticket), and re-uses an existing data-structure implementation.

> Improve ORDER BY computation in Enumerable convention by exploiting LIMIT
> -------------------------------------------------------------------------
>
>                 Key: CALCITE-3920
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3920
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.22.0
>            Reporter: Stamatis Zampetakis
>            Assignee: Thomas Rebele
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> There are many use-cases (pagination, top-k) relying on queries with an ORDER 
> BY clause followed by a LIMIT. 
> At the moment, the two operations are implemented independently the one from 
> the other 
>  in the Enumerable convention. Even when we know that consumer needs only the 
> top-10 results the sort operation will try to maintain its entire input 
> sorted. The complexity of the sorting operation is O( n ) space and O( nlogn 
> ) time, where n is the size of the input. 
> By implementing ORDER BY and LIMIT together there are various optimizations 
> that can be applied to reduce the space and time complexity of the sorting 
> algorithm.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to