diff options
| author | mjkwiatkowski <mati.rewa@gmail.com> | 2026-07-04 11:58:43 +0200 |
|---|---|---|
| committer | mjkwiatkowski <mati.rewa@gmail.com> | 2026-07-04 11:58:43 +0200 |
| commit | be974c63e9240faa0f42e45a1607957d7d99b1a0 (patch) | |
| tree | 33ea601dc91a600d6550724ac8e36fb50a8af461 /content | |
| parent | 5f9d8031cecd2f087f278e7409534b67966e4535 (diff) | |
fix: fixed the circles around each component in description of figure 4.1
Diffstat (limited to 'content')
| -rw-r--r-- | content/implementation.tex | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/content/implementation.tex b/content/implementation.tex index 371569d..a7df18e 100644 --- a/content/implementation.tex +++ b/content/implementation.tex @@ -14,7 +14,7 @@ presents the rationale for using the specific software packages, \Cref{ss:data_f \centering \includegraphics[width=0.85\linewidth]{images/implementation.pdf} \caption{The prototype and its components based on the architecture. - The time-series data flows first to the \texttt{Grafana} dashboard, \texttt{PostgreSQL} database and \texttt{Redis} cache as advised in ~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.} + The time-series data flows first to the \texttt{Grafana} (\myCircled{2a}) dashboard, \texttt{PostgreSQL} (\myCircled{3a}) database and \texttt{Redis} (\myCircled{3b}) cache as advised in ~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24}.} \label{fig:implementation} \end{figure} @@ -29,24 +29,24 @@ The \code{Analytics Engine} (\myCircled{4b}), \code{Monitoring Service} (\myCirc \code{Grafana} (\myCircled{2a})is a state-of-the-art industry tool to visualize dashboards. We posit it is crucial to include a user-friendly \gls{ui}. A number of previous publications on digital twinning find dashboards important~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24, DBLP:conf/wosp/SumanCNTMI24, DBLP:conf/wosp/NicolaeTKLI26}. -We chose \code{Grafana} instead of other software packages because of its seamless integration with \code{PostgreSQL}. -\code{Grafana} provides good separation of concerns and compartmentalization as it does not store the displayed metrics itself. +We chose \code{Grafana} (\myCircled{2a}) instead of other software packages because of its seamless integration with \code{PostgreSQL} (\myCircled{3a}). +\code{Grafana} (\myCircled{2a}) provides good separation of concerns and compartmentalization as it does not store the displayed metrics itself. Instead, it queries the \code{PostgreSQL} (\myCircled{3a}) database in real-time~\cite{Wikipedia:article/Grafana}, unlike \eg \code{InfluxDB}. -Good alternatives to \code{Grafana} are \code{Kibana}~\cite{Wikipedia:article/Kibana}, \code{Prometheus}~\cite{Wikipedia:article/Prometheus}, and \code{Graphite}~\cite{Wikipedia:article/Graphite}. +Good alternatives to \code{Grafana} (\myCircled{2a}) are \code{Kibana}~\cite{Wikipedia:article/Kibana}, \code{Prometheus}~\cite{Wikipedia:article/Prometheus}, and \code{Graphite}~\cite{Wikipedia:article/Graphite}. \code{Kafka} (\myCircled{2b}), particularly \code{Kafka} developed by Confluent~\cite{Wikipedia:article/Confluent} is a battle-tested message broker that provides versatile capabilities to transfer huge volumes of data with little latency, in real-time. We decided to use \code{Confluent Kafka} instead of \code{Kafka} developed by the Apache Foundation, because of it's masterful connector system allowing to easily add sources and sinks (\eg \code{PostgreSQL} (\myCircled{3a}) sink, \code{Redis} (\myCircled{3b}) sink, \code{OpenDC} source (\myCircled{4a}) ). Additionally, as opposed to \code{Apache Kafka}, \code{Confluent Kafka} comes equipped with a \code{Schema Registry}. The \code{Schema Registry} is a important component that allows the storage of database and cache schemas for easy retrieval. With \code{Schema Registry}, we ensure that the data stored in \code{PostgreSQL} (\myCircled{3a}) tables and in \code{Redis} (\myCircled{3b}) 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}. +Moreover, \code{Schema Registry} is compatible with versatile data interchange formats, such as \code{ProtoBuf}~\cite{Wikipedia:article/ProtoBuf} (see \Cref{lst:protobuf-schema}). \code{Redis} (\myCircled{3b}), is a key value store that provides efficient store and retrieval operations~\cite{Wikipedia:article/Redis}. In particular, \code{Redis} (\myCircled{3b}) is capable of storing \emph{streams} -- append only logs which allow for fast and quick query of large volumes of data. \code{Redis} (\myCircled{3b}) is the industry leader in key value caching. The only alternative to \code{Redis} (\myCircled{3b}) is \code{memcached}~\cite{Wikipedia:article/Memcached}, which does not provide the capability to integrate with \code{Kafka} (\myCircled{2b}). -\code{PostgreSQL} (\myCircled{3a})is a database management system, necessary to store large volumes of out-of-band data coming from the physical datacenter. +\code{PostgreSQL} (\myCircled{3a}) is a database management system, necessary to store large volumes of out-of-band data coming from the physical datacenter. The \code{PostgreSQL} (\myCircled{3a}) server provides a simple and straightforward interface to query the data via \code{psql}. Importantly, to adhere to the single responsibility principle, \code{PostgreSQL} (\myCircled{3a}) does not provide any \gls{ui}. Additionally, there exist many integrations between \code{PostgreSQL} (\myCircled{3a}) and other software, including \code{Kafka} (\myCircled{2b}). |
