Limit the number of indexes per index build on disaggregated storage clusters

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Storage Execution 2026-08-31
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Option 1 of the side-write drain decision document. Cap the number of index specs accepted by a single createIndexes command on a disaggregated storage cluster (proposed limit: 3), so that the per-index share of the serial drain budget stays large enough for the index build to converge.

      This is a stopgap intended to make multi-index builds usable for Atlas Infinite public preview, while the longer-term options (replicated container truncates, parallelizing the drain, backpressure on side writes) are evaluated. See SERVER-128241.

      Implementation notes

      • New uassert in createIndexes (src/mongo/db/shard_role/ddl/create_indexes_cmd.cpp, near the "at least one spec" check at :145). Today the only cap is the per-collection kMaxNumIndexesAllowed = 64 (index_catalog_impl.h:94, enforced at index_catalog_impl.cpp:1240-1249); there is no per-command limit.
      • Must apply only on disaggregated storage clusters, and must not change behavior on attached storage clusters.
      • The limit should be a server parameter rather than a compile-time constant, so that it can be relaxed without a binary push once a real fix lands.
      • User-facing error behavior needs a decision: reject the whole command, or build the first N specs and require the user to reissue for the rest? Rejecting is simpler and more honest.
      • This is a user-visible behavior change on DSC. It needs a note in the scope document's "User-Facing Syntax/API Changes" section, which currently reads "None", and it needs Cloud sign-off, since drivers and tooling that issue multi-index createIndexes commands will begin to fail.

      Convergence should be verified with the workload created for the side-write drain reproducer.

            Assignee:
            Binh Vo
            Reporter:
            Alex Sarkesian
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: