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

Switch to use resharding-specific rules for resharding's oplog application

    • Fully Compatible
    • Sharding 2021-01-11
    • 2

      Resharding has oplog application rules which different from replication due to the need to be robust to transient duplicate _id values. The implementation for these rules have been implemented in resharding_oplog_application.cpp but aren't being executed outside of C++ unit tests. This ticket represents the capstone for switching resharding to run with this other implementation in all of our JavaScript integration tests.

      • Move creating the stash collection out of ReshardingOplogApplier::applyUntilCloneFinishedTs() and instead have RecipientStateMachine create the stash collections before scheduling any of the ReshardingOplogAppliers. We'll likely want creating the stash collection to be a method on ReshardingOplogApplier so it is easy to call from within a unit test.
      • Run the resharding_fuzzer_inplace tasks in a patch build with the useReshardingOplogApplicationRules server parameter defaulted to true. Restart the tasks (assuming they pass) at least 4 times to be extra sure.
      • Make any other changes based on the patch build results. Also consider carving off these changes into a separate code reviews and/or tickets.
      • Remove the useReshardingOplogApplicationRules server parameter and stop calling repl::OplogApplierUtils::applyOplogEntryOrGroupedInsertsCommon().

            Assignee:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Reporter:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: