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 "Michael Dürig (JIRA)" <ji...@apache.org> on 2015/02/10 16:59:11 UTC

[jira] [Commented] (OAK-2498) Root record references provide too little context for parsing a segment

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

Michael Dürig commented on OAK-2498:
------------------------------------

This is a blocker for creating any kind of advanced low level tooling where you want to parse individual segments. It might also turn out as a blocker for sub segment level garbage collection (OAK-2408). 

I see two ways to fix this:

# Turn the root record reference table into a record reference table. I.e. record all records in a segment in the segment's header instead of just the root segments. This would increase the segment size by 3 bytes per non root record. This change would not need explicit migration as the changed header would be automatically introduced by the compaction process. 
# Add type information to the individual records. This would increase the segment size by 1 byte per non root level record. However this change would require explicit migration as the content storage format changes. 



> Root record references provide too little context for parsing a segment
> -----------------------------------------------------------------------
>
>                 Key: OAK-2498
>                 URL: https://issues.apache.org/jira/browse/OAK-2498
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segmentmk
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>
> According to the [documentation | http://jackrabbit.apache.org/oak/docs/nodestore/segmentmk.html] the root record references in a segment header provide enough context for parsing all records within this segment without any external information. 
> Turns out this is not true: if a root record reference turns e.g. to a list record. The items in that list are record ids of unknown type. So even though those records might live in the same segment, we can't parse them as we don't know their type. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)