-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Performance Benchmarking
-
None
Define and implement micro benchmarks to measure operation throughput in multi-threaded applications. This will help serve to show how proposed changes of CDRIVER-3525 affect throughput. Here is a proposal:
The micro benchmarks can run one command (e.g. ping) and parameterize on:
- S: the number of servers
- C: the maximum number of connections
- T: the maximum number of threads
The measurement can be the throughput of commands (operations / second), when commands are sent uniformly across all S servers.
Note, currently the maximum number of connections is determined by the client pool's maxPoolSize (defaults to 100) and the number of servers the driver knows about. E.g. if connected to a three node replica set, with maxPoolSize=2, the maximum number of connections the driver can create is 6.
Ensure that we can actively run these benchmarks. We may be able to add tasks to the existing benchmark project: https://github.com/mongodb/mongo-c-driver-performance
- related to
-
CDRIVER-2785 Use benchmarks in Evergreen to encourage performance improvements
- Closed