Do not wait for the apply of the oplog entries before recording them in the oplog. This means both of these operation can be done concurrently instead of serially now that we record the boundaries of the batch and recover correctly but removing the oplog entries record during failures.
Inserts into the oplog on the primary are done in parallel by each connection thread, whereas they are done on the secondary serially by the sync thread. This means that the oplog inserts are considerably slower on the secondary, which can create replication lag. See this comment for more information.