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

Writing config document to "local.system.replset" should not acquire database lock in stronger mode (X).

    • Type: Icon: Improvement Improvement
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Replication
    • Replication
    • 5

      It seems when the node persists new config in collection "local.system.replset", it takes "local" database lock in stronger mode (X) and PBWM lock in IS mode. This can lead to 2 major side effects.
      1) Since PBWM lock is taken in IS mode, this can block the secondary oplog applier which requires PBWM in X mode. This can result in replication lag. This will be addressed by SERVER-48398
      2) Since it takes "local" database lock in X mode, this can block other local database readers and writers.

      • Mainly, if this node X is the sync source for node Y, then the oplog fetcher of the node Y can be blocked behind the the reconfig via heartbeat thread due to database lock conflict, leading to replication lag.

            backlog-server-repl Backlog - Replication Team
            suganthi.mani@mongodb.com Suganthi Mani
            0 Vote for this issue
            10 Start watching this issue