[SERVER-61731] Retry importing donor collections Created: 24/Nov/21  Updated: 07/Sep/22  Resolved: 06/Jan/22

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: Suganthi Mani
Resolution: Done Votes: 0
Labels: shard-merge-milestone-1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-61143 Import donated collections Closed
Related
related to SERVER-61773 Enable WT stable timestamp rule Closed
related to SERVER-62417 Complete TODO listed in SERVER-61731 Closed
is related to WT-8421 Add a config to allow import for tabl... Closed
Sprint: Server Serverless 2021-12-13, Server Serverless 2021-12-27, Server Serverless 2022-01-10
Participants:

 Description   

For multitenant migrations with protocol "shard merge", when the recipient imports donor collections it may fail. The only retryable error we know of is if R's stable timestamp is < the D collections' checkpoint timestamp, aka startApplyingDonorOpTime. We can advance R's majority commit point as necessary (SERVER-61140) but the stable timestamp is updated a bit later than the majority commit point, so R needs a retry loop while it waits.

Question: if there's a WiredTiger error when R tries to import a D collection, how does R know the cause of the error? WT uses EINVAL to express many errors, not just "stable timestamp too old". If R can't determine the cause of the error, it won't know whether to retry.



 Comments   
Comment by Suganthi Mani [ 06/Jan/22 ]

We already call import in a  writeConflictRetry loop. So, there is nothing to do for this ticket. A test will be added to verify the logic and will be addressed as part of SERVER-61773

Comment by Suganthi Mani [ 13/Dec/21 ]

In WT-8421, we have decided that when checkpoint timestamp greater than the stable timestamp, WT would return WT_ROLLBACK  error for WT create "import" command. So, we can use existing writeConflictRetry  (retries function on WT_ROLLBACK error ) mechanism to retry the WT create "import" command on stable timestamp check failure. CC jesse

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