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

Skip call to awaitNodesAgreeOnAppliedOptime during initiate if high slave delay or in multiversion test

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Repl 2019-12-16, Repl 2019-12-30
    • Linked BF Score:
      24

      Description

      In the case of a test with a secondary with high slave delay, there is a situation where the secondary can exit initial sync and then an insert happens into the system.keys collection (causing the primary's lastApplied to advance). This means that when awaitNodesAgreeOnAppliedOpTime is called, the secondary will remain delayed until the test times out.

      In the case of a multiversion test, we skip shortening the heartbeat period. If the noop writer is turned on and set to an interval of 1 second, then that can cause awaitNodesAgreeOnAppliedOpTime to timeout because just as a node advances to meet the other node's expectation, the expectation advances. The reason for this is that the nodes will advance their understanding of the other nodes' lastApplied through heartbeats and because the interval stays at 2 seconds, nodes cannot update their view of other nodes fast enough before the next noop write happens.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: