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] [Comment Edited] (OAK-2498) Root record references provide too little context for parsing a segment
Date Mon, 17 Oct 2016 13:22:58 GMT

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

Francesco Mari edited comment on OAK-2498 at 10/17/16 1:22 PM:
---------------------------------------------------------------

In an offline conversation with [~mduerig] and [~alex.parvulescu] we figured out that we need
to add the following types to the ones currently recognized by the system.

- Binary reference. This has to be used when parsing the segment to detect binary reference
records. Detecting binary references is necessary when maintaining the index of external binary
references in the TAR writer up to date.
- List of property names. A list of strings, where every string is a property name, is referenced
by the template record.
- List of list of values. This list is pointed to by the node record and contains the values
for single\- and multi\- value properties of that node. The double indirection is needed to
support multi-value properties.
- Map from string to node. This map is referenced by the template and represents the child
relationship between nodes.
- Super root. This is a marker type identifying top-level records for the repository super-roots.

I will go ahead with the implementation and keep this issue up to date. As [~mduerig] suggested,
the implementation should probably include a segment parser to validate the correctness of
the serialization format.


was (Author: frm):
In an offline conversation with [~mduerig] and [~alex.parvulescu] we figured out that we need
to add the following types to the ones currently recognized by the system.
- Binary reference. This has to be used when parsing the segment to detect binary reference
records. Detecting binary references is necessary when maintaining the index of external binary
references in the TAR writer up to date.
- List of property names. A list of strings, where every string is a property name, is referenced
by the template record.
- List of list of values. This list is pointed to by the node record and contains the values
for single\- and multi\- value properties of that node. The double indirection is needed to
support multi-value properties.
- Map from string to node. This map is referenced by the template and represents the child
relationship between nodes.
- Super root. This is a marker type identifying top-level records for the repository super-roots.
I will go ahead with the implementation and keep this issue up to date. As [~mduerig] suggested,
the implementation should probably include a segment parser to validate the correctness of
the serialization format.

> 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
>
>
> 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)

Mime
View raw message