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

    • Fully Compatible
    • ALL
    • Repl 2019-12-16, Repl 2019-12-30
    • 24

      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.

            Assignee:
            samy.lanka@mongodb.com Samyukta Lanka
            Reporter:
            samy.lanka@mongodb.com Samyukta Lanka
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: