Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-6391

Improve set_timestamp API to ensure consistent stable and oldest usage.

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • 8

      The stable and oldest timestamps are set by applications and are used internally to manage the behavior of WiredTiger.

      We have some knowledge about how MongoDB is using those timestamps, and assumptions built into the WiredTiger code about those usages. We've encountered issues in the past with that approach for two reasons:

      • Usage changes over time, so those assumptions can become wrong.
      • When we write standalone testing applications, they don't necessarily comply with the assumptions.

      We should make it so that the stable and oldest timestamps need to both be set when using timestamps in WiredTiger, and enforce that in the API.

      There is a bootstrapping problem that makes that harder than it sounds. Applications want to be able to set oldest and stable independently, and in whichever order is convenient on startup. We should figure out how to allow that. Perhaps adding checks in when the first user-driven checkpoint is completed? That's not as helpful as doing the checking in the API, but may be the best choice we have.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: