[SERVER-56236] Disable sync source re-evaluation in oplog fetcher for tenant migrations Created: 21/Apr/21 Updated: 27/Oct/23 Resolved: 21/Apr/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Xuerui Fa | Assignee: | Backlog - Replication Team |
| Resolution: | Works as Designed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Replication
|
| Participants: |
| Description |
|
In tenant migrations, we repurposed the OplogFetcher as our way of fetching oplog entries from the donor. However, the OplogFetcher contains some additional logic to check if we should stop syncing from the current sync source. These checks compare our current sync source to other members of our replica set. As a result, we may shut down the oplog fetcher for reasons such as syncing from a closer member, but in reality the recipient service would be forced to restart on these errors and select another donor host. We should probably disable any non-relevant checks when we are running the OplogFetcher from tenant migrations. |
| Comments |
| Comment by Xuerui Fa [ 21/Apr/21 ] |
|
Lingzhi discovered that this is already being handled inside of the recipient. We create a DataReplicatorExternalState and mock out many of its functions, including shouldStopFetching. So we should never run into this problem for Tenant Migrations. Closing this ticket! |