Details
Description
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.