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

Prevent_logOpRS from pushing primary's last optime back in time in doc-locking storage engines

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 2.8.0-rc4
    • Fix Version/s: 2.8.0-rc5
    • Component/s: Replication
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL

      Description

      In storage engines that do not exclusively lock the oplog collection for the duration of a logop() operation, there is a race condition between the generation of a write's optime and recording the most recently accepted optime for the primary node via a call to ReplicationCoordiantor::setMyLastOptime().

      Because all failures of logOpRS are fatal, it suffices to update the coordinator's view of the most recent optime when the optime is generated. An alternative solution that might be more correct would be to force the storage engine to update the coordinator's view of the optime when the oplog entries for the new optimes become visible. This approach may be necessary if we wish to make logOpRS failures recoverable.

        Attachments

          Activity

            People

            Assignee:
            schwerin Andy Schwerin
            Reporter:
            schwerin Andy Schwerin
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: