diff options
| -rw-r--r-- | appendix/glossary.tex | 1 | ||||
| -rw-r--r-- | content/background.tex | 2 | ||||
| -rw-r--r-- | content/design.tex | 57 | ||||
| -rw-r--r-- | images/five_dimensional_dt.png | bin | 0 -> 282103 bytes | |||
| -rw-r--r-- | images/thesis_structure.png | bin | 489827 -> 406365 bytes | |||
| -rw-r--r-- | notes/.~lock.Full_Document_Annot_Dante.pdf# | 1 | ||||
| -rw-r--r-- | notes/Full_Document_Annot_Dante.pdf | bin | 9913479 -> 10455612 bytes | |||
| -rw-r--r-- | sources/five_dimensional_dt.drawio | 12 | ||||
| -rw-r--r-- | sources/requirements_validation.tex | 29 | ||||
| -rw-r--r-- | sources/thesis_structure.drawio | 2 | ||||
| -rw-r--r-- | style/style.tex | 2 |
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 Binary files differnew file mode 100644 index 0000000..15cac86 --- /dev/null +++ b/images/five_dimensional_dt.png diff --git a/images/thesis_structure.png b/images/thesis_structure.png Binary files differindex fce3ccc..39c4c6c 100644 --- a/images/thesis_structure.png +++ b/images/thesis_structure.png 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 Binary files differindex c368b9a..2b7e9fc 100644 --- a/notes/Full_Document_Annot_Dante.pdf +++ b/notes/Full_Document_Annot_Dante.pdf 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<br><b><font style="font-size: 11px;">Overview of </font><i style=""><font style="font-size: 11px;">Sunfish Architecture</font><br></i></b>" 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<br><b><font style="font-size: 11px;">Digital Thread and Predictive Analysis</font></b>" vertex="1"> + <mxCell id="TxTclPCki953P5ZPPJ2z-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCFF;strokeColor=#000000;" value="Section 3.4<br><span style="font-size: 11px;"><b>Requirement<br>Validation</b></span>" 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<div><b>Implementation</b></div>" 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}}}} |
