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/16 16:41:11 UTC

[jira] [Created] (OAK-2527) Update SegmentMK header format

Michael Dürig created OAK-2527:
----------------------------------

             Summary: Update SegmentMK header format
                 Key: OAK-2527
                 URL: https://issues.apache.org/jira/browse/OAK-2527
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: segmentmk
            Reporter: Michael Dürig
            Assignee: Michael Dürig


Even though the Oak's [segment header format | http://jackrabbit.apache.org/oak/docs/nodestore/segmentmk.html] defines a version, that version is not checked when running Oak. In effect this means current Oak versions pretend to be infinitely forward compatible. 

To prevent older versions of Oak to run with incompatible, newer storage formats we need to devise a way for Oak to fail fast in that scenario. 

One thing we could do to introduce versions checking retroactively is to redefine the segment header format from:

{noformat}
+--------+--------+--------+--------+--------+--------+--------+--------+
| magic bytes: "0aK\n" in ASCII     |version |idcount |rootcount        |
+--------+--------+--------+--------+--------+--------+--------+--------+
{noformat}

to: 

{noformat}
+--------+--------+--------+--------+--------+--------+--------+--------+
| magic bytes: "0aK" ASCII |version |reserved|idcount |rootcount        |
+--------+--------+--------+--------+--------+--------+--------+--------+
{noformat}

where version would be {{10}} for the current storage format and {{11}} for the next storage format. 






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