Details
Description
Rough starting outline:
Concurrency Control
|
Lock Modes
|
Lock Granularity
|
(Different storage engines can support different levels of granularity.)
|
Lock Acquisition Order
|
(discuss lock acquisition order)
|
(mention risk of deadlocks motivation)
|
Replication State Transition Lock (RSTL)
|
Parallel Batch Writer Mode Lock (PBWM)
|
Global Lock
|
Database Lock
|
Collection Lock
|
Document Level Concurrency Control
|
(Explain WT's optimistic concurrency control, and why we do not need document locks in the MongoDB layer)
|
Mutexes
|
FCV Lock
|
Two-Phase Locking
|
(We use this for transactions? Explain)
|
Replica Set Transaction Locking
|
(TBD: title of this section -- there is some confusion over what terminology will be best understood)
|
(Stashing and unstashing locks for replica set level transactions across multiple statements.)
|
(Read's IS locks are converted to IX locks in replica set transactions.)
|
Locking Best Practices
|
Network Calls
|
(i.e., never hold a lock across a network call unless absolutely necessary)
|
Long Running I/O
|
(i.e., don't hold a lock across journal flushing)
|
FCV Lock Usage
|
Definitely feel free to alter the layout and file additional tickets split the work into more manageable units. Please add topics if you can think of any. This outline is meant only to be a starting point.
A couple helpful links for markdown basics:
https://www.markdowntutorial.com/
https://gist.github.com/asabaylus/3071099
https://markdownlivepreview.com/
Attachments
Issue Links
- is duplicated by
-
SERVER-47610 Execution Architecture Guide: Catalog Concurrency Control
-
- Closed
-