<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>KOBE: Cloud-native Open Benchmarking Engine for Federated Query Processors</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Charalampos Kostopoulos</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giannis Mouchakis</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nefeli Prokopaki-Kostopoulou</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonis Troumpoukis</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Angelos Charalambidis</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stasinos Konstantopoulos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ECE, National and Technical University of Athens</institution>
          ,
          <country country="GR">Greece</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institute and Informatics and Telecommunications, NCSR \Demokritos"</institution>
          ,
          <country country="GR">Greece</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>KOBE is a benchmarking system that leverages modern containerization and Cloud technologies. Data sources are formally described in more detail than what is conventionally provided, covering not only the data served but also the speci c software that serves it and its con gurations. KOBE provides a speci cation formalism and a command-line interface that completely hides from the user the details of provisioning and orchestrating the benchmarking process. Finally, KOBE automates collecting and comprehending logs, and extracting and visualizing evaluation metrics from these logs.</p>
      </abstract>
      <kwd-group>
        <kwd>Benchmarking</kwd>
        <kwd>Federated querying</kwd>
        <kwd>Cloud-native</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In the federated query processing community releasing a benchmark amounts to
releasing datasets, query workloads, and, at most, a benchmark-speci c
evaluation engine for executing the query load [
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2, 4, 3</xref>
        ]. Note, however, that federated
query processors do not manage the data they serve, but instead provide a
dataintegration abstraction over the actual query processors that are in direct contact
with the data. As a consequence, benchmark results can be greatly a ected by
the performance and characteristics of the underlying data services; and even
more so under realistic conditions, where internet latency and throughput
between the federator and the federated data sources is a key factor.
      </p>
      <p>Research articles need to specify what software has been used to implement
the SPARQL endpoints, how it has been con gured and distributed among
hardware nodes, and the characteristics of these nodes and of the network that
connects them to the federation system. Reproducing an experiment from such a
description is a tedious task; Based on our own experience with federated query
processing research we strive to minimize the e ort required and uncertainty
involved in replicating experimental setups from the federated querying literature.
? Copyright (c) 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4/0).</p>
      <p>
        Our rst step in that direction was to complement our own benchmark with
