From f6d764af0c7ffc589cde6253055b63ee2a39ee4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Mon, 27 Jun 2022 18:00:42 +0200 Subject: [PATCH] Add some templating and contents for concepts --- docs/_includes/head_custom.html | 5 +++ docs/concepts/benchmarks-and-executions.md | 2 +- docs/concepts/index.md | 10 +++++- docs/concepts/metrics.md | 42 ++++++++++++++++++++++ docs/concepts/search-strategies.md | 8 +++++ docs/index.md | 2 +- 6 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 docs/_includes/head_custom.html create mode 100644 docs/concepts/metrics.md create mode 100644 docs/concepts/search-strategies.md diff --git a/docs/_includes/head_custom.html b/docs/_includes/head_custom.html new file mode 100644 index 000000000..945eb31cc --- /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 feef085d9..149658f7b 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 990057869..4bcd5a88a 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 000000000..eae9ab966 --- /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 000000000..f24e0a75c --- /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 d3ef9c4be..227305bc6 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 } --- -- GitLab