Some way to indicate valid points in the WT log

XMLWordPrintableJSON

    • Type: New Feature
    • Resolution: Duplicate
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • None

      Mongodb replication applies writes in batches with a process that looks something like the following to go from timepoint A to B:

      1. Block out all readers
      2. Commit a write that indicates that we are invalid and that we must reach B before becoming valid
      3. Divide the writes in the batch to many threads. Each thread does its writes in arbitrary order in multiple WT commits.
      4. Commit a write that marks the data as valid
      5. Unblock readers

      One downside to this approach is that if a server is killed at a random time, the probability of the wt log replaying to a point that is invalid is high on a system with a high throughput of writes. This is made worse by SERVER-24223.

      It would be helpful if we could indicate to WT somehow when we are in a valid state, such that on startup, following log-replay we would always be valid. One (suboptimal) solution would be to create a named checkpoint with a fixed name at each valid point and roll back to that snapshot on startup.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Mathias Stearn
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: