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

Uwe Schindler commented on LUCENE-5722:
---------------------------------------

bq. But I don't think it will ever be simpler than the one buffer case.

Of course not, but could still help. Of course to simplify benchmarking we 
should look at both improvements in separate (like temporarily disable the 
single buffer case while benchmarking).

> Speed up MMapDirectory.seek()
> -----------------------------
>
>                 Key: LUCENE-5722
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5722
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Robert Muir
>         Attachments: LUCENE-5722.patch
>
>
> For traditional lucene access which is mostly sequential, occasional 
> advance(), I think this method gets drowned out in noise.
> But for access like docvalues, its important. Unfortunately seek() is complex 
> today because of mapping multiple buffers.
> However, the very common case is that only one map is used for a given clone 
> or slice.
> When there is the possibility to use only a single mapped buffer, we should 
> instead take advantage of ByteBuffer.slice(), which will adjust the internal 
> mmap address and remove the offset calculation. furthermore we don't need the 
> shift/mask or even the negative check, as they are then all handled with the 
> ByteBuffer api: seek is a one-liner (with try/catch of course to convert 
> exceptions).
> This makes docvalues access 20% faster, I havent tested conjunctions or 
> anyhting like that.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to