-
Type: Bug
-
Resolution: Incomplete
-
Priority: Major - P3
-
None
-
Affects Version/s: 3.1.9
-
Component/s: Performance, Querying, Sharding
-
Sharding
-
ALL
-
QuInt B (11/02/15), QuInt C (11/23/15)
-
(copied to CRM)
-
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 | "" | +--------------------------------+----------+--------------+----------+------------------------------+
- depends on
-
SERVER-21436 Build a TaskExecutor that uses the NetworkInterfaceASIO worker thread for all work
- Closed
- is related to
-
SERVER-20853 Eliminate copies of result batch in find and getMore commands path
- Closed
-
SERVER-20944 Contention on ThreadPoolTaskExecutor::_mutex
- Closed
- related to
-
SERVER-20763 Performance regression in find command (versus legacy OP_QUERY) due to additional contended calls into CursorManager
- Closed
-
SERVER-20194 Enable new cursor manager path in mongos for legacy OP_QUERY/OP_GET_MORE/OP_KILLCURSORS query operations
- Closed
-
SERVER-21441 Optimize shard targeting for equality queries on the shard key
- Closed