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

Create a workload generator for server testing

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Replication
    • Repl 2024-10-14

      While working on PM-2209, we wanted to test the server restore procedure against nodes with randomized operation interleavings and of varying data sizes. We wanted to generate this data from some workload that encompassed all possible MongoDB commands.

      We ended up following a similar approach to Mongosync, and we used the jstests/core corpus of tests to produce the data. However, many of the core tests drop their data once test execution is complete. We had to override this drop functionality so that the data sizes from the core tests keep growing. To avoid assertions and javascript errors from potentially duplicate collections, we also needed to override asserts and wrap all the test executions in a try/catch statement.

      From both the Mongosync and restore tool projects, it seems there is some desire for a workload generator that can produce a large amount of data across all possible MongoDB commands. It appears this would be useful for test suites that don't care about the contents of the test but want to do something interesting with the data generated.

      On a high-level, this sounds like what Genny does, but I'm not aware of passthrough testing that utilizes Genny, or whether it's easy to interface it with our passthrough testing hooks.

            Assignee:
            ali.mir@mongodb.com Ali Mir
            Reporter:
            ali.mir@mongodb.com Ali Mir
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: