[ 
https://issues.apache.org/jira/browse/OAK-629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting resolved OAK-629.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 0.7
         Assignee: Jukka Zitting

Done in revision 1448151.
                
> SegmentMK: Reverse writing of segments
> --------------------------------------
>
>                 Key: OAK-629
>                 URL: https://issues.apache.org/jira/browse/OAK-629
>             Project: Jackrabbit Oak
>          Issue Type: Sub-task
>          Components: segmentmk
>            Reporter: Jukka Zitting
>            Assignee: Jukka Zitting
>            Priority: Minor
>             Fix For: 0.7
>
>
> By design changes to a content tree get written to a segment using a 
> depth-first traversal. As a consequence the top-down access pattern used for 
> reading content ends up parsing the content from the end to the beginning. 
> This is somewhat troublesome as many memory and disk caches are optimized for 
> the opposite direction of access.
> To better leverage cache prefetching features (like readahead in Linux), it 
> would be useful to reverse the order in which segments get written. In other 
> words, instead of filling the segment buffer from the beginning to the end as 
> the depth-first traversal proceeds, we could fill the buffer from the end to 
> the beginning and count segment offsets from the end of a segment instead of 
> its beginning.
> While at it, it might also make sense to align record offsets at four or 
> eight byte boundaries to further (micro-)optimize access. It might also be 
> worth it to reduce the segment size limit to something like 512kB so we could 
> squeeze record references down from four to three bytes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to