-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding 2018-08-27, Sharding 2018-09-10
The first command in a transaction is the only one that can provide a read concern, and if a transaction runs with snapshot level read concern all targeted shards must use the same atClusterTime timestamp. This means every command that can start a transaction must be able to compute an atClusterTime so it can be sent to all shards targeted by the first statement.
These commands currently include:
- find
- killCursors
- insert
- update
- delete
- findAndModify
- aggregate
- distinct
Note: geoSearch can start a single replica set transaction, but the command is not supported on mongos
find, aggregate, and distinct already support this from the global point in time reads project, leavingĀ insert, update, delete, findAndModify, and killCursors.