-
Type: Task
-
Resolution: Unresolved
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Replication
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.