Uploaded image for project: 'C Driver'
  1. C Driver
  2. CDRIVER-3735

Add benchmarks for multi-threaded workloads

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • 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

            Assignee:
            Unassigned Unassigned
            Reporter:
            kevin.albertson@mongodb.com Kevin Albertson
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: