summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/implementation.tex26
-rw-r--r--images/flow_diagram.pdfbin0 -> 42767 bytes
-rw-r--r--main.bib12
-rw-r--r--sources/flow_diagram.drawio252
-rw-r--r--sources/simulator_comparison.tex1
-rw-r--r--style/style.tex2
6 files changed, 291 insertions, 2 deletions
diff --git a/content/implementation.tex b/content/implementation.tex
index 424103c..86cb72d 100644
--- a/content/implementation.tex
+++ b/content/implementation.tex
@@ -32,6 +32,30 @@ The \code{Schema Registry} is a important component that allows the storage of d
With \code{Schema Registry}, we ensure that the data stored in \code{PostgreSQL} tables and in \code{Redis} streams contains the exact same schema.
Moreover, \code{Schema Registry} is compatible with versatile data interchange formats, such as \code{ProtoBuf}~\cite{Wikipedia:article/ProtoBuf}.
+\code{Redis}, is a key value store that provides efficient store and retrieval operations~\cite{Wikipedia:article/Redis}.
+In particular, \code{Redis} is capable of storing \emph{streams} -- append only logs which allow for fast and quick query of large volumes of data.
+\code{Redis} is the industry leader in key value caching.
+The only alternative to \code{Redis} is \code{memcached}~\cite{Wikipedia:article/Memcached}, which does not provide the capability to integrate with \code{Kafka}.
+
+\code{PostgreSQL} is a database management system, necessary to store large volumes of out-of-band data coming from the physical datacenter.
+The \code{PostgreSQL} server provides a simple and straightforward interface to query the data via \code{psql}.
+Importantly, to adhere to the single responsibility principle, \code{PostgreSQL} does not provide any \gls{ui}.
+Additionally, there exist many integrations between \code{PostgreSQL} and other software, including \code{Kafka}.
+The many alternatives to \code{PostgreSQL} are listed in~\cite{Wikipedia:article/Postgresql}.
+An alternative used in previous work is \code{InfluxDB}~\cite{DBLP:conf/wosp/SumanCNTMI24}.
+
+Lastly, to enable predictive analytics we use a state-of-the-art discrete-event simulator, \code{OpenDC}~\cite{GitHub:software/OpenDC}.
+\code{OpenDC} is a leading software package capable of modeling complex datacenter phenomena and workloads (\eg failures, workflows, machine learning).
+For a specific overview of advantages of \code{OpenDC} and a thorough comparison with other alternatives, see \Cref{tab:datacenter_simulator_comparison}.
+
+\begin{figure}[t]
+ \centering
+ \includegraphics[width=\linewidth]{images/flow_diagram.pdf}
+ \caption{The data flow within \gls{my_system} (work under progress).}
+ \label{fig:flow_diagram}
+\end{figure}
+
\section{Data Flow}\label{ss:data_flow}
-\section{Code Writing}\label{ss:programming}
+
+\section{Programming Effort}\label{ss:programming}
diff --git a/images/flow_diagram.pdf b/images/flow_diagram.pdf
new file mode 100644
index 0000000..7c8cff8
--- /dev/null
+++ b/images/flow_diagram.pdf
Binary files differ
diff --git a/main.bib b/main.bib
index e41802c..8fc6c6c 100644
--- a/main.bib
+++ b/main.bib
@@ -826,3 +826,15 @@
https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Protocol_Buffers&id=1357670495&wpFormIdentifier=titleform#BibTeX_entry
}",
}
+
+@misc{Wikipedia:article/Memcached,
+ author = "{Wikipedia contributors}",
+ title = "Memcached --- {Wikipedia}{,} The Free Encyclopedia",
+ year = "2026",
+ howpublished = "\url{
+ https://en.wikipedia.org/w/index.php?title=Memcached&oldid=1361835153
+ }",
+ note = "This BibTeX citation comes from \url{
+ https://en.wikipedia.org/w/index.php?title=Special:CiteThisPage&page=Memcached&id=1361835153&wpFormIdentifier=titleform#BibTeX_entry
+ }",
+}
diff --git a/sources/flow_diagram.drawio b/sources/flow_diagram.drawio
new file mode 100644
index 0000000..4ba801c
--- /dev/null
+++ b/sources/flow_diagram.drawio
@@ -0,0 +1,252 @@
+<mxfile host="app.diagrams.net">
+ <diagram name="Page-1" id="IHLSk4WjmBoyFInqokHk">
+ <mxGraphModel dx="622" dy="1514" 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" />
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-147" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;shadow=1;shadowOffsetY=2;shadowBlur=0;" value="" vertex="1">
+ <mxGeometry height="90" width="170" x="180" y="-30" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-56" connectable="0" parent="1" style="group;fontStyle=1;shadow=1;shadowOffsetY=2;shadowBlur=0;" value="" vertex="1">
+ <mxGeometry height="140" width="90" x="80" y="60" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-32" parent="STOea7n3b3Z7_x22HU5Q-56" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#BAE1FC;strokeColor=#000000;shadow=1;shadowOffsetX=2;shadowOffsetY=2;shadowBlur=0;" value="" vertex="1">
+ <mxGeometry height="140" width="90" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-43" connectable="0" parent="STOea7n3b3Z7_x22HU5Q-56" style="group" value="" vertex="1">
+ <mxGeometry height="100" width="70" x="10" y="34" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-33" parent="STOea7n3b3Z7_x22HU5Q-43" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#9CE8B0;strokeColor=#000000;" value="" vertex="1">
+ <mxGeometry height="100" width="70" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-34" edge="1" parent="STOea7n3b3Z7_x22HU5Q-43" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint y="20" as="sourcePoint" />
+ <mxPoint x="70" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-35" edge="1" parent="STOea7n3b3Z7_x22HU5Q-43" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint y="39.80000000000001" as="sourcePoint" />
+ <mxPoint x="70" y="39.80000000000001" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-36" edge="1" parent="STOea7n3b3Z7_x22HU5Q-43" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint y="60" as="sourcePoint" />
+ <mxPoint x="70" y="60" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-37" edge="1" parent="STOea7n3b3Z7_x22HU5Q-43" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint y="80" as="sourcePoint" />
+ <mxPoint x="70" y="80" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-38" parent="STOea7n3b3Z7_x22HU5Q-43" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;contract=0;fontSize=9;" value="&lt;font&gt;Timestamp&lt;/font&gt;" vertex="1">
+ <mxGeometry height="10" width="50" x="10" y="5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-39" parent="STOea7n3b3Z7_x22HU5Q-43" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=10;" value="&lt;span&gt;Host ID&lt;/span&gt;" vertex="1">
+ <mxGeometry height="10" width="50" x="10" y="24" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-40" parent="STOea7n3b3Z7_x22HU5Q-43" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=10;" value="&lt;span&gt;Downtime&lt;/span&gt;" vertex="1">
+ <mxGeometry height="10" width="50" x="10" y="45" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-41" parent="STOea7n3b3Z7_x22HU5Q-43" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=10;" value="&lt;span&gt;Power Usage&lt;/span&gt;" vertex="1">
+ <mxGeometry height="10" width="62" x="4" y="86" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-42" parent="STOea7n3b3Z7_x22HU5Q-43" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value=". . .&amp;nbsp;" vertex="1">
+ <mxGeometry height="30" width="60" x="6" y="55" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-55" parent="STOea7n3b3Z7_x22HU5Q-56" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="Producer&lt;br&gt;Record" vertex="1">
+ <mxGeometry height="30" width="60" x="15" y="1" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-58" edge="1" parent="1" source="STOea7n3b3Z7_x22HU5Q-2" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" target="STOea7n3b3Z7_x22HU5Q-32" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="120" y="60" as="sourcePoint" />
+ <mxPoint x="180" y="60" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-59" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="120" y="40" as="sourcePoint" />
+ <mxPoint x="80" y="60" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-60" edge="1" parent="1" source="STOea7n3b3Z7_x22HU5Q-30" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;entryX=-0.002;entryY=0.656;entryDx=0;entryDy=0;entryPerimeter=0;" target="STOea7n3b3Z7_x22HU5Q-145" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="280" y="40" as="sourcePoint" />
+ <mxPoint x="306.93499999999995" y="28.914999999999964" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-62" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Send()&lt;/font&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="150" y="15.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;shadow=1;shadowBlur=0;shadowOffsetY=1;shadowOffsetX=1;" value="" vertex="1">
+ <mxGeometry height="20" width="100" x="40" y="20" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-18" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="40" y="40" as="sourcePoint" />
+ <mxPoint x="40" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-19" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="60" y="40" as="sourcePoint" />
+ <mxPoint x="60" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-20" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="80" y="40" as="sourcePoint" />
+ <mxPoint x="80" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-21" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="99.92" y="40" as="sourcePoint" />
+ <mxPoint x="99.92" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-22" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="120" y="40" as="sourcePoint" />
+ <mxPoint x="120" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-24" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 7.5px;&quot;&gt;&lt;sub&gt;n&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="20" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-26" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;n-1&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="40" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-27" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;n-2&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="60" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-28" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="101" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-29" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;. . .&lt;/font&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="80" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-30" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="120" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-67" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;strokeWidth=2;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;dashPattern=1 1;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <Array as="points">
+ <mxPoint x="20" y="40" />
+ <mxPoint x="20" y="20" />
+ </Array>
+ <mxPoint x="40" y="40" as="sourcePoint" />
+ <mxPoint x="40" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-73" connectable="0" parent="1" style="group;shadow=1;shadowOffsetX=3;shadowOffsetY=2;shadowBlur=0;shadowOpacity=1;" value="" vertex="1">
+ <mxGeometry height="63" width="90" x="40" y="-63" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-69" parent="STOea7n3b3Z7_x22HU5Q-73" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9736;shadow=1;shadowBlur=0;shadowOffsetX=2;shadowOffsetY=2;" value="" vertex="1">
+ <mxGeometry height="73" width="90" y="-10" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-68" parent="STOea7n3b3Z7_x22HU5Q-73" style="rounded=0;whiteSpace=wrap;html=1;" value="Simulation&lt;br&gt;Engine" vertex="1">
+ <mxGeometry height="30" width="70" x="10" y="28" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-167" parent="STOea7n3b3Z7_x22HU5Q-73" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;(Physical Twin)&lt;/font&gt;" vertex="1">
+ <mxGeometry height="10" width="70" x="10" y="10" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-75" edge="1" parent="1" source="STOea7n3b3Z7_x22HU5Q-68" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <Array as="points">
+ <mxPoint x="30" y="-20" />
+ </Array>
+ <mxPoint x="20" y="80" as="sourcePoint" />
+ <mxPoint x="30" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-76" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=10;" value="Register()" vertex="1">
+ <mxGeometry height="20" width="60" x="30" y="1" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-145" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;shadow=1;shadowOffsetY=2;shadowBlur=0;" value="" vertex="1">
+ <mxGeometry height="60" width="140" x="195" y="-9.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-142" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=0" value="Kafka Topic" vertex="1">
+ <mxGeometry height="30" width="80" x="225" y="-8.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-91" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;shadow=1;shadowBlur=0;shadowOffsetY=1;shadowOffsetX=1;" value="" vertex="1">
+ <mxGeometry height="20" width="100" x="225" y="20.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-92" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="225" y="40.5" as="sourcePoint" />
+ <mxPoint x="225" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-93" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="245" y="40.5" as="sourcePoint" />
+ <mxPoint x="245" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-94" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="265" y="40.5" as="sourcePoint" />
+ <mxPoint x="265" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-95" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="284.92" y="40.5" as="sourcePoint" />
+ <mxPoint x="284.92" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-96" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="305" y="40.5" as="sourcePoint" />
+ <mxPoint x="305" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-97" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 7.5px;&quot;&gt;&lt;sub&gt;n&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="205" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-98" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;n-1&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="225" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-99" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;n-2&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="245" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-100" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="286" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-101" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;. . .&lt;/font&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="265" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-102" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;i&gt;&lt;font style=&quot;font-size: 9px;&quot;&gt;R&lt;/font&gt;&lt;font style=&quot;font-size: 6.25px;&quot;&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/font&gt;&lt;/i&gt;" vertex="1">
+ <mxGeometry height="10" width="20" x="305" y="25.5" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-103" edge="1" parent="1" style="endArrow=none;dashed=1;html=1;strokeWidth=2;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;dashPattern=1 1;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <Array as="points">
+ <mxPoint x="205" y="40.5" />
+ <mxPoint x="205" y="20.5" />
+ </Array>
+ <mxPoint x="225" y="40.5" as="sourcePoint" />
+ <mxPoint x="225" y="20.5" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-148" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="Kafka Broker" vertex="1">
+ <mxGeometry height="30" width="80" x="226" y="-35" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-71" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=1" value="OpenDC" vertex="1">
+ <mxGeometry height="10" width="60" x="55" y="-67" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-168" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
+ <mxGeometry height="70" width="120" x="365" y="-75" as="geometry" />
+ </mxCell>
+ <mxCell id="STOea7n3b3Z7_x22HU5Q-169" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
+ <mxGeometry height="70" width="120" x="365" y="20" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>
diff --git a/sources/simulator_comparison.tex b/sources/simulator_comparison.tex
index 954dad5..ef5793d 100644
--- a/sources/simulator_comparison.tex
+++ b/sources/simulator_comparison.tex
@@ -22,5 +22,6 @@
\end{tabular}
}
\caption{Comparison of selected datacenter simulators. \textbf{Models:} VC = VMs and containers; N = Network, S = Storage, E = Energy, CM = Cost Models, FS = FaaS, ML = Machine Learning, WF = Workflows, FD = Federation; \textbf{Phenomena:} F = Failures, PI = Performance interface; \textbf{Tools:} EXP = Experiment automation; \textbf{Support:} \ding{51} = Yes, \ding{55} = No; $\dagger$ = extension, not integrated; $\star$ = advanced, carefully calibrated feature. Author: Mastenbroek \etal~\cite{DBLP:conf/ccgrid/MastenbroekAJLB21}}
+ \label{tab:datacenter_simulator_comparison}
\end{table}
diff --git a/style/style.tex b/style/style.tex
index bfed674..032d0ed 100644
--- a/style/style.tex
+++ b/style/style.tex
@@ -1,7 +1,7 @@
\usepackage[T1]{fontenc}
\usepackage[inline]{enumitem}
\usepackage[dvipsnames]{xcolor}
-\usepackage{xspace,hyperref, lipsum, booktabs, caption, fancyhdr, footmisc, nomencl, rotating, setspace, subfigure,tocbibind, vmargin, watermark, graphicx, pifont, float, array, ipsum, circledsteps}
+\usepackage{xspace,hyperref, lipsum, booktabs, caption, fancyhdr, footmisc, nomencl, rotating, setspace, subfigure,tocbibind, vmargin, watermark, graphicx, pifont, float, array, ipsum, circledsteps, inconsolata}
\hypersetup {
hidelinks=false,