Use a unique Locker for every ShardingDDLCoordinator

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: 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
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      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
            Reporter:
            Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: