From 40c4fe8f8da11603da536a291e44261749860a09 Mon Sep 17 00:00:00 2001 From: mjkwiatkowski Date: Fri, 3 Jul 2026 16:05:07 +0200 Subject: feat: added the first draft of the data flow figure --- content/implementation.tex | 26 +++- images/flow_diagram.pdf | Bin 0 -> 42767 bytes main.bib | 12 ++ sources/flow_diagram.drawio | 252 +++++++++++++++++++++++++++++++++++++++ sources/simulator_comparison.tex | 1 + style/style.tex | 2 +- 6 files changed, 291 insertions(+), 2 deletions(-) create mode 100644 images/flow_diagram.pdf create mode 100644 sources/flow_diagram.drawio 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 Binary files /dev/null and b/images/flow_diagram.pdf 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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, -- cgit v1.2.3