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

Validate base-level latches

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.2
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Service Arch 2019-10-07, Service Arch 2019-10-21, Service Arch 2019-11-18, Service Arch 2019-12-02

      To validate base-level locking, we should do the following:

      • Add a Decoration to Client to store a LatchSetState struct
      • Make a Listener derived class that implements Mutex::LockListener and mutates the LatchSetState with onQuickLock()/onSlowLock() and onUnlock()
      • Modify LockListener function signatures to take a struct Mutex::Identity that holds a name, an optional SourceLocation, and a boolean isBaseLatch. All of the contents of Mutex::Identity should be constant from Mutex construction onward.
      • Change MONGO_MAKE_LATCH to construct a Mutex with a SourceLocationHolder via MONGO_SOURCE_LOCATION and isBaseLatch = false.
      • Add MONGO_MAKE_BASE_LATCH to construct a similar Mutex but with isBaseLatch = true.
      • Change a collection of base-level latches to be defined using MONGO_MAKE_BASE_LATCH. (See comments for potential locations)

            Assignee:
            rahul.sundararaman@mongodb.com Rahul Sundararaman (Inactive)
            Reporter:
            ben.caimano@mongodb.com Benjamin Caimano (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: