diff --git a/docs/_includes/head_custom.html b/docs/_includes/head_custom.html new file mode 100644 index 0000000000000000000000000000000000000000..945eb31cc1317b53a6267a480427e58cc2de7ef0 --- /dev/null +++ b/docs/_includes/head_custom.html @@ -0,0 +1,5 @@ +{% if page.usemathjax %} +<script type="text/javascript" async + src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"> +</script> +{% endif %} \ No newline at end of file diff --git a/docs/concepts/benchmarks-and-executions.md b/docs/concepts/benchmarks-and-executions.md index feef085d9c818ace0dc1982915b8665c092593d6..149658f7bbca472a4f6adad90ffdc16c08ba5e96 100644 --- a/docs/concepts/benchmarks-and-executions.md +++ b/docs/concepts/benchmarks-and-executions.md @@ -2,7 +2,7 @@ title: Data and Role Model has_children: false parent: Fundamental Concepts -nav_order: 2 +nav_order: 3 --- # Benchmarks and Executions diff --git a/docs/concepts/index.md b/docs/concepts/index.md index 990057869342e8f885f68206b31cd1a769b84431..4bcd5a88ab1a18910e9210f8e5c9080ffb5a7203 100644 --- a/docs/concepts/index.md +++ b/docs/concepts/index.md @@ -8,4 +8,12 @@ nav_order: 2 > A theodolite is a precision optical instrument for measuring angles between designated visible points in the horizontal and vertical planes. -- <cite>[Wikipedia](https://en.wikipedia.org/wiki/Theodolite)</cite> -Theodolite is a framework for benchmarking the horizontal and vertical scalability of stream processing engines. \ No newline at end of file +Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications. + +Theodolite adopts established definitions of scalability in cloud computing for its benchmarking method. It quantifies +scalability by running isolated experiments for different load intensities and provisioned resource amounts, which assess whether specified SLOs are fulfilled. Two metrics are available: The demand metric describes how the amount of minimal required resources evolve with increasing load intensities, while the capacity metric describes how the maximal processable load evolves with increasing resources. Hence, both metrics are functions. <!--Example?--> + +Load, resources and SLOs are deliberately kept abstract in Theodolite as Theodolite supports different types of these. For example, horizontal scalability can be benchmarked by varying the amount of Kubernetes Pods, while vertical scalability can be benchmarked by varying CPU and memory constraints of Pods. + +To balance statistical grounding and time-efficient benchmark execution, Theodolite comes with different heuristic for +evaluating the search space of load and resource combinations. Other configuration options include the number of repetitions, the experiment and warm-up duration, as well as the amount of different load and resource values to be evaluated. \ No newline at end of file diff --git a/docs/concepts/metrics.md b/docs/concepts/metrics.md new file mode 100644 index 0000000000000000000000000000000000000000..eae9ab9662cd674e7ad7813339cb72a66a7247dc --- /dev/null +++ b/docs/concepts/metrics.md @@ -0,0 +1,42 @@ +--- +title: Scalability Metrics +has_children: false +parent: Fundamental Concepts +nav_order: 1 +usemathjax: true +--- + +# Theodolite's Scalability Metrics + +## Resource Demand Metric + +$$ +\forall l \in L: \text{demand}(l) = \min\{r \in R \mid \forall s \in S: \text{slo}_s(l,r) = \text{true}\} +$$ + +## Load Capacity Metric + +$$ +\forall r \in R: \text{capacity}(r) = \max\{l \in L \mid \forall s \in S: \text{slo}_s(l,r) = \text{true}\} +$$ + + + +## Fun with Math + +$$ +\begin{aligned} + & \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right) + = \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\ + & (x_1, \ldots, x_n) \left( \begin{array}{ccc} + \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\ + \vdots & \ddots & \vdots \\ + \phi(e_n, e_1) & \cdots & \phi(e_n, e_n) + \end{array} \right) + \left( \begin{array}{c} + y_1 \\ + \vdots \\ + y_n + \end{array} \right) +\end{aligned} +$$ diff --git a/docs/concepts/search-strategies.md b/docs/concepts/search-strategies.md new file mode 100644 index 0000000000000000000000000000000000000000..f24e0a75c8d6aeb4d38903c20a3b0950a7780d64 --- /dev/null +++ b/docs/concepts/search-strategies.md @@ -0,0 +1,8 @@ +--- +title: Search Strategies +has_children: false +parent: Fundamental Concepts +nav_order: 2 +--- + +# Theodolite's Search Strategies diff --git a/docs/index.md b/docs/index.md index d3ef9c4be274e6ff623c0b5857f4ed0284697407..227305bc6e727e7d109eae9a7adabe9eea48938c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,7 +12,7 @@ Theodolite is a framework for benchmarking the horizontal and vertical scalabili {: .fs-6 .fw-300 .text-center } [Get started now](quickstart){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-4 } -[Learn the underlying concepts](benchmarks-and-executions){: .btn .fs-5 .mb-4 .mb-md-0 } +[Learn the underlying concepts](concepts){: .btn .fs-5 .mb-4 .mb-md-0 } {: .text-center } ---