Add ShardCannotRefreshDueToLocksHeld as acceptable error in
resharding_replicate_updates_as_insert_delete.js for retryable write.
The retryable write to update the shard key value under the new key
pattern is implicitly converted into a multi-statement transaction. If
the multi-statement transaction fails due to the donor shard not having
the routing information for the temporary resharding collection loaded,
then mongos won't automatically retry it.
ShardCannotRefreshDueToLocksHeld is now therefore considered an
acceptable error.
Removes the unused strictConsistencyTimestamp field from the recipient
document.
Also explicitly sets strict:true and strict:false for all of
resharding's IDL types.
Introduces a ReshardingOplogBatchPreparer class for creating writer
vectors. Also splits batch application in resharding's oplog application
into a first phase of CRUD application and a second phase of session
application.
Switches over most of the tests either running reshardCollection
explicitly or calling startReshardingInBackground() to use it.
SERVER-53460 Use assert.soon() when verifying post-resharding state.
The config.localReshardingOperations.{donor,recipient} collections are
not guaranteed to be empty immediately after the reshardCollection
command has returned.