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

Regression in balancer round storage statistics retrieval

    • Type: Icon: Bug Bug
    • Resolution: Gone away
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 7.0.0, 7.2.0-rc0, 7.1.0, 7.3.0-rc0, 8.0.0-rc0
    • Component/s: None
    • Catalog and Routing
    • ALL
    • CAR Team 2024-02-19, CAR Team 2024-03-04
    • 2

      In every balancing round, we retrieve per-shard storage statics. Since this is done serially, in a cluster with several shards this can be particularly slow, limiting considerably the balancing speed.

      Back in SERVER-30060 we did an optimization to retrieve storage statistics only from shards that have maxSize configured.

      Recently as part of SERVER-66297 we removed this optimization, so now we retrieve again statistics from all the shards serially at every round.

      The implementation of these statistics retrieval is affected by multiple performance issues:

       

                  Proposal: Do it only once per round and re-use the same ClusterStatistcs object

        1. Screenshot 2024-06-07 at 10.58.42.png
          Screenshot 2024-06-07 at 10.58.42.png
          188 kB
        2. Screenshot 2024-06-07 at 11.05.03.png
          Screenshot 2024-06-07 at 11.05.03.png
          206 kB
        3. Screenshot 2024-06-07 at 11.16.26.png
          Screenshot 2024-06-07 at 11.16.26.png
          280 kB
        4. Screenshot 2024-06-07 at 11.22.20.png
          Screenshot 2024-06-07 at 11.22.20.png
          228 kB

            Assignee:
            Unassigned Unassigned
            Reporter:
            tommaso.tocci@mongodb.com Tommaso Tocci
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: