Design revised Theodolite architecture
Architectural Requirements:
- Support for arbitrary benchmarks/stream processing engines
- Each benchmark (implementation) is configured via a file, which specifies docker containers etc. for that benchmark
- Support for different load dimensions
- A load dimension is a parameter, which are different values tested for
- Support for different resource scaling types
- E.g., scaling with number of instances, threads per instance, etc.
- Support for arbitrary configuration of stream processing engine
- E.g. something like passing configuration options to the SUT
- Configuration of search strategy
- Configuration of lag experiment
- E.g. execution duration, number of repetitions, warm-up period