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

Uwe Schindler commented on LUCENE-3200:
---------------------------------------

MMapDirectory missed a explicit nulling of curBuf, commited trunk revision: 
1205152, 3x in revision: 1205153
                
> Cleanup MMapDirectory to use only one MMapIndexInput impl with mapping sized 
> of powers of 2
> -------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-3200
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3200
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>             Fix For: 3.3, 4.0
>
>         Attachments: LUCENE-3200.patch, LUCENE-3200.patch, LUCENE-3200.patch, 
> LUCENE-3200.patch, LUCENE-3200.patch, LUCENE-3200_tests.patch
>
>
> Robert and me discussed a little bit after Mike's investigations, that using 
> SingleMMapIndexinput together with MultiMMapIndexInput leads to hotspot 
> slowdowns sometimes.
> We had the following ideas:
> - MultiMMapIndexInput is almost as fast as SingleMMapIndexInput, as the 
> switching between buffer boundaries is done in exception catch blocks. So 
> normal code path is always the same like for Single*
> - Only the seek method uses strange calculations (the modulo is totally 
> bogus, it could be simply: int bufOffset = (int) (pos % maxBufSize); - very 
> strange way of calculating modulo in the original code)
> - Because of speed we suggest to no longer use arbitrary buffer sizes. We 
> should pass only the power of 2 to the indexinput as size. All calculations 
> in seek and anywhere else would be simple bit shifts and AND operations (the 
> and masks for the modulo can be calculated in the ctor like NumericUtils does 
> when calculating precisionSteps).
> - the maximum buffer size will now be 2^30, not 2^31-1. But thats not an 
> issue at all. In my opinion, a buffer size of 2^31-1 is stupid in all cases, 
> as it will no longer fit page boundaries and mmapping gets harder for the O/S.
> We will provide a patch with those cleanups.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to