I would like to know what it would take to be able to apply unversioned updates to a WORM Journal. The use case is preserving the ability to read the historical state of an index when an upgrade applies a change to the IndexMetadata object, e.g., replacing the ITupleSerializer field. Because the AbstractBTree is loaded from a Checkpoint record, historical reads will continue to access the old IndexMetadata object. This would require backward compatibility in the code after the upgrade in order to read both historical data and data written after the upgrade.
What I have in mind is something along the lines of replacing the bytes in the checkpoint record such that they now point to the new IndexMetadata objects for all historical commit points.