jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Francesco Mari (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OAK-2498) Root record references provide too little context for parsing a segment
Date Mon, 17 Oct 2016 15:41:58 GMT

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

Francesco Mari updated OAK-2498:
    Attachment: OAK-2498-01.patch

OAK-2498-01.patch is a first take at this problem. I implemented every type discussed so far,
except for the super root. Figuring out when and where to use the super root type is not a
trivial issue.

Implementing the additional types as done in OAK-2498-01.patch still doesn't make the segment
easily parseable. The main reason is that the bucket record type is not parseable without
knowing the size of the list upfront. Given a pointer to a bucket record, it is impossible
to know where the content of the bucket record actually ends. The same issue might occur for
records of type block.

We would still have some advantages by applying this patch. Since the types are more explicit,
we can extract more detailed usage information - e.g. the exact type of lists used throughout
the segment store.

I will start with a partial implementation of this patch focused on the type of binary IDs.
This is necessary for OAK-4740 and for the correct functioning of the cold standby client.

> 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: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Francesco Mari
>              Labels: tools
>             Fix For: Segment Tar 0.0.16
>         Attachments: OAK-2498-01.patch
> 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

View raw message