[SERVER-49180] Make the donor's dataSync function reserve an OpTime at which to do the "start blocking" write Created: 29/Jun/20 Updated: 29/Oct/23 Resolved: 08/Jul/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.7.0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Esha Maharishi (Inactive) | Assignee: | Cheahuychou Mao |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | pm-1791_milestone-A | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Sprint: | Sharding 2020-07-13 | ||||||||
| Participants: | |||||||||
| Description |
|
Having the blockTimestamp available in the state machine doc simplifies startup recovery, since it allows a node to simply scan all its donor state machine docs on startup to find out which databases it should block for and as of what timestamp. To actually put the blockTimestamp into the state machine doc when updating the state machine to "blocking", the donor must know the blockTimestamp ahead of time. To do this, the donor can reserve an OpTime for the write ahead of time using the OplogSlotReserver. This will probably require moving the OplogSlotReserver out of TransactionParticipant into its own file. The code review should have sign-off from judah.schvimer. |
| Comments |
| Comment by Githook User [ 08/Jul/20 ] |
|
Author: {'name': 'Cheahuychou Mao', 'email': 'cheahuychou.mao@mongodb.com', 'username': 'cheahuychou'}Message: |