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

Tenant migration donor primaries should not serve local, majority, and causal reads after the migration has committed

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v4.9
    • Sprint:
      Repl 2021-04-05, Repl 2021-04-19, Repl 2021-05-03
    • Linked BF Score:
      151

      Description

      Tenant migrations were designed to allow donor nodes to serve local and majority reads even after the migration committed, since local and majority reads are allowed to serve stale data.

      While this will not cause unexpected behavior for secondary reads, it may be surprising for primary-only reads, since users expect reading and writing to the primary of a single replica set to have read-your-own-writes behavior, unless there is a split brain or failover. This is true even for causal reads, because drivers use implicit sessions by default, and causal consistency in sessions is on by default.

      Note that since local and majority reads are untimestamped, the donor primary will have to check if the migration has committed at the time the read starts, rather than comparing the read's timestamp to the blockTimestamp.

        Attachments

          Activity

            People

            Assignee:
            lingzhi.deng Lingzhi Deng
            Reporter:
            esha.maharishi Esha Maharishi
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: