Add readConcern::readAfterClusterTime

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Major - P3
    • 3.5.5
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2017-03-06, Sharding 2017-03-27
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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

            Assignee:
            Misha Tyulenev (Inactive)
            Reporter:
            Misha Tyulenev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: