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

Some way to indicate valid points in the WT log

    XMLWordPrintable

    Details

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

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                backlog-server-storage-engines Backlog - Storage Engines Team
                Reporter:
                redbeard0531 Mathias Stearn
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: