[SERVER-38962] The second phase of two-phase drop should occur when the drop becomes both checkpointed and older than the oldest timestamp Created: 11/Jan/19  Updated: 29/Oct/23  Resolved: 29/Jan/19

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

Type: Task Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: Xiangyu Yao (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-33161 Postpone WiredTigerKVEngine table dro... Closed
Related
related to SERVER-59005 Storage engine clean shutdown can rac... Closed
related to SERVER-33161 Postpone WiredTigerKVEngine table dro... Closed
related to SERVER-43134 Only run background validation on che... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage NYC 2019-01-28, Storage NYC 2019-02-11
Participants:

 Description   

Executing the second phase of two-phase drop, to remove the WT index table, is currently done when the dropCollection timestamp becomes checkpointed. This is fine because currently we do not allow reads at any PITs between oldest timestamp and the dropCollection timestamp (due to the fact that catalog is not versioned).

Timeline:
-------- oldest --------------- drop (1st phase, with drop timestamp) ---------- checkpoint – drop (2nd phase, actual WT index table drop)

However, in the future, catalog will be versioned so we will want to serve index reads between oldest and dropCollection (1st phase). In that case, we will want to delay the 2nd phase (actual WT drop) until oldest timestamp move past the dropCollection timestamp.



 Comments   
Comment by Githook User [ 29/Jan/19 ]

Author:

{'username': 'xy24', 'email': 'xiangyu.yao@mongodb.com', 'name': 'Xiangyu Yao'}

Message: SERVER-38962 Drop ident when both checkpoint and oldest timestamps move past drop optime
Branch: master
https://github.com/mongodb/mongo/commit/cf47aee946c42c246a9176e1df1cd27b12dde685

Comment by Xiangyu Yao (Inactive) [ 25/Jan/19 ]

The description is not very accurate: We actually use "oldest timestamp" rather than "checkpoint timestamp" to notify the 2nd phase drop currently. This ticket was filed when SERVER-33161 was done but it got reverted due to the lack of in-memory handling. Therefore, this ticket now becomes "to use both oldest and checkpoint timestamps to notify the 2nd phase drop" and SERVER-33161 can be closed as a duplicate once it's done.

Comment by Dianna Hohensee (Inactive) [ 23/Jan/19 ]

Will need additional handling for in-memory, as surfaced in SERVER-33161. I think SERVER-33161 can just be closed out once this ticket is complete.

Comment by Dianna Hohensee (Inactive) [ 14/Jan/19 ]

xiangyu.yao, this is useful for two-phase collection drop, too, so Eric and Benety offered your time

Generated at Thu Feb 08 04:50:35 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.