summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appendix/glossary.tex1
-rw-r--r--content/background.tex2
-rw-r--r--content/design.tex57
-rw-r--r--images/five_dimensional_dt.pngbin0 -> 282103 bytes
-rw-r--r--images/thesis_structure.pngbin489827 -> 406365 bytes
-rw-r--r--notes/.~lock.Full_Document_Annot_Dante.pdf#1
-rw-r--r--notes/Full_Document_Annot_Dante.pdfbin9913479 -> 10455612 bytes
-rw-r--r--sources/five_dimensional_dt.drawio12
-rw-r--r--sources/requirements_validation.tex29
-rw-r--r--sources/thesis_structure.drawio2
-rw-r--r--style/style.tex2
11 files changed, 95 insertions, 11 deletions
diff --git a/appendix/glossary.tex b/appendix/glossary.tex
index ac4548c..2d01127 100644
--- a/appendix/glossary.tex
+++ b/appendix/glossary.tex
@@ -37,3 +37,4 @@
\newacronym{tpu}{TPU}{Tensor Processing Unit}
\newacronym{cern}{CERN}{Conseil Europ\'een pour la Recherche Nucl\'eaire}
\newacronym{it}{IT}{Information Technology}
+\newacronym{dbms}{DBMS}{Database Management System}
diff --git a/content/background.tex b/content/background.tex
index 3e0a5cf..97dc6aa 100644
--- a/content/background.tex
+++ b/content/background.tex
@@ -101,7 +101,7 @@ However, the fidelity of failure modeling inside a datacenter simulation is stil
Since a datacenter simulator is quite different from a digital twin, we cannot use the same computation methods from simulation to predict real-time failures.
\begin{figure}[t]
\centering
- \includegraphics[width=0.95\linewidth]{images/five_dimensional_dt.pdf}
+ \includegraphics[width=0.95\linewidth]{images/five_dimensional_dt.png}
\caption[A basic framework for the \gls{dt}.]{A basic framework for the \gls{dt}. Four core elements of a \gls{dt} are defined: The physical entity (\myCircled{1}) and the simulated virtual twin (\myCircled{2}). A service for out-of-band data analytics (\myCircled{3}) and a persistent storage of historical data (\myCircled{4}) are crucial to the \gls{dt} because they are necessary to gain meaningful monitoring insights. Adapted from Tao \etal ~\cite{DBLP:conf/cirp/TAO2018169}.}
%Fei Tao is a renowned figure with over 62k citations. He is a figure of authority on digital twins.%
\label{fig:five_dimensional_dt}
diff --git a/content/design.tex b/content/design.tex
index 8ae83e6..7d4a73a 100644
--- a/content/design.tex
+++ b/content/design.tex
@@ -131,7 +131,7 @@ As a result of the \emph{AtLarge Design Process}~\cite{DBLP:conf/icdcs/IosupVTET
\end{enumerate*}
\subsection{The Physical Datacenter}\label{sss:physical_datacenter}
-The physical datacenter (I) encompasses 3 core elements important to digital twinning.
+The Physical Datacenter (I) encompasses 3 core elements important to digital twinning.
Workloads (\myCircled{1a}) include the hardware requirements of each datacenter job and the submission time.
They are executed on the datacenter compute (\myCircled{1b}), which is controlled partly by the Datacenter Operators (\myCircled{1c}).
Component (\myCircled{1c}), while seemingly unimportant, is crucial to the digital twin design.
@@ -219,9 +219,62 @@ Any discrepancies are communicated to the Analytics Engine (\myCircled{4b}) for
\section{Requirement Validation}\label{ss:requirement_validation}
%How does this model satisfy the requirements?
%How did you arrive at this specific model?
+In this section we describe the rationale behind the different design decisions of \mysystem.
+To show that our model satisfies the functional and non-functional requirements, we map each component of \mysystem onto the requirements it fulfills.
+\input{sources/requirements_validation.tex}
+The Interactive Dashboard (\myCircled{2a}) supports (\textbf{FR2}), as it allows to display the failures detected to datacenter operators; it is the core of (\textbf{FR4}) because descriptive analytics are synonymous to visualizations.
+It enables (\textbf{FR5}) because the predictive insights can be displayed directly through the dashboard to the datacenter operators.
+Operators can then overwrite the autonomous decisions performed by the \gls{dt}.
+Dashboards are the current industry practice for clear data visualization (\textbf{FR7}).
+For our implementation, we ensure (\textbf{NFR1}) is met by including a state-of-the-art dashboard.
+(\textbf{NFR2}) and (\textbf{NFR3}) are met by including in the system implementation a dashboard that enables logging of metrics.
+The Message Broker (\myCircled{2b}) indirectly fulfills (\textbf{FR1}).
+A good and robust message broker alleviates potential bottlenecks that might stem from large data transfer.
+My including a dedicated message broker, we ensure the bottle neck when twinning is not \mysystem.
+As the Message Broker (\myCircled{2b}) is a vital component in the communication between the datacenter operators and the physical twin, it indirectly enables (\textbf{FR2}), (\textbf{FR3}), (\textbf{FR4}), (\textbf{FR5}).
+In the other direction, to ensure that the \gls{dcdt} can ingest any amount of data, the Message Broker (\myCircled{2b}) is needed for (\textbf{FR6}).
+The non-functional requirements are met by including a state-of-the-art message broker from either academia or the industry in the implementation.
+The inclusion of System Knobs (\myCircled{2c}) in the reference architecture fulfills (\textbf{FR2}).
+With autonomous actions, the \gls{dt} can alter the operation of the datacenter based on the detected failures.
+Failure detection must support datacenter operators in meeting \gls{sla}s.
+Autonomous actions, enabled by System Knobs (\myCircled{2c}) help achieve that.
+(\textbf{FR4}) and (\textbf{FR5}) are met by ensuring the insights that come from the \gls{dt} can be automated with the system knobs.
+Supporting both predictive and descriptive analytics is core to the system knobs.
+(\textbf{NFR4}) is met as the existing digital twin deployments often contain (indirectly) the System Knobs (\myCircled{2c}) element.
+Including it in our design adheres to best design practice.
+Importantly, (\textbf{NFR5}) is fulfilled together by creating a predictive analytics engine that is capable of intelligent insights and system knobs.
+In order for the predictive insights to be realized, systems knobs are needed.
+The Database (\myCircled{2c}) meets (\textbf{FR3}), (\textbf{FR4}), (\textbf{FR5}), (\textbf{FR6}) and (\textbf{NFR2}).
+Trivially, including a simple \gls{dbms} in the architecture fulfills (\textbf{FR3}).
+For the different types of analytics (\textbf{FR4}), (\textbf{FR5}), the Database (\myCircled{2c}) enables insights from historical patterns.
+Database are the current state-of-the-art in storing telemetry (\textbf{FR6}).
+They are designed to hold arbitrary volume of data.
+Lastly, (\textbf{NFR2}) is met by storing in the database the logs from both the \gls{dcdt} and the physical datacenter.
-\section{Discussion}\label{ss:discussion_archi}
+The API Server (\myCircled{3c}) ensures (\textbf{FR4}), (\textbf{FR5}), (\textbf{FR2}) and (\textbf{NFR3}).
+The server, which facilitates the insights that come into the System Knobs (\myCircled{2c}), by proxy enables (\textbf{FR4}) and (\textbf{FR5}).
+To detect failures, some sort of notification daemon is needed for the datacenter operators, not just the dashboard.
+The API Server (\myCircled{3c}) fulfills that role, ensuring (\textbf{FR2}).
+The API server (\myCircled{3c}), specifically a server using the \gls{http} protocol is a state-of-the-art approach to existing digital twin communication (\textbf{NFR3}).
+
+The Cache (\myCircled{3b}) ensures the same requirements as the Database (\myCircled{3a}), with a couple of exceptions.
+Namely, it also ensures (\textbf{NFR1}) and (\textbf{NFR3}).
+Caching is needed for sub 1-second visualizations, and the inclusion of a cache for in-band data analytics is the current community practice.
+
+In our design, we include an Event-driven Simulator (\myCircled{4a}).
+This ensures (\textbf{FR1}), (\textbf{FR2}), (\textbf{FR4}), (\textbf{FR5}) and all non-functional requirements except (\textbf{NFR2}).
+Using a discrete-event simulator ensures that our system can handle workloads that are representative of the simulator at use.
+Simulation, a method that is widely accepted by the scientific community, is one way \mysystem can ensure (\textbf{FR1}).
+Detecting failures, enabling both descriptive and predictive analytics depends on how good of a simulator (\myCircled{4a}) is.
+In principle, a robust, holistic simulator incorporated into the predictive engine is capable of meeting (\textbf{FR4}), (\textbf{FR2}) and (\textbf{FR5}).
+Simulation also allows to model large workloads and to interact with the simulation in real-time (\textbf{NFR1}), it is considered a state-of-the-art approach to datacenter modelling (\textbf{NFR3}) and, with good data analytics provides enough data for insights at varying levels of confidence (\textbf{NFR4}).
+
+The Analytics Engine component (\myCircled{4b}) and the Monitoring Service (\myCircled{4c}) fulfill the same set of requirements, namely (\textbf{FR1}), (\textbf{FR2}), (\textbf{FR4}) and (\textbf{FR5}).
+Additionally the Analytics Engine (\myCircled{4b}) also fulfills (\textbf{NFR4}), as it provides the capability to differentiate between different levels of confidence.
+Both components are working together in unison, closely watching and reacting to the metrics from the real datacenter.
+Hence, they fulfill (\textbf{FR2}), (\textbf{FR4}) and (\textbf{FR5}) and are crucial to the \gls{dcdt} operation.
+(\textbf{FR1}) is fulfilled by ensuring both the Analytics Engine and the Monitoring Service are not the source of any bottlenecks during the system implementation.
diff --git a/images/five_dimensional_dt.png b/images/five_dimensional_dt.png
new file mode 100644
index 0000000..15cac86
--- /dev/null
+++ b/images/five_dimensional_dt.png
Binary files differ
diff --git a/images/thesis_structure.png b/images/thesis_structure.png
index fce3ccc..39c4c6c 100644
--- a/images/thesis_structure.png
+++ b/images/thesis_structure.png
Binary files differ
diff --git a/notes/.~lock.Full_Document_Annot_Dante.pdf# b/notes/.~lock.Full_Document_Annot_Dante.pdf#
deleted file mode 100644
index 9574663..0000000
--- a/notes/.~lock.Full_Document_Annot_Dante.pdf#
+++ /dev/null
@@ -1 +0,0 @@
-,matt,frame,15.07.2026 15:52,/home/matt/.local/share/onlyoffice; \ No newline at end of file
diff --git a/notes/Full_Document_Annot_Dante.pdf b/notes/Full_Document_Annot_Dante.pdf
index c368b9a..2b7e9fc 100644
--- a/notes/Full_Document_Annot_Dante.pdf
+++ b/notes/Full_Document_Annot_Dante.pdf
Binary files differ
diff --git a/sources/five_dimensional_dt.drawio b/sources/five_dimensional_dt.drawio
index 5362631..e10c94f 100644
--- a/sources/five_dimensional_dt.drawio
+++ b/sources/five_dimensional_dt.drawio
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net">
<diagram name="Page-1" id="C7pt7gl4p0PdqAMWZAV_">
- <mxGraphModel dx="928" dy="636" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <mxGraphModel dx="442" dy="303" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
@@ -104,7 +104,7 @@
</mxGeometry>
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-4" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Virtual to Physical" vertex="1">
- <mxGeometry height="20" width="120" x="40" y="5" as="geometry" />
+ <mxGeometry height="20" width="120" x="31" y="6" as="geometry" />
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-6" edge="1" parent="lhpz-W1zQVuOfh66NaAW-10" style="endArrow=classic;html=1;rounded=0;dashed=1;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
@@ -114,15 +114,15 @@
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-7" edge="1" parent="lhpz-W1zQVuOfh66NaAW-10" style="endArrow=classic;html=1;rounded=0;dashed=1;dashPattern=8 4 1 4;" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
- <mxPoint x="326" y="12.8" as="sourcePoint" />
- <mxPoint x="357" y="12.8" as="targetPoint" />
+ <mxPoint x="326" y="14.8" as="sourcePoint" />
+ <mxPoint x="357" y="14.8" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-8" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Twin to Services" vertex="1">
- <mxGeometry height="20" width="98" x="200" y="5" as="geometry" />
+ <mxGeometry height="20" width="98" x="200" y="6" as="geometry" />
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-9" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Twin to Data" vertex="1">
- <mxGeometry height="20" width="70" x="360" y="5" as="geometry" />
+ <mxGeometry height="20" width="70" x="360" y="6" as="geometry" />
</mxCell>
<mxCell id="lhpz-W1zQVuOfh66NaAW-11" parent="lhpz-W1zQVuOfh66NaAW-12" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Connection Type" vertex="1">
<mxGeometry height="30" width="112" as="geometry" />
diff --git a/sources/requirements_validation.tex b/sources/requirements_validation.tex
new file mode 100644
index 0000000..bf0952d
--- /dev/null
+++ b/sources/requirements_validation.tex
@@ -0,0 +1,29 @@
+\begin{table}[ht]
+ \centering
+ \renewcommand{\arraystretch}{1.4}
+ \resizebox{\columnwidth}{!}{
+ \begin{tabular}{lrccccccccccc}
+ \toprule
+ & & \textbf{FR1} & \textbf{FR2} & \textbf{FR3} & \textbf{FR4}
+ & \textbf{FR5} & \textbf{FR6} & \textbf{FR7} & \textbf{NFR1} & \textbf{NFR2} & \textbf{NFR3} & \textbf{NFR4} \\
+ \midrule
+ Interactive Dashboard (\myCircled{2a}) & & & \tick & & \tick & \tick & & \tick & \tick & \tick & \tick & \\
+ Message Broker (\myCircled{2b}) & & \tick & \tick & \tick & \tick & \tick & \tick & & \tick & \tick & \tick & \\
+ System Knobs (\myCircled{2c}) & & & \tick & & \tick & \tick & & & & & \tick & \tick \\
+
+ Database (\myCircled{3a}) & & & & \tick & \tick & \tick & \tick & & & \tick & & \\
+
+ API Server (\myCircled{3c}) & & & \tick & & \tick & \tick & & & & & \tick & \\
+
+ Cache (\myCircled{3b}) & & & & \tick & \tick & \tick & & & \tick & \tick & \tick & \\
+
+ Event-driven Simulation (\myCircled{4a}) & & \tick & \tick & & \tick & \tick & & & \tick & & \tick & \tick \\
+
+ Analytics Engine (\myCircled{4b}) & & \tick & \tick & & \tick & \tick & & & & & & \tick \\
+
+ Monitoring Service (\myCircled{4c}) & & \tick & \tick & & \tick & \tick & & & & & & \\ \bottomrule\end{tabular}
+ }
+ \caption[The mapping of features to requirements.]{Validation of the features against the set of functional and non-functional requirements.}
+ \label{tab:feature_validation}
+\end{table}
+
diff --git a/sources/thesis_structure.drawio b/sources/thesis_structure.drawio
index 18814ac..103a7b3 100644
--- a/sources/thesis_structure.drawio
+++ b/sources/thesis_structure.drawio
@@ -57,7 +57,7 @@
<mxCell id="TxTclPCki953P5ZPPJ2z-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCFF;strokeColor=#000000;" value="Section 3.3&lt;br&gt;&lt;b&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;Overview of &lt;/font&gt;&lt;i style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;Sunfish Architecture&lt;/font&gt;&lt;br&gt;&lt;/i&gt;&lt;/b&gt;" vertex="1">
<mxGeometry height="50" width="120" x="320" y="320" as="geometry" />
</mxCell>
- <mxCell id="TxTclPCki953P5ZPPJ2z-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCFF;strokeColor=#000000;" value="Section 3.4&lt;br&gt;&lt;b&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;Digital Thread and Predictive Analysis&lt;/font&gt;&lt;/b&gt;" vertex="1">
+ <mxCell id="TxTclPCki953P5ZPPJ2z-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCFF;strokeColor=#000000;" value="Section 3.4&lt;br&gt;&lt;span style=&quot;font-size: 11px;&quot;&gt;&lt;b&gt;Requirement&lt;br&gt;Validation&lt;/b&gt;&lt;/span&gt;" vertex="1">
<mxGeometry height="50" width="120" x="460" y="320" as="geometry" />
</mxCell>
<mxCell id="TxTclPCki953P5ZPPJ2z-19" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Chapter 4&lt;div&gt;&lt;b&gt;Implementation&lt;/b&gt;&lt;/div&gt;" vertex="1">
diff --git a/style/style.tex b/style/style.tex
index 9bae9cf..1810a97 100644
--- a/style/style.tex
+++ b/style/style.tex
@@ -37,6 +37,8 @@
\newcommand{\etal}{\emph{et~al.}\xspace}
\newcommand{\todo}[1]{\textcolor{blue}{#1}}
\newcommand{\mysystem}{\emph{Sunfish}\xspace}
+\newcommand{\tick}{\textcolor{Green}{\ding{51}}}
+\newcommand{\cross}{\textcolor{Red}{\ding{55}}}
\newcommand\myCircled[1]{\scalebox{0.75}{\Circled[fill color=black,inner color=white]{{\sffamily#1}}}}