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

David Smiley commented on LUCENE-7299:
--------------------------------------

In the patch you committed, I noticed the inner subclass implementation of 
IntroSorter has a swap() that simply calls StringMSBRadixSorter.this.swap(). 
That got me thinking, couldn't compare() do likewise?  Just a minor point of 
course.

An observation here:  StringMSBRadixSorter is a radix sort that falls back on 
IntroSorter which is in turn a quick sort that falls back on either 
insertionSort or heapSort.  Wow... maybe we need to work in some more  :-)  Or 
maybe reconsider if fewer is better or when we switch.  For example 
StringMSBRadixSorter switches to IntroSort to cap the recursion levels 
(currently at 8), and for other reason too granted, but IntroSort uses 
recursion _too_.  The Sorter.THRESHOLD constant confused me temporarily; 
perhaps "INSERTION_SORT_THRESHOLD" would be less ambiguous in a class hierarchy 
of sorters with various thresholds.

> BytesRefHash.sort() should use radix sort?
> ------------------------------------------
>
>                 Key: LUCENE-7299
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7299
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>             Fix For: 6.1, master (7.0)
>
>         Attachments: ByteBlockListSorter.java, LUCENE-7299.patch, 
> LUCENE-7299.patch
>
>
> Switching DocIdSetBuilder to radix sort helped make things significantly 
> faster. We should be able to do the same with BytesRefHash.sort()?



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to