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

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.7.0
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • Repl 2020-03-09, Repl 2020-03-23, Repl 2020-04-06
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Judah Schvimer
            Reporter:
            Judah Schvimer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: