[SERVER-27771] Add readConcern::readAfterClusterTime Created: 20/Jan/17  Updated: 10/May/18  Resolved: 13/Mar/17

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 3.5.5

Type: Task Priority: Major - P3
Reporter: Misha Tyulenev Assignee: Misha Tyulenev
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
is documented by DOCS-10021 Docs for SERVER-27771: Add readConcer... Closed
Duplicate
is duplicated by SERVER-27720 Add cluster read after opTime support Closed
Related
related to SERVER-31727 mongo shell helper cursor.readConcern... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2017-03-06, Sharding 2017-03-27
Participants:

 Description   

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



 Comments   
Comment by Githook User [ 13/Mar/17 ]

Author:

{u'username': u'mikety', u'name': u'Misha Tyulenev', u'email': u'misha@mongodb.com'}

Message: SERVER-27771 add readConcern::afterClusterTime
Branch: master
https://github.com/mongodb/mongo/commit/a0516b5f896703682c98cf0b8c2e333f743f4dc1

Comment by Misha Tyulenev [ 28/Feb/17 ]

renctan Its correct. The restriction is temporary

Comment by Randolph Tan [ 28/Feb/17 ]

I assume the read concern majority restriciton is only temporary until we include terms in LogicalTime. The rest looks ok to me

Comment by Misha Tyulenev [ 28/Feb/17 ]

spencer renctan Please let me know if you can review this jira. please let me know feedback on the high level plan in the description. Thanks!

Generated at Thu Feb 08 04:16:11 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.