benchmark
benchmark copied to clipboard
[Feature] Track benchmark phase transitions
Motivation
We would like to have the ability to set the produce throughput adaptively according to the phase of the benchmark. For example, in a general load test we might want to attain the highest producer rate that does not incur any producer or consumer backlog. However, when filling a consumer backlog would not want the producer to back-off if the consumer backlog grows. In a later PR we will introduce a ProducerRateController interface and move rate controls into one or more implementations. The phase introduced here will be one of the signals that the controller can use to determine rate adjustments.
Changes
- Introduced
BenchmarkPhaseenum - Introduced a field in the
WorkloadGeneratorto track the current phase - Added phase transitions in the
WorkloadGenerator