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

Allow heartbeat responses to wake ready waiters even when they do not advance optimes

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Icon: Major - P3 Major - P3
    • None
    • None
    • Replication
    • None
    • v4.0, v3.6

    Description

      Heartbeats and replSetUpdatePosition can only wake up replication waiters if they represent optime changes. If no further progress can be made (e.g. when the node in question fully catches up), those waiters will not be signaled unless new writes come in. This is not necessarily an issue in functionality like awaitReplication, but it can be a problem with stepdown. For example, during a stepdown attempt, it is possible to have secondaries catch up while they are frozen, then lift the freeze but have no way to signal the waiters (since everyone is already up to date), leading to the attempt timing out. This can be fixed by allowing heartbeat responses that do not advance optimes to still wake up replication waiters (by doing the minimal amount of work required for that).

      This bug was introduced by the changes in SERVER-35058 (specifically here).

      Attachments

        Activity

          People

            vesselina.ratcheva@mongodb.com Vesselina Ratcheva (Inactive)
            vesselina.ratcheva@mongodb.com Vesselina Ratcheva (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: