Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-13626

[Server] 300MB rollback limit still enforced after 4.0 under certain conditions

      Description

      https://docs.mongodb.com/manual/core/replica-set-rollbacks/#size-limitations

      Starting in version 4.0, MongoDB has no limit on the amount of data that can be rolled back.

      In previous versions, a mongod instance will not roll back more than 300 megabytes of data and requires manual intervention if more than 300 megabytes of data need to be rolled back.

      Turns out, this is not 100% accurate. There are conditions under which the 300MB limit is still enforced after 4.0.

      There are two methods used for rollback:
      1. "Rollback to Timestamp" (default)
      2. "Rollback-via-Refetch" - used when "enableMajorityReadConcern=false"

      Under condition #1 the 300MB is indeed no longer enforced post-4.0. But under condition #2, the limit is still enforced, and users can still get the following assertions:

      2020-05-03T00:11:01.078Z I ROLLBACK [rsBackgroundSync] Rollback finished. The final minValid is: { ts: Timestamp(1588464075, 5), t: 34 }
      2020-05-03T00:11:01.079Z F -        [rsBackgroundSync] 
      2020-05-03T00:11:01.079Z F -        [rsBackgroundSync] Fatal Assertion 40507 at src/mongo/db/repl/rs_rollback.cpp 1515
      2020-05-03T00:11:01.079Z F ROLLBACK [rsBackgroundSync] Unable to complete rollback. A full resync may be needed: UnrecoverableRollbackError: replSet too much data to roll back.
      

      This distinction appears here in SERVER-23392.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)

            Assignee:
            Unassigned Unassigned
            Reporter:
            eric.sommer@mongodb.com Eric Sommer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              1 year, 25 weeks, 4 days ago