Efficient Parallelizing waterfall of commands in Compass

XMLWordPrintableJSON

    • Type: Story
    • Resolution: Fixed
    • Priority: Major - P3
    • 1.46.7
    • Affects Version/s: None
    • Component/s: Data Explorer
    • None
    • Not Needed
    • None

      User Experience

      As seen in the flame graph, events #6-13 on client 3 are all happening serially. More generally, we see that there is a very clear "waterfall" of events before we get to listing databases.

       

      This issue is mentioned here: https://docs.google.com/document/d/1Fl_MYUQ3cn3lKNAa9PTwsqcq7uuYbhJ127h-bk8yIh8/edit?disco=AAABkWy87T8

      We can also tune the logic in compass a bit maybe to start requesting some of this data sooner, right now I think there is a bit of a waterfall before we get to listing databases, but this can be improved. 

      Also here: https://docs.google.com/document/d/1uDUy-1mSghoGCKB0GAH0DBst8gU6wd6Fw_7hcpmh5IU/edit?tab=t.0#bookmark=id.5wmfzkek7xkr 

       

      This ticket is to investigate whether we can parallelize some of that at the Compass level. Note that to actually reap the benefits of this parallelization, we will likely also need to increase the "maxPoolSize" option, since running more commands in parallel requires more connections (the driver cannot run more than one command at once).

       

      Acceptance Criteria

      Implementation Requirements

      • COMPASS-9455 will remove the initial pings in favor of a more useful command.
      • The following commands are run serially:
        • ping, ping, aggregate (db, $currentOp), hostInfo, buildInfo, getParameter, atlasVersion
        • The remaining following commands should be parallelized to start the waterfall earlier and create more connections sooner* Investigate an appropriate maxPoolSize increase for compass-web. Keep in mind the constraints of the browser to create connections.

      Testing Requirements

      • Reproduce the flamegraph and demonstrate more parallel operations

        1. screenshot-1.png
          screenshot-1.png
          11 kB
        2. connect_waterfall (1).png
          connect_waterfall (1).png
          896 kB

            Assignee:
            Sergey Petushkov
            Reporter:
            Simon Zhu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: