[SERVER-61477] Make Merge recipient's operations interruptible Created: 15/Nov/21  Updated: 03/Mar/23  Resolved: 03/Mar/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: A. Jesse Jiryu Davis Assignee: [DO NOT USE] Backlog - Server Serverless (Inactive)
Resolution: Won't Do Votes: 0
Labels: shard-merge-milestone-3
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-61146 Apply donor oplog entries Closed
Duplicate
is duplicated by SERVER-64158 Make _fetchAndStoreDonorClusterTimeKe... Closed
Assigned Teams:
Serverless
Participants:

 Description   

We use low-level WT APIs in wiredtiger_import.cpp, since the higher-level MongoDB APIs don't play well with a second, temporary WT instance. But this means we don't automatically handle interrupts, e.g. when the node starts to shut down or step down.

Use OperationContext to check for interrupts regularly during WT operations like rollback-to-stable, recording collection metadata, and importing donor files.

In TenantMigrationRecipientService there are several places that do:

return WaitForMajorityService::get(opCtx).waitUntilMajority(writeOpTime, CancellationToken::uncancelable());

There's a cancellation token available, let's use it instead of uncancelable.

_fetchAndStoreDonorClusterTimeKeyDocs takes a cancellation token but doesn't use it.


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