[SERVER-37711] Revert the `ReplicationStateTransitionLockGuard` functionality Created: 23/Oct/18  Updated: 29/Oct/23  Resolved: 25/Oct/18

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: 4.1.4
Fix Version/s: 4.1.5

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Kaloian Manassiev
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-37244 Implement checkOutSessionForKill API ... Closed
Related
related to SERVER-37594 Dump all checked out sessions in the ... Closed
related to SERVER-37689 Make recovery from query yield interr... Closed
is related to SERVER-35870 Temporarily release locks on replica ... Closed
is related to SERVER-36913 Add functionality to LockManager to r... Closed
is related to SERVER-37381 Allow prepared transactions to surviv... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2018-11-05
Participants:

 Description   

The ReplicationStateTransitionLockGuard RAII class was introduced as a means for replication stepdown to be able to temporarily release the locks for prepared transactions so that the Global X lock can be acquired. However, closer inspection by tess.avitabile discovered race conditions, which are not trivial to fix without significant changes to the lock manager.

Instead of continuing this tight integration with the lock manager, the replication team will investigate making replication state transitions not depend on the Global X lock. As a result of this, the ReplicationStateTransitionLockGuard and its usages will no longer be necessary, so they should be reverted.

This includes the following commits:



 Comments   
Comment by Githook User [ 25/Oct/18 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-37711 Revert commits related to lock yielding for prepared transactions on step down

This change reverts the following commits:

Comment by Kaloian Manassiev [ 24/Oct/18 ]

OK done - I read through that refactor and it looks good to me, so I left it out of the list.

Comment by Tess Avitabile (Inactive) [ 23/Oct/18 ]

Sure, that sounds good.

Comment by Judah Schvimer [ 23/Oct/18 ]

I kind of like the refactor in https://github.com/mongodb/mongo/commit/cd533253819148e71a5e7c772ea484aafcbbf2e2. tess.avitabile, how do you feel about keeping that one?

Comment by Tess Avitabile (Inactive) [ 23/Oct/18 ]

I think this also includes https://github.com/mongodb/mongo/commit/c6d90316d6b694e12426274c713a4a078e004fc5.

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