Add stable schema epoch

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

      We need to add the concept of a stable schema epoch for disaggregated storage, which we will later use to decide which schema operations are considered stable and should be included in the next checkpoint. The epoch number should be set and queried similarly to timestamps, even though it is not a timestamp. The implementation of the epoch should in many ways parallel the implementation of stable timestamp.

      Specifically, we need to:

      • Add stable_disaggregated_schema_epoch and has_stable_disaggregated_schema_epoch to the WT_TXN_GLOBAL struct (defined in txn.h).
      • Set the epoch in WT_CONNECTION::set_timestamp (that is, in __wt_txn_global_set_timestamp). Make sure that the epoch can never go backwards.
      • Query the epoch through WT_CONNECTION::query_timestamp (that is, in __wt_txn_query_timestamp).
      • Add the appropriate tests in test/suite.

      In terms of naming, note that the config generally has disaggregated spelled out fully, so we should keep that for consistency, even if it may feel a tad bit verbose.

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

              Created:
              Updated: