Ensure that the turtle file is updated atomically with the metadata file during a checkpoint

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Checkpoints
    • None
    • Storage Engines, Storage Engines - Foundations
    • SE Foundations - Q3+ Backlog
    • None

      The turtle file contains important system metadata, which needs to be updated atomically (consistently) with other metadata during a checkpoint. Sometimes we forget to log important metadata changes, which could cause data corruption bugs such as WT-11669.

      As a way to prevent (or at least more easily catch) these kinds of bugs, we should thus have a mechanism to ensure that we update the metadata in the turtle file consistently with a checkpoint.

      I can think of two ways do this:

      • Log the new contents of the turtle file, or as much of it as we can log as possible, and then apply it to the turtle file during recovery.
      • Also log the new contents of the turtle file, but only as a debug log entry that would not be enabled in production. During recovery, validate the contents of the turtle file based on what we logged.

      The former feels somewhat risky, but it could in theory prevent corruptions from us forgetting to log something. The latter is considerably less risky, but it would still give us a lot of benefit in allowing us to catch and diagnose such problems if we run into them in testing.

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

                Created:
                Updated: