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

Avoid sync source selection cycle during primary catchup.

    XMLWordPrintableJSON

Details

    • Fully Compatible
    • v5.0, v4.4, v4.2
    • 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

              wenbin.zhu@mongodb.com Wenbin Zhu
              wenbin.zhu@mongodb.com Wenbin Zhu
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: