summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjkwiatkowski <mati.rewa@gmail.com>2026-07-10 21:41:05 +0200
committermjkwiatkowski <mati.rewa@gmail.com>2026-07-10 21:41:05 +0200
commitb6202a785ce486531826d23999971712c512c785 (patch)
tree346cc89f739dfa13e16a45bb2ec040512a36a4a4
parentefed2f678137467b6d317c61b88494979ed49109 (diff)
feat: changed the TOC and added the preamble
-rw-r--r--appendix/appendix.tex19
-rw-r--r--content/background.tex2
-rw-r--r--content/conclusion.tex11
-rw-r--r--content/design.tex9
-rw-r--r--content/evaluation.tex173
-rw-r--r--content/implementation.tex2
-rw-r--r--content/intro.tex27
-rw-r--r--content/preamble/abstract.tex31
-rw-r--r--content/preamble/acknowledgement.tex18
-rw-r--r--content/preamble/dedication.tex18
-rw-r--r--main.bib62
-rw-r--r--main.tex14
-rw-r--r--style/first-page.tex5
-rw-r--r--style/style.tex42
-rw-r--r--style/toc.tex14
15 files changed, 320 insertions, 127 deletions
diff --git a/appendix/appendix.tex b/appendix/appendix.tex
index b106a66..2530a19 100644
--- a/appendix/appendix.tex
+++ b/appendix/appendix.tex
@@ -1,16 +1,3 @@
-% this file is called up by thesis.tex
-% content in this file will be fed into the main document
-
-%: ----------------------- name of chapter -------------------------
-\section*{Appendix} % top level followed by section, subsection
-
-
-
-
-
-
-
-% ---------------------------------------------------------------------------
-%: ----------------------- end of thesis sub-document ------------------------
-% ---------------------------------------------------------------------------
-
+\begin{appendices}
+ \chapter{Reproducibility}
+\end{appendices}
diff --git a/content/background.tex b/content/background.tex
index 6671537..76ce5b3 100644
--- a/content/background.tex
+++ b/content/background.tex
@@ -1,5 +1,6 @@
\chapter{Background}\label{s:background}
+\section{Overview}\label{ss:background_overview}
\begin{mynote}
The contribution in this chapter is three-fold:
@@ -218,3 +219,4 @@ Kalibre takes the best of both \gls{ml} and \gls{cfd} approaches and achieves su
%In your work, consider adding such an endpoint, albeit explain in future work that you envision \emph{implementing} this endpoint in the future.
+\section{Discussion}\label{ss:background_discussion}
diff --git a/content/conclusion.tex b/content/conclusion.tex
index 122b2be..83a499c 100644
--- a/content/conclusion.tex
+++ b/content/conclusion.tex
@@ -9,11 +9,11 @@ Starting from a thorough investigation into the new, emerging field of datacente
We ended our project with a novel evaluation method used in a set of exhaustive experiments.
We answer the main research question by addressing each sub-research question.
-\section{Answers to Research Questions}\label{ss:answers_to_rqs}
+\section{Answers to Each Research Question}\label{ss:answers_to_rqs}
\begin{enumerate}[label=\emph{RQ\textsubscript{\arabic*}}]
\item \emph{How to asses the current state-of-the-art of digital twinning for datacenters?}\\
- In order to answer this research question, we conducted a semi-structured literature review.
+ To answer this research question, we conducted a semi-structured literature review.
Our findings indicate that the field of datacenter digital twinning is still under development, and there exist few \gls{dcdt} deployments.
The current efforts in modelling datacenters focus on very specialized parts of datacenter management, \ie cooling and heat modelling, network mapping.
Many crucial features, inherent to the \gls{dt} definition are still missing from current \gls{dcdt}s.
@@ -38,10 +38,13 @@ We answer the main research question by addressing each sub-research question.
\section{Future Work}\label{ss:future_work}
+\subsection{A Strong, New Principle of \gls{dcdt} Design}\label{sss:future_work_in_analytics}
We envision \gls{dcdt}s as systems that encompass features necessary to model the entire datacenter.
-It came to our attention that with the explosive growth of \gls{ai} and the diversification of datacenters under way, \gls{dt}s will be indispensable in datacenter management.
-To power the predictions we envision an \gls{ml}-based inference engine as a necessary component of digital twinning.
+It came to our attention that with the growth of \gls{ai} and the diversification of datacenters under way, \gls{dt}s will be indispensable in datacenter management.
+To power the predictions, we envision an \gls{ml}-based inference engine as a necessary component of digital twinning.
The need for \gls{ml} arises naturally in scenarios where large volumes of data, requiring little to no preprocessing meet the demand for estimating future facility behaviour.
+
+\subsection{}\label{sss:future_work_in_failures}
For future work in failure prediction, we envision an \gls{abc} approach to estimate the real failure distribution within the datacenter.
Additionally, power usage optimization is a critical concern in datacenter management.
We hope future attempts to enhance datacenter digital twinning can enable datacenter operators with actionable insights towards lowering the power consumption.
diff --git a/content/design.tex b/content/design.tex
index 3d53637..48d6ffd 100644
--- a/content/design.tex
+++ b/content/design.tex
@@ -1,4 +1,6 @@
-\chapter{Design}\label{s:design}
+% Changed chapter name, as suggested by Alexandru
+\chapter{Design of \mysystem, a Digital Twin For Predictive Analysis of Datacenters}\label{s:design}
+\section{Overview}\label{ss:design_overview}
\begin{mynote}
Our contribution in this chapter is three-fold:
\vspace{-0.2cm}
@@ -123,7 +125,7 @@ In addition to the functional requirements, we also present non-functional requi
\label{fig:reference_architecture}
\end{figure}
-\section{Design of \emph{Sunfish}}\label{ss:design_of_mysystem}
+\section{Overview of \mysystem Architecture}\label{ss:design_of_mysystem}
As a result of the \emph{AtLarge Design Process}~\cite{DBLP:conf/icdcs/IosupVTETBFMT19} designed a reference architecture for a predictive datacenter digital twin.
\Cref{fig:reference_architecture} encompasses 4 main elements:
\begin{enumerate*}[label=(\Roman*)]
@@ -195,6 +197,7 @@ Any discrepancies are communicated to the Analytics Engine (\myCircled{4b}) for
\caption{The detailed view of the Message Broker (\myCircled{2b}) from \Cref{fig:reference_architecture}.}
\label{fig:message_broker}
\end{figure}
+\section{The Digital Thread and Predictive Analytics}\label{ss:detailed_design}
\subsection{Message Broker}\label{sss:message_broker}
The Message Broker (\myCircled{2b}) is a component is slightly more complex, and necessities a separate diagram.
In \Cref{fig:message_broker} we present the composite elements that make up the Message Broker.
@@ -205,6 +208,4 @@ In the reference architecture, the consumers would constitute the Database (\myC
What is remarkable about the connector manager is the ability to swiftly connect more consumers to the system.
This way, the predictive digital twin can facilitate multiple different types of analytics engines or techniques.
Additionally, the setup is \Cref{fig:message_broker} is currently standard industry practice for large software deployments.
-
\section{Discussion}\label{ss:design_discussion}
-
diff --git a/content/evaluation.tex b/content/evaluation.tex
index ed7f9d1..8f587d1 100644
--- a/content/evaluation.tex
+++ b/content/evaluation.tex
@@ -1,58 +1,187 @@
-\chapter{Evaluation}\label{s:evaluation}
+\chapter{Experimental Evaluation through a Real-World Prototype}\label{s:evaluation}
-\section{Experimental Setup}
+\section{Overview}\label{ss:evaluation_overview}
+\begin{mynote}
+ The contribution of this chapter is two-fold:
+ \vspace{-0.2cm}
+ \begin{enumerate}[label=\emph{C\textsubscript{\arabic*}}]
+ \item We provide a novel method for evaluating datacenter digital twins in \Cref{ss:experimental_setup}.
+ \item We provide a set of exhaustive experiments to evaluate \mysystem in \Cref{ss:experiment1,ss:experiment2}.
+ \end{enumerate}
+ Our findings indicate:
+ \vspace{-0.2cm}
+ \begin{enumerate}[label=\emph{F\textsubscript{\arabic*}}]
+ \item Digital twinning can be used for failure detection to the benefit of datacenter operators.
+ \emph{Sunfish} is able to effectively differentiate between large failures and insignificant downtime.
+ \item \emph{Sunfish} is capable of dynamic adjustments to the scheduling policy of the datacenter, during workload runtime.
+ \item If supplied with a state-of-the-art predictive analytics engine, \emph{Sunfish} is capable of lowering the number of terminated tasks.
+ \end{enumerate}
+\end{mynote}
+
+\section{Experimental Setup}\label{ss:experimental_setup}
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{images/novel_eval_method.png}
- \caption{A novel evaluation method proposed by us.}
+ \caption{A novel evaluation method which solves the issue of real-world experimentation, which is unsustainable and costly~\cite{DBLP:conf/ccgrid/MastenbroekAJLB21}.}
\label{fig:novel_eval_method}
\end{figure}
-\section{Experiment 1: Failure Detection}
+In this section we describe the technical setup used to evaluate \mysystem.
+However, \Cref{fig:reference_architecture} assumes the system designer is capable of connecting the digital twin directly to the datacenter.
+This raises a problem, we cannot just go and test digital twins on large systems, because we do not have large systems at hand.
+Moreover, real-world experimentation is costly and unsustainable in the long run~\cite{DBLP:conf/ccgrid/MastenbroekAJLB21}.
+To overcome this problem, we present a novel datacenter digital twin method capable of evaluating a \gls{dcdt} without the physical datacenter.
+\Cref{fig:novel_eval_method} details our approach.
+
+In this approach, we replace the real-world datacenter with \emph{another} instance of the event-driven simulator from \Cref{fig:reference_architecture}.
+In our implementation, this is a second \code{OpenDC}
+process (see \Cref{fig:implementation}).
+The ``physical twin'' simulator is capable of fully replacing the real-world facility, and allows for reproducible experimentation.
+For a detailed overview of the data flow within \Cref{fig:novel_eval_method}, see \Cref{fig:flow_diagram}.
+
+The technical setup used for all experiment adheres to the \code{OpenDC}
+documentation (see Mastenbroek \etal~\cite{DBLP:conf/ccgrid/MastenbroekAJLB21}).
+The workload trace used for all experiments comes from BitBrains~\cite{DBLP:conf/ccgrid/ShenBI15}.
+In the experiments we model a Dutch SURF datacenter for scientific computing.
+The cluster, SURF-SARA, contains 277 hosts, each with 128GB of RAM and 16 processing cores running at maximum 2.1GHz~\cite{DBLP:conf/wosp/NicolaeTKLI26}.
+The scheduling policy for all experiments is the \code{FilterScheduler} which considers the RAM and CPU capacity for choosing hosts to run tasks on.
+This scheduling policy is also used by \code{SmartScheduler}, as outlined in \Cref{ss:programming}, albeit with modifications to enable the system knobs to take autonomous action.
+
+In all experiments we use either \emph{failure traces} or \emph{failure models}.
+For a brief explanation on the differences between the two, consult \Cref{sss:failures}.
+In the experiments we use traces from the archive developed by Talluri \etal~\cite{DBLP:journals/tpds/TalluriNCKCBI26}.
+We chose a diverse range of failure models, based on the mean failure intensity in each trace (indicated in parentheses).
+As a result, we chose the traces from: \begin{enumerate*}[label=(\Roman*)]
+ \item Gmail (53.26\%),
+ \item WhatsApp (57.97\%),
+ \item YouTube (62.1\%),
+ \item Twitter (65\%),
+ \item Facebook (64\%).
+\end{enumerate*}
+In \Cref{ss:experiment2} we used a failure trace from Skype.
+This is the only trace that can be paired with a corresponding failure model (\Cref{tab:failure_models_table}).
+Additionally, in \Cref{ss:experiment1} we find a need to define a threshold based on a statistical distribution of failures.
+For this purpose, we use a normal distribution with mean 1.5 and standard deviation 1.5.
+Importantly, in our figures we do not report the standard deviation of our experiments.
+This is due to the fact that \code{OpenDC} is a fully deterministic simulator, and on each simulation run, given the same random seed will produce exactly the same results.
+We believe the deviation in the results of the experiments stemming only from the random number generator is not meaningful, therefore none of the figures contain the standard deviation bars.
+
+\section{Experiment 1: Failure Detection}\label{ss:experiment1}
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{images/red_yellow_alarms.pdf}
- \caption{The results of Experiment 1.}
+ \caption{The results of Experiment 1. \textcolor{Orange}{\ding{110} \textbf{\sffamily Red Alarms}} signify 90\% of acceptable failure threshold was reached. \textcolor{Goldenrod}{\ding{110} \textbf{\sffamily Yellow Alarms}} signify 80\% of the threshold was reached.}
\label{fig:red_yellow_alarms}
\end{figure}
+The purpose of this experiment is two fold: \begin{enumerate*}
+ \item to show our system works correctly
+ \item to show our system fulfills the functional and non-functional requirements.
+\end{enumerate*}
+To this end, we replicate an experiment from Taheri \etal~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.
+Inspired by the idea of red and yellow alarms, based on the different confidence threshold, we adapt their experiment to our system.
+The experimental setup is as defined in \Cref{ss:experimental_setup}.
+The experiment can be described as follows: \begin{enumerate*}[label=(\arabic*)]
+ \item firstly, we use \code{OpenDC} and a failure model with the normal distribution $\mathcal{N}(\mu = 1.5,\sigma=1.5)$ to model the failures we might expect from a given workload.
+ \item then, using the predictions, we establish a threshold acceptable to datacenter operators (\ie how many failures can we tolerate before we raise any alarm)
+ \item the red alarm is raised when 90\% of the threshold is reached, and the yellow alarm is raised when 80\% of the threshold is reached.
+ \item lastly, the \code{OpenDC} acting as the real datacenter runs the workload, and \mysystem closely monitors the datacenter to see if the number of failures exceeds the accepted threshold.
+\end{enumerate*}
+The results are in \Cref{fig:red_yellow_alarms}.
+\Cref{fig:red_yellow_alarms} indicates \mysystem is capable of accurately detecting failures in datacenters.
+What is more, using the different threshold values, \mysystem can differentiate between serious failures and insignificant, single host problems.
+Importantly, the more failure-intense the trace, the more alarms are raised on behalf of the digital twin.
+
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{images/alarms_vs_failures.pdf}
- \caption{Comparison between the total number of raised alarms and the ground truth failure distribution.}
+ \caption{Comparison between the total number of raised alarms and the ground truth failure distribution during a BitBrains workload in the SURF-SARA cluster. The failure traced used in this experiment models Gmail outage reports~\cite{DBLP:journals/tpds/TalluriNCKCBI26}.}
\label{fig:alarms_vs_failures}
\end{figure}
+Additionally \Cref{fig:alarms_vs_failures} backs our claims, and verifies the results obtained in \Cref{fig:red_yellow_alarms}.
+In the figure we can see a clear correlation between the total number of alarms raised, and the actual number of failures have occurred at each time during the workload.
+For this visualization, we combined both the red and yellow alarms into a single metric.
+
+However, Taheri \etal present their results differently, using the \emph{anomaly detection rate} instead.
+The rate is simply calculated as the anomalies detected correctly over the true amount of anomalies~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.
+Therefore, in \Cref{fig:failure_detecton_rate} we also plot the failure detection rate.
+What is surprising is Taheri \etal report almost negligible false positive rate and of their system.
+Moreover, they conclude through DyTwin's experimental setup, Taheri \etal achieve 100\% anomaly detection rate.
+In our experiment, the numbers differ significantly.
\begin{figure}[t]
\centering
\includegraphics[width=0.8\linewidth]{images/failure_detecton_rate.pdf}
- \caption{In this figure we show the total failure detection rate over the number of failures that actually occurred.}
+ \caption{In this figure we show the total failure detection rate (\textcolor{Thistle}{\ding{110} \textbf{\sffamily Red + Yellow Alarms / Total Failures}}).
+ Our results are much different from DyTwin's performance~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.
+ We believe this is due to the irreconcilable differences between our experimental setups.}
\label{fig:failure_detecton_rate}
\end{figure}
+\Cref{fig:failure_detecton_rate} shows the mean failure detection rate to be around 12\%.
+Compared to the DyTwin deployment, the difference is staggering.
+However, the discrepancy stems from the fact in our setup we differentiate between different types of failures.
+This capability is not present in the DyTwin digital twin~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.
+As a result, we interpret \Cref{fig:failure_detecton_rate} as showing on average, 12\% of failures in the workload are severe.
+Unusually, the WhatsApp failure detection rate is the lowest, contrary to the mean failure intensity, which places WhatsApp trace as the 2nd least failure-intensive trace.
+\section{Experiment 2: Failure Prediction}\label{ss:experiment2}
+In \Cref{ss:experiment1} we show \mysystem is capable of incorporating descriptive analytics.
+Through experiment-based evaluation, we concluded \mysystem can detect and differentiate between severe and one-off host failures.
+In this section we try to show \mysystem can additionally work well together with a predictive analytics engine, enabling actionable insights into the future behaviour of the datacenter.
-\section{Experiment 2: Failure Prediction}
-
-\begin{figure}[t]
+\begin{figure}[ht]
+ \hspace{-0.8cm}
+ \begin{minipage}[b]{0.45\textwidth}
+ \centering
+ \includegraphics[width=1.2\linewidth]{images/failure_likelihood.pdf}
+ \end{minipage}
+ \hspace{1.2cm}
+ \begin{minipage}[b]{0.45\textwidth}
+ \centering
+ \includegraphics[width=1.2\linewidth]{images/conceptual_experiment.pdf}
+ \end{minipage}
+ \caption{Left figure shows the potential failure distribution likelihood to approximate the true failure distribution.
+ Right figure shows the results of the conceptual experiment to show the \emph{potential} gains of employing a good predictive analytics engine with \mysystem.}
+ \label{fig:failure_likelihood}
+\end{figure}
+\begin{figure}[ht]
\centering
\includegraphics[width=\linewidth]{images/failure_models_table.png}
\caption{The failure models table, by Javadi \etal~\cite{DBLP:journals/jpdc/JavadiKIE13}.}
\label{tab:failure_models_table}
\end{figure}
-\begin{figure}[t]
- \centering
- \includegraphics[width=0.8\linewidth]{images/failure_likelihood.pdf}
- \caption{This figure shows the potential failure distribution likelihood to approximate the true failure distribution.}
- \label{fig:failure_likelihood}
-\end{figure}
-\begin{figure}[t]
- \centering
- \includegraphics[width=0.8\linewidth]{images/conceptual_experiment.pdf}
- \caption{A conceptual experiment to show the \emph{potential} gains of employing a good predictive analytics engine with \mysystem.}
- \label{fig:conceptual_experiment}
-\end{figure}
+\subsection{Context}\label{sss:context_experiment2}
+In order to predict when a host failure might occur, the most straightforward approach is to use long-established statistical methods.
+Our goal was to approximate the real failure distribution of a workload, using past data, and relevant statistical distributions.
+For the task at hand, we chose the Skype trace, because it is supported by 4 different failure models, based on past Skype workload data.
+These 4 statistical distribution, published in a peer-reviewed journal are in \Cref{tab:failure_models_table}~\cite{DBLP:journals/jpdc/JavadiKIE13}.
+The Skype trace model was taken from the Cloud Uptime Archive~\cite{DBLP:journals/tpds/TalluriNCKCBI26}.
+The goal was to use the failure distribution to predict when a host will fail, and then in advance re-schedule all the tasks from the hosts onto different machines before it crashes.
+
+
+Initial experiment results were unpromising.
+Using the insights from the failure models we were not able to do better than the baseline (switching hosts on and off randomly).
+To investigate why this might be the case, we run an experiment to identify which failure distribution at any given moment is most likely to resemble the actual, ground truth failure distribution.
+Using a similarity score $\mathcal{S}$, which is a weighted average of the exported metrics, we tried to determine the most similar distribution at any given time.
+The results are in \Cref{fig:failure_likelihood}.
+
+In \Cref{fig:failure_likelihood} we can notice an almost random fluctuation of the similarity score $\mathcal{S}$.
+Any given failure model, at any time interval is almost as likely to model the actual failures as the other models.
+Moreover, the similarity score $\mathcal{S}$ of each failure model is never higher than 32\%.
+This shows, the difficulty of good predictive analytics, and the correct design of a predictive analytics engine, which is not within the scope of this thesis.
+
+Undeterred, we set out for a different solution to show \mysystem is capable of incorporating a predictive analytics engine.
+Instead, we designed a \emph{conceptual experiment}.
+In this setup, we \emph{assume} the predictive analytics engine is capable of fully predicting when each failure is going to happen with 100\% accuracy.
+Equipped with this assumption, which only serves to show \mysystem meets the functional and non-functional requirements, we conducted the second experiment.
+The results are in \Cref{fig:failure_likelihood} on the right side.
+\Cref{fig:failure_likelihood} shows that using a perfect predictive analytics engine, \mysystem is capable of lowering the total number of failures significantly.
+
+\section{Experiment 3: Additional Experiment}\label{ss:additional_experiment}
+
+\section{Discussion}\label{ss:discussion_evaluation}
diff --git a/content/implementation.tex b/content/implementation.tex
index 5d243f6..0c31453 100644
--- a/content/implementation.tex
+++ b/content/implementation.tex
@@ -1,4 +1,4 @@
-\chapter{Implementation}\label{s:implementation}
+\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}.
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}.
diff --git a/content/intro.tex b/content/intro.tex
index 36703f9..85ae411 100644
--- a/content/intro.tex
+++ b/content/intro.tex
@@ -1,5 +1,6 @@
\chapter{Introduction}\label{s:intro}
-Presently, computer and network systems play a crucial part in the digital industry.
+% Comment from Alexandru, change presently -> currently
+Currently, computer and network systems play a crucial part in the digital industry.
The transport, education and government sectors largely depend on digital services, which are hosted in datacenters~\cite{DBLP:journals/corr/IosupKLVG22}.
To address the recent rise in demand for computation, due to the advancements in Artificial Intelligence, managers expand datacenters with new components and more heterogeneous architectures (\eg GPUs, NPUs)~\cite{DBLP:conf/date/MilojicicFDR21}.
However, in return datacenter complexity increases significantly.
@@ -11,13 +12,13 @@ Over 3 million jobs in the Netherlands directly depend on cloud services, which
Since many public services continue to move online (\eg online administration and taxation, education), the fraction of Dutch professionals who depend on the cloud for work will exceed 35\% by 2025~\cite{DBLP:journals/corr/IosupKLVG22}.
% What is changing?
-In the modern \gls{ai} economy datacenters need diverse and scalable server architectures, because inference-based workloads require more heterogeneous server components (GPUs, TPUs, NPUs \etc) to perform well.
-Nowadays, datacenter operators try to meet customer expectations by adding more specialized hardware~\cite{DBLP:conf/date/MilojicicFDR21}, at a cost of increased system complexity.
+In the modern \gls{ai} economy, datacenters need diverse and scalable server architectures, because inference-based workloads require more heterogeneous server components (GPUs, TPUs, NPUs \etc) to perform well.
+Nowadays, datacenter operators try to meet AI-customer expectations by adding more specialized hardware~\cite{DBLP:conf/date/MilojicicFDR21}, at the cost of increased system complexity.
In return, operating a modern datacenter warehouse with thousands of diversified servers presents a difficult challenge that requires fast and well-informed decisions from on-site engineers.
The computational requirements of \gls{ai} are expected to increase in the future~\cite{DBLP:journals/computer/AthavaleBBMMPS24}.
-Datacenter complexity will continue to grow, and it will become more difficult to manage.
-Future servers will include even more specialized hardware, which, while improving datacenter performance, will exhibit behaviour that is harder to predict.
+Datacenter complexity will continue to grow, and it will become more difficult to manage~\cite{DBLP:conf/icdcs/IosupUVAEHTBT18}.
+Future servers and software related services to them will include even more specialized hardware, which, while improving datacenter performance, will exhibit behaviour that is harder to predict.
Already the rapid expansion of datacenters has increased the presence of service failures across all cloud services~\cite{DBLP:conf/acsos/TalluriOVTI21}.
Preventing failure-caused outages in advance could help datacenter operators reduce operational costs, as over 20\% of all reported outages amount to more than 1 million US\$~\cite{DBLP:report/AnnualOutageAnalysis2025}.
%Moreover, datacenter outages can have catastrophic consequences, cite Fabian.
@@ -29,7 +30,9 @@ To address this new problem a concept of a datacenter \gls{dt} was proposed~\cit
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{images/simple_dt.pdf}
- \caption{Elements of the digital twin ecosystem~\cite{DBLP:modsim24/presentation/Iosup2024} include: the insights and decisions coming from the digital twin (\myCircled{A}), the physical infrastructure (\myCircled{B}), the data coming from the physical twin telemetry (\myCircled{C}), and the digital counterpart to the physical twin (\myCircled{D}).}
+ \caption{Elements of the digital twin ecosystem~\cite{DBLP:modsim24/presentation/Iosup2024} include: the insights and decisions coming from the digital twin (\myCircled{A}), the physical infrastructure (\myCircled{B}), the data coming from the physical twin telemetry (\myCircled{C}), and the digital counterpart to the physical twin (\myCircled{D}).
+ This thesis focuses on components (\myCircled{A}), (\myCircled{C}), and (\myCircled{D}) in this ecosystem, proposing design improvements to (\myCircled{D}, \myCircled{C}), experimental improvements to (\myCircled{A}) and a new experimental technique to substitute (\myCircled{B}).
+ }
\label{fig:simple_dt}
\end{figure}
@@ -157,19 +160,21 @@ We define the correct experiment setup(s) and perform the experiments on a speci
\end{enumerate}
\end{enumerate}
-\section{Plagiarism Declaration}\label{s:plagiarism-declaraion}
+\section{Academic Integrity Declaration}\label{s:academic_integrity_declaration}
+\subsection{Non-Plagiarism Declaration}\label{ss:plagiarism-declaraion}
I hereby declare that this thesis is my own independent work and writing.
The thesis does not contain any material copied from other sources (person, Internet, or \gls{ai}), and has not been submitted for assessment elsewhere.
I acknowledge that the usage of material from other works or paraphrase of such material without proper citations or credit will be treated as plagiarism.
I declare that this thesis is free from \gls{ai} generated content and has been written without the help of any \gls{ai} tools.
In order to adhere to the strictest restrictions on AI-usage in higher education, this work follows the Berkley School of Law Artificial Intelligence Policy, as stated in \url{https://www.law.berkeley.edu/wp-content/uploads/2026/05/AI-Final-Policy-26.pdf}.
-\section{Reference Fraud}\label{ss:plagiarism_references}
+\subsection{Preventing Reference Fraud}\label{ss:plagiarism_references}
I hereby declare that all the references in this thesis refer to genuine scientific work published in peer-reviewed journals or other sources of reliable and safe online information (\eg Wikipedia articles) and have been used in accordance to the article authors' wishes.
Additionally, under the guidance of the supervisor this work adheres to the strictest rules for referencing and to prove the originality of all references, each \BibTeX citation contains a \texttt{note} field with the following comment: \emph{This BibTeX citation comes from:} followed by the URL leading directly to the citation source.
In case of citations not formatted in \BibTeX, the same format follows but with adequate reference-style name (\eg APA, Chicago, MLA).
-\section{Societal Impact}\label{s:societal-impact}
+\section{Societal Impact Including Open Science Artifacts
+ }\label{s:societal-impact}
Any program that is difficult to understand and reason about is sure to accumulate technical debt.
However, sometimes large-scale systems can be complex and hard to comprehend inherently.
% Cite Frederick P Brooks here.
@@ -188,10 +193,10 @@ Additionally, we contribute to responsible software design by adhering to best s
(3) is addressed indirectly, as the consequences of the insights provided by a holistic, \gls{oda} powered \gls{dcdt} can help datacenter managers make decisions that are more sustainable in the future.
We contribute to (4) by helping predict unexpected failures and lowering operational costs, ensuring datacenters can continue to be usable in the future.
We believe this work has a strong societal impact due to addressing the four grand societal challenges described by Iosup \etal and we hope through this work we can advance the scientific research community towards a more sustainable future.
-
-\section{Open Science}\label{s:open-science}
Abiding the FAIR data principles, the entire source code of the prototype and related work has been made available at the \url{https://git.denounce.ai/opendc.git} repository.
The reuse and reproduction of experiments is explained in a detailed guide at the root of the repository, along with the necessary dependencies and experimental setup.
+% Comment from Alexandru is to merge the above repository into the AtLarge repository, with the proper attribution to you.
+% I will do this once the project is over.
\section{Thesis Structure}\label{s:thesis-structure}
The remainder of the thesis is structured as depicted in Figure \ref{fig:thesis_structure}.
diff --git a/content/preamble/abstract.tex b/content/preamble/abstract.tex
index 63e5e13..44fde95 100644
--- a/content/preamble/abstract.tex
+++ b/content/preamble/abstract.tex
@@ -1,27 +1,4 @@
-
-% Thesis Abstract -----------------------------------------------------
-
-
-%\begin{abstractslong} %uncommenting this line, gives a different abstract heading
-\begin{abstracts} %this creates the heading for the abstract page
-
-\noindent \textit{Context}.
-\todo{at the end}
-
-\noindent \textit{Goal}.
-\todo{at the end}
-
-\noindent \textit{Method}.
-\todo{at the end}
-
-\noindent \textit{Results}.
-\todo{at the end}
-
-\noindent \textit{Conclusions}.
-\todo{at the end}
-
-\end{abstracts}
-%\end{abstractlongs}
-
-
-% ----------------------------------------------------------------------
+\newpage
+\begin{center}
+ \bfseries\Huge Abstract
+\end{center}
diff --git a/content/preamble/acknowledgement.tex b/content/preamble/acknowledgement.tex
index 4efb21e..bbb7169 100644
--- a/content/preamble/acknowledgement.tex
+++ b/content/preamble/acknowledgement.tex
@@ -1,13 +1,17 @@
-% Thesis Acknowledgements ------------------------------------------------
+\newpage
+\begin{center}
+ \bfseries \Huge Acknowledgements
+\end{center}
+I wish to express my thanks to the many people who have helped me in preparation of this thesis.
+Dante Niewehuis, my daily supervisor, with patience and understanding mentored me during our collaboration, which led to the timely and successful completion of this thesis.
-%\begin{acknowledgementslong} %uncommenting this line, gives a different acknowledgements heading
-%\begin{acknowledgements} %this creates the heading for the acknowlegments
+Alexandru Iosup, my 1\textsuperscript{st} supervisor, provided invaluable feedback and suggestions that helped immensely during writing.
+Jesse Donkervliet guided the thesis timeline and greatly assisted in preparation of the final defence during the weekly thesis meetings.
-%\end{acknowledgements}
-%\end{acknowledgmentslong}
-
-% ------------------------------------------------------------------------
+Daniel Halasz provided many insightful comments which shaped the technical contributions.
+Daniele Bonetta, Matthijs Jansen, Tiziano De Matteis, Radu Nicolae, Jure Antunovi\'c, Sacheendra Talluri, and Krijn Doekemeijer of AtLarge Research provided indispensable knowledge on conducting good Computer Systems research over the last 2 years.
+Most importantly, I would like to thank Waldemar, Anna and Julia for their love and support while I was working on this thesis.
diff --git a/content/preamble/dedication.tex b/content/preamble/dedication.tex
index 9bc75a8..ba1667d 100644
--- a/content/preamble/dedication.tex
+++ b/content/preamble/dedication.tex
@@ -1,9 +1,9 @@
-% Thesis Dedication ---------------------------------------------------
-
-%\begin{dedication} %this creates the heading for the dedication page
-
-%To ...
-
-%\end{dedication}
-
-% ---------------------------------------------------------------------- \ No newline at end of file
+\newpage
+\begin{center}
+ {\bfseries \Huge Dedication}
+\end{center}
+\begin{center}
+ \vspace*{\fill}
+ \emph{\textbf{To my sister Julia}}
+ \vspace*{\fill}
+\end{center}
diff --git a/main.bib b/main.bib
index e035ed5..370dc1c 100644
--- a/main.bib
+++ b/main.bib
@@ -908,3 +908,65 @@
biburl = {https://dblp.org/rec/journals/tc/DemirbagaWNMAGZ22.bib},
bibsource = {dblp computer science bibliography, https://dblp.org},
}
+
+@inproceedings{DBLP:conf/ccgrid/ShenBI15,
+ author = {Siqi Shen and Vincent van Beek and Alexandru Iosup},
+ title = {Statistical Characterization of Business-Critical Workloads
+ Hosted in Cloud Datacenters},
+ booktitle = {15th {IEEE/ACM} International Symposium on Cluster, Cloud
+ and Grid Computing, CCGrid 2015, Shenzhen, China, May 4-7,
+ 2015},
+ pages = {465--474},
+ publisher = {{IEEE} Computer Society},
+ year = {2015},
+ url = {https://doi.org/10.1109/CCGrid.2015.60},
+ doi = {10.1109/CCGRID.2015.60},
+ timestamp = {Fri, 24 Mar 2023 00:02:48 +0100},
+ biburl = {https://dblp.org/rec/conf/ccgrid/ShenBI15.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org},
+ note = {This BibTeX citation comes from \url{
+ https://dblp.org/rec/conf/ccgrid/ShenBI15.html?view=bibtex}},
+}
+
+@article{DBLP:journals/tpds/TalluriNCKCBI26,
+ author = {Sacheendra Talluri and Dante Niewenhuis and Xiaoyu Chu and
+ Jakob Kyselica and Mehmet {\c{C}}etin and Alexander Balgavy and
+ Alexandru Iosup},
+ title = {Cloud Uptime Archive: Open-Access Availability Data of Web,
+ Cloud, and Gaming Services},
+ journal = {{IEEE} Trans. Parallel Distributed Syst.},
+ volume = {37},
+ number = {5},
+ pages = {1136--1152},
+ year = {2026},
+ url = {https://doi.org/10.1109/TPDS.2026.3673519},
+ doi = {10.1109/TPDS.2026.3673519},
+ timestamp = {Thu, 25 Jun 2026 10:30:40 +0200},
+ biburl = {https://dblp.org/rec/journals/tpds/TalluriNCKCBI26.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org},
+ note = {This BibTeX citation comes from \url{
+ https://dblp.org/rec/journals/tpds/TalluriNCKCBI26.html?view=bibtex
+ }},
+}
+
+@inproceedings{DBLP:conf/icdcs/IosupUVAEHTBT18,
+ author = {Alexandru Iosup and Alexandru Uta and Laurens Versluis and
+ Georgios Andreadis and Erwin Van Eyk and Tim Hegeman and
+ Sacheendra Talluri and Vincent van Beek and Lucian Toader},
+ title = {Massivizing Computer Systems: {A} Vision to Understand, Design,
+ and Engineer Computer Ecosystems Through and Beyond Modern
+ Distributed Systems},
+ booktitle = {38th {IEEE} International Conference on Distributed
+ Computing Systems, {ICDCS} 2018, Vienna, Austria, July 2-6,
+ 2018},
+ pages = {1224--1237},
+ publisher = {{IEEE} Computer Society},
+ year = {2018},
+ url = {https://doi.org/10.1109/ICDCS.2018.00122},
+ doi = {10.1109/ICDCS.2018.00122},
+ timestamp = {Fri, 24 Mar 2023 00:04:19 +0100},
+ biburl = {https://dblp.org/rec/conf/icdcs/IosupUVAEHTBT18.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org},
+ note = {This BibTeX citation comes from my 1st supervisor.},
+}
+
diff --git a/main.tex b/main.tex
index 55b080f..5ffe825 100644
--- a/main.tex
+++ b/main.tex
@@ -4,16 +4,10 @@
\begin{document}
\input{style/first-page}
-%\input{content/preamble/abstract}
-%\input{content/preamble/dedication}
-%\input{content/preamble/acknowledgement}
-\setcounter{secnumdepth}{3}
-\setcounter{tocdepth}{3}
-\tableofcontents
-\newpage
-%\listoffigures
-%\listoftables
-
+\input{content/preamble/abstract}
+\input{content/preamble/acknowledgement}
+\input{content/preamble/dedication}
+\input{style/toc}
\input{content/intro}
\input{content/background}
\input{content/design}
diff --git a/style/first-page.tex b/style/first-page.tex
index 57ee6fd..b2f2ebb 100644
--- a/style/first-page.tex
+++ b/style/first-page.tex
@@ -35,12 +35,15 @@
\vspace*{1.8cm}
\emph{A thesis submitted in fulfillment of the requirements\\ for
- the VU Bachelor of Science degree in Computer Science}
+ the VU Bachelor of Science degree in Computer Science.}
\vspace*{1cm}
\today\\[4cm]
+ % Restoring to normal numbers takes place in toc.tex.
+ \pagenumbering{Roman}
+
\end{center}
\newpage
diff --git a/style/style.tex b/style/style.tex
index a2184ad..a95f558 100644
--- a/style/style.tex
+++ b/style/style.tex
@@ -4,17 +4,37 @@
\usepackage[many]{tcolorbox}
\tcbuselibrary{skins, breakable}
\usetikzlibrary{calc}
+% Specified separately in case margins need to be changed.
+\usepackage{geometry}
-\usepackage{xspace,hyperref, lipsum, booktabs, caption, fancyhdr, footmisc, nomencl, rotating, setspace, subfigure,tocbibind, vmargin, watermark, graphicx, pifont, float, array, ipsum, circledsteps, inconsolata, listings}
+% For a nice table of contents.
+\usepackage{tocloft}
+% For the font.
+\usepackage{fouriernc}
-\hypersetup {
- hidelinks=false,
- colorlinks=true,
- citecolor=Red,
- linkcolor=Red,
-}
+% For beautiful appendices
+\usepackage[page,toc,titletoc,title]{appendix}
+
+% This removes the self-reference to toc in the toc.
+\usepackage[nottoc]{tocbibind}
+
+\usepackage{xspace, lipsum, booktabs, caption, setspace, vmargin, graphicx, pifont, float, array, ipsum, circledsteps, inconsolata, listings}
+
+% Must be separately in case hidelinks=true option is needed.
+\usepackage[hidelinks]{hyperref}
+
+% Makes the TOC title font and number in a sans serif font.
+\renewcommand\cftchapfont{\bfseries\sffamily}
+\renewcommand\cftchappagefont{\bfseries\sffamily}
+% Makes the chapter spacing in the TOC less.
+\setlength{\cftbeforechapskip}{5pt}
+
+% Specifies the spacing between the lines.
+\renewcommand\baselinestretch{1.1}
% Glossaries loads amsmath
\usepackage[acronym, toc]{glossaries}
+
+% For better references. Must be loaded the last.
\usepackage{cleveref}
\textwidth 15cm
\textheight 22cm
@@ -64,13 +84,6 @@
\lstset{style=mystyle}
-
-
-\definecolor{ChapterBackground}{HTML}{101010}
-\definecolor{ChapterForeground}{HTML}{e93820}
-\definecolor{CoverForeground}{HTML}{ee0000}
-
-%borderline west = {0.5cm}{0pt}{yellow!50!black},
\newtcolorbox{mynote}{%
enhanced,
breakable,
@@ -92,4 +105,3 @@
},
}
-\renewcommand\baselinestretch{1.1}
diff --git a/style/toc.tex b/style/toc.tex
new file mode 100644
index 0000000..956a8f4
--- /dev/null
+++ b/style/toc.tex
@@ -0,0 +1,14 @@
+\setcounter{secnumdepth}{3}
+% Set to 1, suggested by Alexandru
+\setcounter{tocdepth}{1}
+% This is so that we can fit the entire TOC on one page
+\newgeometry{height=22cm, a4paper, hmargin={2in, 0.25in}, vmargin={1in, 1.65cm}}
+% Curcial for the bottom margin to remain 1.65 cm
+\thispagestyle{empty}
+{\small\tableofcontents}
+\restoregeometry
+%\listoffigures
+%\listoftables
+
+% Restores to normal numbers.
+\pagenumbering{arabic}