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

Performance regression in new mongos query path (about 17% worse than 3.0)

    • Sharding
    • ALL
    • QuInt B (11/02/15), QuInt C (11/23/15)
    • 0

      During the 3.1 development cycle, the implementation of find and getMore on mongos was rewritten under SERVER-15176. This new mongos query path plugs into the TaskExecutor event loop framework. It issues find, getMore, and killCursors commands to the shards using the new asynchronous networking layer. Our automated industry benchmarks performance loop shows that the new query path is about 17% slower than its 3.0 predecessor. This ticket tracks the work to achieve parity with 3.0 on the industry benchmark workload, which could involve optimizations to the asynchronous networking code, the task executor layer, or the new query path itself.

      Original Description

      Read performance regression found in system-perf EVG test. This is due to following change:
      https://github.com/mongodb/mongo/commit/b1982bb7fb610def9b23ab08b0317e6f409c1784

      this enable new mongos query path for legacy read, therefore, here we are showing the performance issue with new path.

      A single findOne test with a single sharded cluster with benchRun

      results for b1982b:

      mongos> db.serverBuildInfo().gitVersion
      b1982bb7fb610def9b23ab08b0317e6f409c1784
      ....
      
      All Results:
      +--------------------------------+----------+--------------+----------+------------------------------+
      | Test                           | Thread   | Throughput   | Pass?    | Comment                      |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "findOne"                      |       32 | 13236.845747 | true     | ""                           |
      | "findOne"                      |       64 | 12156.284979 | true     | ""                           |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

      32e55, the parent SHA

      All Results:
      +--------------------------------+----------+--------------+----------+------------------------------+
      | Test                           | Thread   | Throughput   | Pass?    | Comment                      |
      |--------------------------------+----------+--------------+----------+------------------------------|
      | "findOne"                      |       32 | 35064.731049 | true     | ""                           |
      | "findOne"                      |       64 | 35064.437971 | true     | ""                           |
      +--------------------------------+----------+--------------+----------+------------------------------+
      

            Assignee:
            backlog-server-sharding [DO NOT USE] Backlog - Sharding Team
            Reporter:
            rui.zhang Rui Zhang (Inactive)
            Votes:
            2 Vote for this issue
            Watchers:
            28 Start watching this issue

              Created:
              Updated:
              Resolved: