[SERVER-81373] Refactor DeferredDropRecordStore to use onCommit handlers Created: 22/Sep/23  Updated: 21/Dec/23

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

Type: Improvement Priority: Major - P3
Reporter: Jordi Olivares Provencio Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-80974 Unclean shutdown while dropping local... Closed
Assigned Teams:
Storage Execution
Participants:

 Description   

DeferredDropRecordStore currently submits the ident to the ident reaper whenever it gets destroyed with the minimum timestamp.

Ident drops will return EBUSY errors if the data hasn't been written to the RecordStore before dropping it since the ident is technically in-use and/or dirty according to WiredTiger.

We also cannot use a checkpoint iteration version as introduced by SERVER-80974 since in multi-document transactions the iteration will be wrong since it's only valid if the operation commits. The ident in this case would be part of the multi-document transaction but the drop would be attempted before the commit is performed.

Ideally we should detect whether we are part of a transaction and perform the drop once the operation commits.



 Comments   
Comment by Jordi Olivares Provencio [ 21/Dec/23 ]

The ideal solution should be to drop once the checkpoint iteration is durable and delay adding to the pending drop idents until we commit/rollback the transaction if there is one open.

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