1. The BSON argument type of the readConcern::readAfterClusterTime will be a Timestamp, but internally it will be converted and used as LogicalTime. The command reply returns the operationTIme also in the Timestamp format.
2. Add support for optional LogicalTime _clusterTime member to ReadConcernArgs.
- add a getter
- Modify appendInfo(), toString(), toJSON()
3. in initialize() Add a restriction that afterClusterTime is only supported for level::majority
4. Add ReplicationCoordinatorImpl::waitUntilClusterTime - it may result in refactoring the ReplicationCoordinatorImpl::waitUntilOptimeForRead to factor out the common part
rename waitUntilOptimeForRead to waitUntilOptimeForReadDeprecated due to planned switch to the clusterTime everywhere once it supports local level.
5. Modify waitForClusterTime() to support the afterClusterTime
if (level == majority) waitUntilClusterTime(max(readAfterClusterTime, readAfterOptime[timestamp])) else waitUntilOptimeForRead(readAfterOptime)
6. Unit tests related to readConcernArgs parsing
7. Unit tests for waiting
- is duplicated by
-
SERVER-27720 Add cluster read after opTime support
-
- Closed
-
- related to
-
SERVER-31727 mongo shell helper cursor.readConcern() only takes the level and not afterClusterTime
-
- Closed
-