Skip to content

Client workload generator

Jonathan Mace requested to merge client-workload-generator into master

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 and idle 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 and idle periods similar to BurstyClosedLoop.

Other workloads to add:

  • Trace-replay workloads (e.g. from the Azure traces)

Merge request reports