Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-2527

Update SegmentMK header format definition

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.0.12, 1.1.8
    • segmentmk
    • None

    Description

      Even though the Oak's segment header format 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:

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

      to:

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

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

      Attachments

        Issue Links

          Activity

            People

              mduerig Michael Dürig
              mduerig Michael Dürig
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: