Allow resharding's CRUD application and session application to be concurrent

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • 5.0.0-rc0
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2021-05-17
    • 1
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      ReshardingOplogApplier first does a round of CRUD application followed by a round of session application. This is because the ReshardingOplogBatchPreparer mutates the repl::OplogEntries by calling setIsForReshardingSessionApplication(true) on them.

      If whether to do CRUD application versus session application was a property of the writer vector instead of the oplog entry itself, then tasks for both could be run concurrently. Allowing CRUD application and session application to be concurrent could reduce the overall makespan of applying a single batch.

            Assignee:
            Max Hirschhorn
            Reporter:
            Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: