Make the page header length extensible

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None

      The page header struct does not currently have any versioning or extensibility information, which would make it difficult to make any changes to it in the future without major upgrade/downgrade planning.

      To make the page header extensible in a backwards compatible way, we can claim the unused byte field and rename it to extra_header_length, which we would set to the length of the header minus the current header size (28 bytes). For example, if we add a new 4-byte field and make the new header 32 bytes, we would set the extra length to 32 – 28 = 4.

      In this way, the current expected value for this field would be 28 – 28 = 0, which is exactly what should be stored in this unused field already across all of our existing deployments.

      As a part of this ticket, we should also update all places in the code that assume a fixed length (derived using sizeof) to leverage the extra length field, validate the field upon read, and add a test.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Peter Macko
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: