Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-20439

Use OpTimes as SnapshotNames

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Labels:
      None
    • Replication

      As part of the work on SERVER-19212 we made SnapshotNames be a simple monotonically increasing counter rather than using names derived from OpTimes. This made it possible to establish a happens before/after relationship between snapshots and events that do not change the OpTime, including background index builds on secondaries, and reindex and repair operations. This had the downside of introducing an additional notion of time that had to be tracked to ensure that w:majority could fulfil its full contract.

      We now think these operations can simply use an OpTime > now and request the creation of a new OpTime (on an 'n' oplog entry) using a back channel such as heartbeats to handle a steady-state idle system where newer writes are not coming in. This will need to use an OpTime > now both as the last OpTime for the client and as the minimum OpTimes for collections and indexes. This should enable us to undo the change from SERVER-20260 which was a temporary solution to this problem.

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            mathias@mongodb.com Mathias Stearn
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: