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

Fine-grained implementation of the ShardingMigrationCriticalSection

    • Type: Icon: Task Task
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Sharding
    • Labels:
      None
    • Sharding EMEA
    • Sharding EMEA 2021-07-12, Sharding EMEA 2021-07-26, Sharding EMEA 2021-08-09

      The goal of this task is to provide a fine-grained implementation of the ShardingMigrationCriticalSection that allow us to acquire/promote the CS for a chunk range.

      More specifically:

      • Offer a way to acquire/promote the CS specifying the chunk range and expose methods to query those values.
      • Note that there are operations such as rename or reshard that require to block the whole collection.
      • We should consider the range as part of the identifier of a CS, in the sense that if the CS was acquired for the range [MIN, 0) but then it is promoted without a range (i.e. as if we want to block the whole collection) it should emit an error.
      • Q: Right now the implementation of [recoverable critical sections|thttps://github.com/mongodb/mongo/blob/master/src/mongo/db/s/sharding_migration_critical_section.h] has exactly the same interface as the ShardingMigrationCriticalSection. This is going to change with this work. As part of this ticket, it would be interesting to check if there is any potential problem.

            Assignee:
            backlog-server-sharding-emea [DO NOT USE] Backlog - Sharding EMEA
            Reporter:
            sergi.mateo-bellido@mongodb.com Sergi Mateo Bellido
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: