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

Use a unique Locker for every ShardingDDLCoordinator

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Sharding EMEA 2023-06-12, Sharding EMEA 2023-06-26

      On one side, the ShardingDDLCoordinator is creating and destroying several OperationContext objects since it uses a task chain to perform its operations. On the other side, the lock state is bound to an OperationContext through a Locker object, and that Locker object is created and destructed together with the OperationContext.

      However, the new DDLLockManager implementation requires keeping a Locker object alive and attached to a ShardingDDLCoordinator in order to hold DDL locks across a task chain.

      The aim of this ticket is to keep a unique Locker object per ShardingDDLCoordinator by attaching and detaching it to the current OperationContext once its constructed and destructed respectively.

       

            Assignee:
            silvia.surroca@mongodb.com Silvia Surroca
            Reporter:
            silvia.surroca@mongodb.com Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: