[SERVER-55051] Tenant migration donor primaries should not serve local, majority, and causal reads after the migration has committed Created: 08/Mar/21  Updated: 29/Oct/23  Resolved: 23/Apr/21

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.9.0-rc1, 5.0.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Esha Maharishi (Inactive) Assignee: Lingzhi Deng
Resolution: Fixed Votes: 0
Labels: pm-1791_non-cloud-blocking, pm-1791_optimizations
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Problem/Incident
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.9
Sprint: Repl 2021-04-05, Repl 2021-04-19, Repl 2021-05-03
Participants:
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.



 Comments   
Comment by Githook User [ 23/Apr/21 ]

Author:

{'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com', 'username': 'ldennis'}

Message: SERVER-55051: Donor should block non-timestamped reads after migration has committed

(cherry picked from commit 16cb79e780c4101118fdd3253bcacf5d63be886f)
Branch: v4.9
https://github.com/mongodb/mongo/commit/8467c08ff3b6945b9e9e66652df31cd8174a42d0

Comment by Githook User [ 23/Apr/21 ]

Author:

{'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com', 'username': 'ldennis'}

Message: SERVER-55051: Donor should block non-timestamped reads after migration has committed
Branch: master
https://github.com/mongodb/mongo/commit/16cb79e780c4101118fdd3253bcacf5d63be886f

Generated at Thu Feb 08 05:35:19 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.