[SERVER-40641] Ensure TTL delete in prepare conflict retry loop does not block step down Created: 15/Apr/19  Updated: 29/Oct/23  Resolved: 18/May/19

Status: Closed
Project: Core Server
Component/s: Index Maintenance, Replication
Affects Version/s: None
Fix Version/s: 4.1.12

Type: Task Priority: Major - P3
Reporter: Judah Schvimer Assignee: Gregory Wlodarek
Resolution: Fixed Votes: 0
Labels: prepare_durability, txn_storage
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-40594 Range deleter in prepare conflict ret... Closed
related to SERVER-40700 Deadlock between read prepare conflic... Closed
related to SERVER-41035 Rollback should kill all user operati... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage NYC 2019-05-20
Participants:

 Description   

This would be the same problem as SERVER-40594, but for TTL index deletes.



 Comments   
Comment by Githook User [ 18/May/19 ]

Author:

{'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}

Message: SERVER-40641 Ensure TTL gets interrupted by rollback
Branch: master
https://github.com/mongodb/mongo/commit/b7a30e03816491a43887ed69a99b95481e83f0fd

Comment by Githook User [ 18/May/19 ]

Author:

{'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}

Message: SERVER-40641 Ensure TTL delete in prepare conflict retry loop does not block step down
Branch: master
https://github.com/mongodb/mongo/commit/00c9d427d464a415d85affc6fa956b124cd61fd3

Comment by Judah Schvimer [ 22/Apr/19 ]

I'm marking this as blocked until SERVER-40700 is designed.

Comment by Judah Schvimer [ 17/Apr/19 ]

I'm fine with that. We can change the name of the function.

Comment by Eric Milkie [ 17/Apr/19 ]

I was instead expecting you to change the loop in ReplicationCoordinatorImpl::_killUserOperationsOnStepDown() to look at the client's desc() when isFromUserConnection() is false, and compare with "TTLMonitor". Although doing it this way does make the name of the function somewhat untrue.

Comment by Judah Schvimer [ 17/Apr/19 ]

milkie, how do you recommend replication acquire a pointer to this OperationContext to kill on step-down?

Comment by Judah Schvimer [ 17/Apr/19 ]

This should kill the in-progress TTL delete operations on stepdown, but not kill the TTL thread itself.

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