[SERVER-38478] Remove UninterruptibleLockGuard in query yield Created: 07/Dec/18  Updated: 29/Oct/23  Resolved: 26/Apr/19

Status: Closed
Project: Core Server
Component/s: Concurrency
Affects Version/s: None
Fix Version/s: 4.1.11

Type: Task Priority: Major - P3
Reporter: Siyuan Zhou Assignee: Eric Milkie
Resolution: Fixed Votes: 0
Labels: prepare_interruptibility, uninterruptibleLockGuardRemoval
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
related to SERVER-44544 IndexBuildsCoordinator::_buildIndexTw... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage NYC 2019-01-28, Storage NYC 2019-02-11, Storage NYC 2019-03-25, Storage NYC 2019-04-08, Storage NYC 2019-04-22, Storage NYC 2019-05-06
Participants:
Linked BF Score: 17
Story Points: 8

 Description   

restoreLockState() is used by query yielding and transaction reaper. To make sure they don't conflict with prepared transactions on stepdown and shutdown, we need to guarantee they only restore IS or IX locks or they restore locks that won't conflict with transactions.



 Comments   
Comment by Githook User [ 26/Apr/19 ]

Author:

{'name': 'Eric Milkie', 'username': 'milkie', 'email': 'milkie@10gen.com'}

Message: SERVER-38478 Remove UninterruptibleLockGuard in query yield
Branch: master
https://github.com/mongodb/mongo/commit/ee209fb1ee29e6d4178b507b561ebdaf85c729ee

Comment by Eric Milkie [ 23/Jan/19 ]

I'm investigating whether we can simply remove the UninterruptibleLockGuard that the query executor uses for restoreLockState().

Comment by Louis Williams [ 20/Dec/18 ]

Note: non document-locking storage engines like ephemeralForTest will be incompatible with this because they take collection X locks to do queries that involve writes (for example index build table scans).

Comment by Gregory McKeon (Inactive) [ 17/Dec/18 ]

Sending to storage to do as part of the UninterruptibleLockGuard work.

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