Docker images of the populated triple stores and of the federation systems [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Following up, we further developed the KOBE Open Benchmarking Engine
into a framework that leverages modern containerization and Cloud
computing technologies in order to reproduce benchmarking experiments. Data sources
are formally described in more detail, covering not only the data served but
also the speci c software that serves it and its con guration. KOBE provides a
speci cation formalism and a command-line interface that hides from the user
the mechanics of provisioning and orchestrating the benchmarking process on
Kubernetes-based infrastructures; and of simulating network latency. Finally,
KOBE automates the process of collecting and comprehending logs, and
extracting and visualizing evaluation metrics from them.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The KOBE open benchmarking engine</title>
      <p>KOBE comprises three subsystems (Figure 1):
1. The deployment subsystem uses Kubernetes to deploy containerized images
of the experiment components, and deploys the operator that orchestrates
benchmarking and monitors the progress of each experiment in the cluster.
2. The networking subsystem uses Istio, a Cloud-native controller that tightly
integrates with Kubernetes. The KOBE operator utilizes Istio to setup the
network connections between the data sources and the federation engine,
explicitly controlling their quality to simulate a speci ed behaviour.
3. The logging subsystem is implemented as an Elasticsearch/Fluentd/Kibana
(EFK) stack. It collects and manages the logs produced by the various
experiment components (the data sources, federators and evaluators) and produces
meaningful diagrams and graphs about the benchmarking process.</p>
      <p>The users interact with the operator via a command-line interface to submit
experiment descriptions. These descriptions are YAML les that specify the
query load, the federator that is being benchmarks, and the data sources it
federates. A collection of federators and benchmarks are included in the KOBE
distribution, but the user is able to also provide their own as Docker images.</p>
      <p>The operator uses the evaluator, provided as part of KOBE, to apply the
query load to the federator. Istio manages the network connections between
the data sources and the federation engine, allowing control over the virtual
network characteristics. Finally, the EFK stack collects logs, extracts metrics,
and provides visualizations of the these benchmark metrics. A set of Kibana
panels relevant to benchmarking federated query processing are included in the
KOBE distribution, but, naturally more can be de ned by the user.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Description of the Demonstration</title>
      <p>A benchmarking experiment is expressed as YAML les that specify data sources,
queries, and parameters of the experiment and the evaluator. The operator uses
this information to deploy the necessary containers and execute the experiment.
We will show the contents of these YAML les and demonstrate how their content
impacts experiment outcomes. We will then show how to submit an experiment
using the command-line application. We will inspect the deployed containers,
showing how, for example, for metadata-based federation engines [e.g.,
Semagrow, 1] the relevant metadata has been extracted and made available whereas
for engines where this is not required [e.g., FedX, 5] this step has been skipped.</p>
      <p>We will also demonstrate the ability to separate the logs produced by
multiple executions of the same query, e.g., to get an average or to try di erent
parameters in di erent experiments. In order to di erentiate between executions
and comprehend logs from a speci c execution of a speci c experiment, each
log contains a unique id generated by the KOBE operator. The id is passed to
the federator via a SPARQL comment. Federators that have been adapted to
KOBE read this id and include it in the logs; those that have not been modi ed
for KOBE are una ected as they ignore the comment in the SPARQL query.</p>
      <p>Naturally, detailed metrics about each phase of query processing cannot be
obtained from such engines, and results are only reported at the level of complete
query runs. As an example, consider Figure 2 reporting an experiment execution
for the life-science (ls) query set of the FedBench benchmark for the Semagrow
federation engine (adapted to KOBE), and compare it to the coarser graph in
Figure 3 that compare Semagrow and FedX (not adapted).
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>KOBE is a benchmarking system that allows federated querying researchers to
publish more complete and reproducible descriptions of their experiments, and
that automates the tedious tasks of deploying the data services needed to execute
an experiment, collecting logs, and extracting evaluation metrics.</p>
      <p>KOBE is developed as an open source project and the repository includes
instructions and example experiments: https://github.com/semagrow/kobe</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgement</title>
      <p>This project has received funding from the European Union's Horizon 2020
research and innovation programme under grant agreement No 825258. Please see
http://earthanalytics.eu for more details.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Charalambidis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troumpoukis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstantopoulos</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>SemaGrow: Optimizing federated SPARQL queries</article-title>
          .
          <source>In: Proc. 11th Intl Conference on Semantic Systems (SEMANTiCS</source>
          <year>2015</year>
          ), Vienna, Austria,
          <volume>16</volume>
          {
          <issue>17</issue>
          <year>Sep 2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Guo</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          , He in, J.:
          <article-title>LUBM: a benchmark for OWL knowledge base systems</article-title>
          .
          <source>Web Semantics</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ) (
          <year>Jul 2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Saleem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hasnain</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ngomo</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          :
          <article-title>Largerdfbench: A billion triples benchmark for SPARQL endpoint federation</article-title>
          .
          <source>J. Web Semant</source>
          .
          <volume>48</volume>
          . (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          orlitz,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Haase</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Ladwig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Schwarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Tran</surname>
          </string-name>
          , T.:
          <article-title>FedBench: A benchmark suite for federated semantic data query processing</article-title>
          .
          <source>In: Proc. ISWC</source>
          <year>2011</year>
          , Bonn, Germany,
          <year>October 2011</year>
          . LNCS vol.
          <volume>7031</volume>
          . (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Schwarte</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haase</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hose</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schenkel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>FedX: A federation layer for distributed query processing on Linked Open Data</article-title>
          .
          <source>In: Proc. ESWC</source>
          <year>2011</year>
          , Heraklion, Greece, May
          <year>2011</year>
          . LNCS vol.
          <volume>6644</volume>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Troumpoukis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Charalambidis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mouchakis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konstantopoulos</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siebes</surname>
            , R., de Boer,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soiland-Reyes</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Digles</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Developing a benchmark suite for Semantic Web data from existing work ows</article-title>
          .
          <source>In: Proc Benchmarking Linked Data Workshop (BLINK)</source>
          ,
          <source>ISWC</source>
          <year>2016</year>
          , Kobe,
          <string-name>
            <surname>Japan.</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>