Client workload generator
Start making the client workloads more robust.
Overview of this change:
- Cleaned up
src/client.cpp
- Multiple workloads can run efficiently from the same workload engine. These are defined in
src/clockwork/workload/workload.h and .cpp
- Specific workloads used for specific experiments can be defined in
src/clockwork/workload/example.h
or in other files -
src/client.cpp
lets you specify which workload to run.
Current supported workload types are:
- ClosedLoop: runs
concurrency
requests in closed-loop - BurstyClosedLoop: like ClosedLoop, but defined by a
burst
andidle
period. The durations of burst and idle are drawn from poisson distributions, and the BurstyClosedLoop workload is paramaterized by the mean burst and mean idle duration. - FixedRate: submits requests at a fixed rate. Paramaterized by the
rate
- PoissonOpenLoop: like FixedRate, but exact request inter-departure times are drawn from a poisson distribution
- BurstyPoissonOpenLoop: like PoissonOpenLoop, with
burst
andidle
periods similar toBurstyClosedLoop
.
Other workloads to add:
- Trace-replay workloads (e.g. from the Azure traces)