Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-47294

Execution Architecture Guide: Concurrency Control

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.7.0
    • None
    • Storage
    • None
    • Fully Compatible
    • Execution Team 2020-08-10

    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

        Activity

          People

            milkie@mongodb.com Eric Milkie
            dianna.hohensee@mongodb.com Dianna Hohensee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: