-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Test Model
-
None
The workload generator currently uses a uniform distribution of keys and timestamps, and it also picks tables and transactions uniformly when composing a workload.
To give us more flexibility, we should implement support for at least a few different probability distributions for the model's random number generator.
Suggestion:
- Implement the specification of each distribution as a struct or a class, and then use them in an std::variant (e.g., std::variant<uniform, normal, zipfian, ...>), which can be then used as an argument to the various random number generator functions.
- Implement a way to serialize the distribution objects to human-readable strings, e.g., "uniform(0, 100)", and a way to parse them back, so that they can be easily passed to the workload generator via the test program's -G command-line argument and/or the workload generator's specification file.