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

Avoid sync source selection cycle during primary catchup.

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v5.0, v4.4, v4.2
    • Sprint:
      Repl 2021-08-23, Repl 2021-09-06

      Description

      During primary catchup, the primary does not necessarily sync from the most up-to-date node, we assume its sync source will sync from a more up-to-date node. However in some cases, the primary that is doing catchup can end up in a situation that it is syncing from a node who in turn selects this primary as sync source. This forms a sync source selection cycle and if this sync source node is not up-to-date in primary's view, then the primary can never be able to catchup to the target opTime, which causes a long unavailability window.

      If this happens, we rely on catchupTimeout (by default infinite), catchup takeover (by default 30s) or manual abort to bail it out, but the long unavailability window is undesirable.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              wenbin.zhu Wenbin Zhu
              Reporter:
              wenbin.zhu Wenbin Zhu
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: