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

Omit tenantId from serverStatus and currentOp metrics during Merge

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.2.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • v5.1
    • Server Serverless 2021-10-25, Server Serverless 2021-11-01, Server Serverless 2021-11-15, Server Serverless 2021-11-29

      If a migration's protocol is "shard merge" then the donor donates all data to the recipient, not just one tenant's data. Thus there's no tenantId. Omit it from the replies of the diagnostic commands serverStatus and currentOp for migrations with protocol "shard merge".

      (Until the Shard Merge project is complete, "shard merge" migrations still use tenantId. We're gradually implementing shard merge to the point where it doesn't need a tenantId. But we can remove tenantId from serverStatus and currentOp now.)

      The code is in reportForCurrentOp() in tenant_migration_donor/recipient_service.h/cpp, and appendInfoForServerStatus() in tenant_migration_access_blocker_registry.cpp and tenant_migration_donor/recipient_access_blocker.cpp.

      Search for "tenantMigrationAccessBlocker" in the jstests/replsets directory and you'll see that most of the work for this ticket may be updating tests. We use the same tests for the old and new migration protocols, so they must expect different currentOp and serverStatus formats depending on the protocol. Let's make a nicely-factored utility for the JS tests to abstract that difference away.

            Assignee:
            christopher.caplinger@mongodb.com Christopher Caplinger
            Reporter:
            jesse@mongodb.com A. Jesse Jiryu Davis
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: