Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-31411

Decide if non-sharded RS should do a noop write

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • 4.3 Desired
    • None
    • Sharding
    • Cluster Scalability

    Description

      Currently non-sharded RS will not do a noop write.
      https://github.com/mongodb/mongo/blob/r3.5.13/src/mongo/db/read_concern.cpp#L83-L86
      RS it the only source of clusterTime it will always get it once its replicated.

      However it leaves the scenario where primary steps down after performing the write which returns to a client an operationTime X and the follow up request with afterClusterTime:X to a secondary will hang.
      If secondary do the noop write it will avoid the hang
      However in this case it will not get the data written to the primary anyways. Hence the query may return a non causally consistent result.
      It differs from the scenario where shard1 returns operationTime X and then client issues a read to a shard2 with afterClusterTime:X and forces shard2 do a noop write if its clusterTime is < X

      Attachments

        Activity

          People

            backlog-server-cluster-scalability Backlog - Cluster Scalability
            misha.tyulenev@mongodb.com Misha Tyulenev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: