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
|