-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Storage Engines
-
None
-
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.
- related to
-
WT-16513 Claim the “unused” page header field for future extensibility
-
- Needs Scheduling
-