[SERVER-14721] remove global lock from repairDatabase command Created: 29/Jul/14  Updated: 06/Dec/22  Resolved: 07/Mar/16

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

Type: Improvement Priority: Major - P3
Reporter: Thomas Rueckstiess Assignee: Backlog - Storage Execution Team
Resolution: Won't Fix Votes: 0
Labels: ntc
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to DOCS-3838 unclear locking behavior when repairi... Closed
related to SERVER-14716 tab-complete blocks under global lock... Closed
Assigned Teams:
Storage Execution
Participants:

 Description   

Currently the repairDatabase command takes a global lock, see this code line.

I couldn't find a ticket to track the request to downgrade this to a database level lock, so here it is.

There is a comment referencing SERVER-4328 (db locking) that this is a "TODO" but currently the global lock "may" be necessary due to calling syncDataAndTruncateJournal.

After the storage changes we need to review if a downgrade to a db lock is an option. This would make repairs on a database much easier to handle from an operations point of view.



 Comments   
Comment by Ian Whalen (Inactive) [ 07/Mar/16 ]

as per the description, since this may be necessary (and repairDatabase shouldn't be run on active server anyway) this doesn't seem like an optimization that we want to implement.

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