Execution Architecture Guide: Concurrency Control

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.7.0
    • Affects Version/s: None
    • Component/s: Storage
    • None
    • Fully Compatible
    • Execution Team 2020-08-10
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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/

            Assignee:
            Eric Milkie
            Reporter:
            Dianna Hohensee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: