summaryrefslogtreecommitdiff
path: root/content/implementation.tex
diff options
context:
space:
mode:
authormjkwiatkowski <mati.rewa@gmail.com>2026-07-11 23:53:57 +0200
committermjkwiatkowski <mati.rewa@gmail.com>2026-07-11 23:53:57 +0200
commite40a3262f0b5d0834fde5e8c5cbffb9e5ff534f2 (patch)
tree1c7104a91d5e09314193a3bda4d5a8b091fb2281 /content/implementation.tex
parent95abbb9948ab7c8d4fe62aa9284c2abeced0515b (diff)
feat: completed appendix AHEADmaster
Diffstat (limited to 'content/implementation.tex')
-rw-r--r--content/implementation.tex35
1 files changed, 25 insertions, 10 deletions
diff --git a/content/implementation.tex b/content/implementation.tex
index 8db19cf..b289aa8 100644
--- a/content/implementation.tex
+++ b/content/implementation.tex
@@ -1,16 +1,25 @@
\chapter{Implementation of \mysystem}\label{s:implementation}
-In this chapter we describe the implementation of \gls{my_system}.
-The main contribution of this chapter towards answering \emph{RQ3} is the prototype of \gls{my_system}.
+
+\section{Overview}\label{ss:overview_implementation}
+
+\begin{mynote}
+ The contribution of this chapter is two-fold:
+ \vspace{-0.2cm}
+ \begin{enumerate}[label=\emph{C\textsubscript{\arabic*}}]
+ \item We implement the real-world prototype of \mysystem (see \Cref{ss:detailed_implementation_overview}) realizing key features of the design.
+ \item We engineer \mysystem to enable predictive analytics engines (see \Cref{ss:programming})
+ \end{enumerate}
+\end{mynote}
+
+\section{Detailed Implementation of \mysystem}\label{ss:detailed_implementation_overview}
+In this section we describe the detailed implementation of \gls{my_system}.
After reading one should understand the technical decisions, choice of tools and modifications to existing software necessary for evaluation of \gls{my_system} in \Cref{s:evaluation}.
Any complex system is more than the sum of its parts~\cite{Wikipedia:article/Systems_Thinking}.
-To understand why \gls{my_system} it is crucial to provide a holistic view on the prototype.
-Therefore, the rest of the chapter is structured in a top-down approach: \Cref{ss:implementation_overview}
+To understand \gls{my_system} it is crucial to provide a holistic view on the prototype.
+Therefore, the rest of this chapter is structured in a top-down approach: \Cref{ss:detailed_implementation_overview}
presents the rationale for using the specific software packages, \Cref{ss:data_flow} shows the flow of data within the system, and \Cref{ss:extensions} details the different modifications and new software extensions to \code{OpenDC}.
Lastly, \Cref{ss:programming} carefully explains the design decisions behind the major Python modules.
-
-\section{Overview}\label{ss:implementation_overview}
-
\begin{figure}[t]
\centering
\includegraphics[width=0.85\linewidth]{images/implementation.pdf}
@@ -27,8 +36,15 @@ To store the in-band data we use a \code{Redis} (\myCircled{3b})~\cite{Wikipedia
To enable predictive analytics, we chose a discrete-event simulator, \code{OpenDC}(\myCircled{4a})~\cite{GitHub:software/OpenDC}.
The \code{Analytics Engine} (\myCircled{4b}), \code{Monitoring Service} (\myCircled{4c}), and \code{HTTP Server} (\myCircled{3c}) are described in detail in \Cref{ss:programming}.
-\code{Grafana} (\myCircled{2a})is a state-of-the-art industry tool to visualize dashboards.
-We posit it is crucial to include a user-friendly \gls{ui}.
+\begin{figure}[t]
+ \centering
+ {\includegraphics[width=0.9\linewidth]{images/grafana_panel.pdf}}
+ \caption[Example Grafana dashboard.]{Example Grafana Dashboard with downtime plotted against time.}
+ \label{fig:example_grafana_dashboard}
+\end{figure}
+
+\code{Grafana} (\myCircled{2a}) is a state-of-the-art industry tool to visualize dashboards.
+We posit it is crucial to include a user-friendly performance dashboard.
A number of previous publications on \gls{dt}s find dashboards important~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24, DBLP:conf/wosp/SumanCNTMI24, DBLP:conf/wosp/NicolaeTKLI26}.
We chose \code{Grafana} (\myCircled{2a}) instead of other software packages because of its seamless integration with \code{PostgreSQL} (\myCircled{3a}).
\code{Grafana} (\myCircled{2a}) provides good separation of concerns and compartmentalization as it does not store the displayed metrics itself.
@@ -95,7 +111,6 @@ Should anything unusual occur, the \code{Monitoring Service} notifies the \code{
Then, the \code{Analytics Engine}, ingests the data from the \code{Redis} stream (\myCircled{5}) and analyzes it for further insights.
All insights generated in this way, are sent to the \code{HTTP Server} (\myCircled{4}) to communicate to the system knobs within the datacenter and to the datacenter operators (\grayCircled{1}).
-
\begin{figure}[t]
\input{sources/listing_schema.tex}
\end{figure}