You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Ignacio Vera (JIRA)" <ji...@apache.org> on 2019/02/05 06:49:00 UTC

[jira] [Commented] (LUCENE-8673) Use radix partitioning when merging dimensional points

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

Ignacio Vera commented on LUCENE-8673:
--------------------------------------

I have done changes recommended by [~jpountz] and I replaced the on-heap selector from an IntroSelector to a radixSelector. These have provided another nice bump on performance. Benchmarks looks like this now:


||Approach||Index time (sec): Dev||Index Time (sec): Base||Index Time: Diff||Force merge time (sec): Dev||Force Merge time (sec): Base||Force Merge Time: Diff||Index size (GB): Dev||Index size (GB): Base||Index Size: Diff||Reader heap (MB): Dev||Reader heap (MB): Base||Reader heap: Diff||
|points|182.2s|227.9s|-20%|90.4s|143.1s|-37%|0.55|0.55| 0%|1.57|1.57| 0%|
|shapes|297.0s|624.4s|-52%|163.8s|549.3s|-70%|1.29|1.29| 0%|1.61|1.61| 0%|
|geo3d|210.3s|370.1s|-43%|104.3s|265.3s|-61%|0.75|0.75| 0%|1.58|1.58| 0%|

 
 

 

> Use radix partitioning when merging dimensional points
> ------------------------------------------------------
>
>                 Key: LUCENE-8673
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8673
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Ignacio Vera
>            Priority: Major
>         Attachments: Geo3D.png, Geo3D.png, LatLonPoint.png, LatLonPoint.png, LatLonShape.png, LatLonShape.png
>
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> Following the advise of [~jpountz] in LUCENE-8623I have investigated using radix selection when merging segments instead of sorting the data at the beginning. The results are pretty promising when running Lucene geo benchmarks:
>  
> ||Approach||Index time (sec): Dev||Index Time (sec): Base||Index Time: Diff||Force merge time (sec): Dev||Force Merge time (sec): Base||Force Merge Time: Diff||Index size (GB): Dev||Index size (GB): Base||Index Size: Diff||Reader heap (MB): Dev||Reader heap (MB): Base||Reader heap: Diff
> |points|241.5s|235.0s| 3%|157.2s|157.9s|-0%|0.55|0.55| 0%|1.57|1.57| 0%|
> |shapes|416.1s|650.1s|-36%|306.1s|603.2s|-49%|1.29|1.29| 0%|1.61|1.61| 0%|
> |geo3d|261.0s|360.1s|-28%|170.2s|279.9s|-39%|0.75|0.75| 0%|1.58|1.58| 0%|
>  
> edited: table formatting to be a jira table
>  
> In 2D the index throughput is more or less equal but for higher dimensions the impact is quite big. In all cases the merging process requires much less disk space, I am attaching plots showing the different behaviour and I am opening a pull request.
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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