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

Remove 'newlyAdded' field on heartbeats indicating a node left initial sync

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.7.0
    • None
    • Replication
    • None
    • Fully Compatible
    • Repl 2020-03-09, Repl 2020-03-23, Repl 2020-04-06

    Description

      When the primary receives a heartbeat response with a ‘state’ field that is SECONDARY, RECOVERING, or ROLLBACK, it will check if ‘newlyAdded’ is present for the responding node. If ‘newlyAdded’ is present, the primary will initiate a safe reconfig:

      1. The reconfig will increment the ‘configVersion’ by 1 and remove the corresponding ‘newlyAdded’ field.
      2. If a concurrent reconfig occurs, it will have a ‘configVersion’ greater than or equal to the one chosen.
        1. If equal, whichever reconfig came second will error and be forced to retry with a higher ‘configVersion’.
      3. This reconfig will be on a best-effort basis. If it fails, the reconfig will be retried on the next heartbeat response.

      Nodes should log automatic reconfigs they perform.
      They should log any errors they receive when performing those reconfigs.

      Attachments

        Activity

          People

            judah.schvimer@mongodb.com Judah Schvimer
            judah.schvimer@mongodb.com Judah Schvimer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: