You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2013/02/20 14:15:14 UTC

[jira] [Resolved] (OAK-629) SegmentMK: Reverse writing of segments

     [ 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