<!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>
      <journal-title-group>
        <journal-title>Lernen, Wissen, Daten, Analysen. October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>SKYSHARK: A Benchmark with Real-world Data for Line-rate Stream Processing with FPGAs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maximilian Langohr</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tim Vogler</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Klaus Meyer-Wegener</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)</institution>
          ,
          <addr-line>Martensstraße 3, 91058 Erlangen, Chair of Computer Science 6, Data Management</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>0</volume>
      <fpage>9</fpage>
      <lpage>11</lpage>
      <abstract>
        <p>To test and evaluate a heterogeneous stream-processing system consisting of an FPGA-based systemon-chip and a host, we develop a benchmark called SKYSHARK. It uses real-world data from air-trafic control that is publicly available. These data are enhanced for the purpose of the benchmark without changing their characteristics. They are further enriched with aircraft and airport data. We define 14 queries with respect to the particular requirements of our system. They should be useful for other hardware-accelerated platforms as well. A first evaluation has been done using Apache Flink. We envision a great potential because of the flexibility of the approach.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;benchmark</kwd>
        <kwd>stream-processing-system</kwd>
        <kwd>FPGA</kwd>
        <kwd>hardware acceleration</kwd>
        <kwd>real-world data</kwd>
        <kwd>air-trafic control</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>This nourished the idea to use public flight data and utilize the queries that are already in use
to analyze and visualize them. Hence, we designed a benchmark called SKYSHARK.</p>
      <sec id="sec-1-1">
        <title>1.1. Real-Time Aircraft Tracking Data</title>
        <p>
          Benchmarks face a significant challenge in obtaining suficient and realistic data for their queries.
Existing benchmarks often rely on synthetic data generated through specialized tools, which may
not accurately represent real-world conditions. Access to authentic production data is limited
due to concerns over data privacy and trade secrets. SKYSHARK ofers a promising solution by
leveraging publicly available real-world data from the aviation domain. This domain provides a
wealth of data as nearly every aircraft continuously broadcasts its position, speed, altitude, and
more. It allows for thorough data collection and evaluation. The data is not encrypted and can
be received using software-defined radios or purpose-built receivers. Commercial providers
collect this type of data from oficial sources like the Federal Aviation Administration (FAA),
Eurocontrol and their own network of ADS-B receivers. Additionally, open-source projects like
OpenSky Network (OSN) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] rely on hobbyists to provide receivers, enabling the collection of
tracking information. OSN has been developed by researchers for researchers, providing access
to both historic and real-time tracking data. These data are primarily intended for research
purposes in the aviation domain but are also publicly accessible for anyone to use.
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>1.2. Contribution</title>
        <p>
          Recognizing the opportunity presented by this data-rich environment, we created a new
benchmark called SKYSHARK to leverage the real-world data for SPSs. It aims to overcome the
limitations of synthetic data and to provide a more accurate representation of real-world
conditions. While the first implementation has been done in the context of a Master’s Thesis [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], it
has been improved substantially since then.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Many benchmarks have been proposed and implemented for stream processing. A very good
overview is given in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The purpose of such a benchmark can be diferent. Most common is
the comparison of diferent systems. But some are also used to test a given system (which has
been our original motivation) or to evaluate particular configuration settings. The early ones
like Linear Road [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and NexMark [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] are no longer used because they are too simple for today’s
SPSs. More recently, the Yahoo Streaming Benchmark (YSB) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] has been engaged by many
projects. The stream data consists of reactions on ads on the Web. There is only one stream
query composed from filter, projection, static join, and a time-based window. The windows
together with counts and a timestamp are stored in a database. The original paper reports
results on Flink, Storm, and Spark. A follow-up paper [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] shows diferent results for Flink. The
benchmark has just one query, with a precise definition only by code. The stream data are
synthetic. Some of the specifics of our system are not addressed by this query, e. g., the option
of using arithmetics. Karimov et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] propose a benchmarking framework called Rovio. It is
similar to the YSB, trying to improve upon its criticism.
      </p>
      <p>
        The benchmark RIoTBench is much larger than the YSB [
        <xref ref-type="bibr" rid="ref12 ref4">4, 12</xref>
        ]. Queries (called applications)
are defined as data-flow graphs, with tasks (operations) as nodes and edges for transporting
messages between them. Tasks are given as the standard operations on streams. Unfortunately,
the semantics are not precisely defined, one has to look at the implementation in GitHub.
Streams are given with an input rate (messages per second), a distribution, which can be
uniform, in bursts, sawtooth, normal, and bi-modal (e. g., day and night), and a message size.
The benchmark first ofers some micro-benchmarks, which are single tasks. It further defines
IoT applications, which are a combination of tasks. All IoT input streams have elements with
sensorId, timestamp, and n sensor values. The following four are provided with the benchmark:
Sense Your City (CITY), NYC Taxi cab (TAXI), Energy dataset (GRID), and Mobile Health dataset
(FIT). Real data are used here. However, the benchmark is very large. It does not provide queries,
but rather whole applications. These cannot be implemented by SPSs alone.
      </p>
      <p>
        StreamBench [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] provides a much broader set of evaluations in four workload suites:
performance, multi-recipient, fault tolerance, and durability. It uses real data as seed and generates
the workload by repetition. The 7 benchmarks (queries, or applications) are: identity, sample,
projection, grep, wordcount, distinctcount, and statistics. Extensive measurements have been
made. It has been planned to put the benchmark on GitHub, but the project there with the same
name has diferent authors and goals. Only the simple queries are suitable for our environment,
and they do not address the specific challenges of our system.
      </p>
      <p>
        The approach that is closest to our ideas is DSPBench [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. A low-level API is provided for
unified development, so the workload can run anywhere (assuming an appropriate adapter that
maps to the SPS-specific code). So-called probers inject timestamps in the tuples to track the
latency, to count the number of received and sent tuples of an operator, to measure the time
required for processing one tuple in an operator, and to calculate its throughput. Workload
characterization is done by performance measurement instrumentation and source code analysis.
15 applications are defined as graphs. The benchmark uses real-world datasets. They are
repeated if necessary, but with modifications. Some geographic calculations are also included.
The benchmarked system runs on homogeneous nodes, while we have special operators running
only on the FPGA. The semantics of the API is not given, but the code is available at GitHub.
The timestamps are added to the tuples, which we tried to avoid. It is not clear which overhead
is introduced by the measurements.
      </p>
      <p>So while very good solutions are available already, we still felt a need to create another
benchmark with the following characteristics: We insisted on using real data. Some extrapolations had
to be done due to legal issues, but they do not change the characteristics. We have a larger set
of queries, and they have been selected from existing applications w. r. t. line-rate processing on
dedicated hardware. Queries are given in standard SQL (if possible) to define precise semantics.
The benchmark is extensible: Other data can be downloaded, and new queries can be defined.
(This may not be suitable for a benchmark, but definitely for testing specific systems.) Since the
data are stored, a DMBS (Flight Schedule, Airports, Aircrafts) can also be evaluated. While all
benchmarks so far are designed for homogeneous SPSs, either on a single node or distributed,
our system is heterogeneous, consisting of one or more SoCs and a host.</p>
      <p>
        It is our hope that other projects on FPGA-based stream processing can also benefit from our
benchmark. There are a number of them; we just cite [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] as examples.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. SKYSHARK Reference Data Set</title>
      <p>As mentioned earlier, one of our goals is to use data as realistic as possible for our benchmark.
Unfortunately, organizations are generally reluctant to share precise data due to concerns over
potential data-privacy breaches or loss of trade secrets. In this regard, SKYSHARK emerges
as a viable solution by leveraging publicly available real-world data, which can be collected
by anyone. This section provides an overview of key concepts and terminology related to Air
Trafic Control (ATC). ATC is vital for ensuring safe and eficient air travel.</p>
      <sec id="sec-3-1">
        <title>3.1. Technical Background</title>
        <p>
          3.1.1. Radar
Primary Surveillance Radar (PSR) uses radio signals to detect objects by analyzing the delay
and direction of the reflected signals [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. However, it cannot identify individual aircrafts
and only displays them as blips on the radar screen. To address this limitation, Secondary
Surveillance Radar (SSR) has been developed. It transmits an interrogation signal to aircrafts,
which then respond with key information such as their unique identification code (ICAO 2),
altitude, and squawk code (see 3.1.3). The SSR ground station combines this information with PSR
data to provide a comprehensive radar display. Automatic Dependent Surveillance-Broadcast
(ADS-B), a modern form of SSR, autonomously broadcasts aircraft information without being
interrogated. It gathers data like position and velocity from internal systems such as GPS.
ADS-B communication is not encrypted or authenticated, allowing even small general aviation
aircrafts and others to receive these signals. This open communication protocol enhances safety
and situational awareness for all aircrafts.
        </p>
        <sec id="sec-3-1-1">
          <title>3.1.2. Aircraft Tracking Networks</title>
          <p>
            Currently, there are several commercial flight-tracking services available, with Flightradar24 2
being the most popular of them. It ofers real-time tracking, access to flight schedules, historical
data, and detailed aircraft information. Other commercial networks like FlightAware3,
RadarBox4, and ADS-B Exchange5 provide similar functionalities. Alongside with the commercial
networks, the OpenSky Network (OSN) [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] is a nonprofit research network. It plays a significant
role in the benchmark. OSN has a network of over 1,800 receivers and has collected millions
of MODE-S messages6 from hundreds of thousands of aircrafts. While commercial networks
often filter data, OSN provides unfiltered raw access to MODE-S/ADS-B messages received by
its receivers. Initially covering the South of Germany and Switzerland, OSN has expanded to
include the United States and Europe, but significant gaps still exist in other parts of the world.
2https://www.icao.int/
2https://www.flightradar24.com
3https://de.flightaware.com/
4https://www.radarbox.com/
5https://globe.adsbexchange.com/
6MODE-S is a transponder standard, where each aircraft is broadcasting its 24-bit ICAO address.
          </p>
        </sec>
        <sec id="sec-3-1-2">
          <title>3.1.3. Aircraft Tracking Data</title>
          <p>To facilitate easier access to ADS-B data for researchers, an abstraction called state has been
introduced. A state represents an ADS-B message from an aircraft. The following attributes are
particularly important for the benchmark:
• icao24: Unique 24-bit ICAO identifier. Identifies the aircraft.
• time_position: Unix timestamp (seconds) of the last position update.
• latitude and longitude: Geographic coordinates of the aircraft’s position.
• baro_altitude: Barometric altitude in meters. Can be null.
• velocity: Speed of the aircraft, measured in meters per second.</p>
          <p>• squawk: Special transponder code, used as ID for ATC or to indicate emergencies.</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>3.1.4. Additional Relational Meta-Data</title>
          <p>To facilitate the integration of real-time tracking data with relational (batch) data, we focus
on two additional sources of data: a database containing information about all aircrafts, and
a database containing information about all airports. It is important to note that the data we
utilize for this purpose are publicly available and sourced from open source communities.
Aircraft Database: The OSN maintains a comprehensive list of approx. 580,000 aircrafts
belonging to 1,800 airlines, as of March 2023. It is important to note that due to the coverage
limitations discussed, this list may not be complete. However, since our aircraft-tracking
information is sourced from the same database, most states should have a corresponding aircraft
entry in the database. The list is periodically exported as a CSV file, which is made available for
download on the OSN dataset website.</p>
          <p>Airport Database: Another valuable resource is OurAirports7, a community-maintained
open-data website that manages a database of over 5,200 airports as of March 2023. This extensive
collection encompasses airports of various sizes and types, ranging from major international
airports to smaller seaplane or helicopter bases. The airport database can be downloaded in CSV
format. It is worth noting that community-maintained databases may not always be up-to-date.
However, this is acceptable for our purposes as we do not need absolute accuracy.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Obtaining Real-Time Aircraft Tracking Data</title>
        <p>The reference dataset that we have created by collecting and processing data from the OSN
extends over a two-week period. OSN provides various data-retrieval options, including a
REST API, Java and Python packages, and an Impala Shell. Access to the REST API is available
both anonymously and as a registered user, with diferent credit-based mechanisms in place to
prevent abuse. Anonymous users have a daily budget of 400 credits, registered users have a
budget of 4,000 credits, and users with their own ADS-B receiver enjoy a larger budget of 8,000
credits. Within these limitations, we have been able to collect a comprehensive dataset using
the SKYSHARK downloader. It allows users to gather a specified amount of data. Depending on
the available credits, the downloader calculates the optimal interval between two API requests
to achieve evenly spaced states. If users have an account and a daily budget of 4,000 credits,
they can make 1,000 API requests per day. Distributing these 1,000 requests evenly over 24
hours would result in an average of approximately one request sent to OSN every 87 seconds.
The states are stored as CSV files. The downloader can then convert the CSV file to a desired
ifle format, e. g., JSON.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Generating Flight Schedules</title>
        <p>Obtaining airline flight plans without significant financial investment is not feasible due to
the high cost associated with commercial services. To overcome this issue, we create our own
lfight schedules by querying individual flights using the REST API provided by OSN. We first
retrieve the callsigns which consist of an airline abbreviation (e. g., DLH for Lufthansa) and a
lfight number (e. g., 101). Private or military aircrafts may not have callsigns or their meaning
is unknown. We then use the OSN REST API and the callsigns to retrieve flight information
such as origin and destination airports. Not all flights with flight numbers have flights recorded
in OSN. We determine flight takeof and landing by monitoring the on_ground field in each
state. Changes from true to false indicate takeof, and vice versa indicate landing. By storing
and rounding the timestamps of these transitions, we obtain a rough flight schedule that aligns
with the recorded flights. It is important to note that this flight schedule is incomplete and not
entirely accurate but serves the purpose of the benchmark.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Benchmark Design and Implementation</title>
      <p>In this chapter, we provide an overview of the general design of the SKYSHARK benchmark.
To accomplish this, we will first examine the benchmarking tool. Following that, we will
present the benchmark metrics and the 14 SKYSHARK queries. As examples, we will discuss
our considerations and constraints in designing two of the queries.</p>
      <sec id="sec-4-1">
        <title>4.1. Benchmarking Tool</title>
        <p>The centerpiece of our benchmark is our custom-developed benchmarking tool. This tool
allows to send the collected states to the SPS under test and to receive the resulting data.
Additionally, it gathers various metrics that serve the purpose of comparing diferent systems
and implementations with each other. In Fig. 1, a schematic representation of our benchmarking
tool is shown, and how it can be integrated with an SPS. Our tool provides a set of
welldefined interfaces for connecting with the SPS. These interfaces include TCP, UDP, as well
as adapters for Apache Kafka3 and ZeroMQ4. When designing the benchmark, we decided
not to measure the individual operators of the SPS but rather focus on the system as a whole.
This decision was motivated by our intention to create a benchmark for systems that utilize
modern hardware, where such operator-level measurements may not be feasible. Considering
3https://kafka.apache.org/
4https://zeromq.org/
the expected data streams in the area of 10Gbps, measuring the individual operators would
impose an additional burden on the system. Generating measurement data at the operator level,
which would then need to be processed by our system, would introduce additional CPU, RAM,
and potentially network overhead. This additional load would impact the performance of the
SPS. The benchmarking tool loads the data from the drive and generates a data stream. Before
JSON
Report
Result</p>
        <p>Benchmarking Tool</p>
        <p>Evaluation
Aggregate Results Compare Timestamps</p>
        <p>Stream Generator</p>
        <p>Result Writer</p>
        <p>TCP
{"icao24": "iaa9321", "time_position" : 1687420023, ....
sending to the SPS, a hash is computed using the icao24 and the time_position of the state. This
key, along with a timestamp, is stored internally. Once the tuple reaches the benchmarking tool
again, another hash is computed and stored with a timestamp. The result tuple is then saved to
disk. In a process running concurrently with sending and receiving, the latencies of each tuple
are calculated and stored for further analysis. Since some queries involve filtering tuples based
on certain conditions, we cannot calculate the latency for all tuples. The calculation of latencies
is only possible for queries that do not involve blocking operations, as this would disrupt the
relationship between input and output. For these queries, only the throughput can be measured.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. SKYSHARK Metrics</title>
        <p>As mentioned in Chapter 2, there is a variety of metrics that can be used for measurement
purposes. For SKYSHARK, we specifically focus on two metrics.</p>
        <p>End-to-End Latency: End-to-end latency plays a crucial role in the deployment of SPSs.
Depending on the application the latency can have immense impact on the usability of the
result. Therefore, we have identified this metric as an important measurement for SKYSHARK.
Throughput: Another significant metric in the field of stream processing is throughput. With
our benchmarking tool, we can measure it with high precision, as we have full control over the
incoming and outgoing tuples. Furthermore, using the aforementioned map where keys and
timestamps are stored, we can measure the number of tuples that have been discarded during
the process.</p>
        <p>Query Focus
Test query for implementations
JSON decoding/encoding performance
Arith. expressions/renaming/rearranging
Filter with string equals
Filter with Boolean expression (integer)
Complex filter with arithmetic expressions
Filter with string wildcard
Complex projection, floating-point comparison
Complex numeric calculations
Join
Aggregation, Time windows
Aggregation, tuple count windows
Join with complex calculations</p>
        <p>Complex join, updating RDBMS table</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. SKYSHARK Queries</title>
        <p>In addition to the data and the benchmarking tool, queries play a particularly important role
in SKYSHARK. We have closely aligned the design of the queries with real-world aviation
and airspace surveillance challenges. A total of 14 queries has been identified. These queries
progressively increase in complexity and in demand from the system being measured. We
have chosen to code the queries in standard SQL or, if that was impossible, in the extension of
SQL developed by Apache Calcite. This extension allows for the definition of stream queries,
where no standard is available yet. The goal was to provide a precise and formal description
to eliminate misinterpretation. The actual code of the queries can be diferent in a particular
SPS. The table in Fig. 2 presents a list of all queries, their intended focus, and an indication of
whether latencies can be measured for these queries. A detailed listing of all queries, including
their code and intention, can be found on our website5. To further illustrate our design decisions
we present two exemplary queries.</p>
        <sec id="sec-4-3-1">
          <title>4.3.1. Using Basic Arithmetic to Solve Complex Problems</title>
          <p>Query 9 of the SKYSHARK benchmark (refer to Fig. 3) exemplifies the trade-ofs we made in
the query design process. One specific requirement from the ReProVide project is that only
basic arithmetic operations can be computed on the FPGA. The purpose of this query is to
iflter out aircrafts within a certain radius around the airport. Ideally, the Euclidean distance
would be calculated, which requires the use of trigonometric functions. However, due to the
FPGA’s limitations in performing these calculations, a decision was made to approximate the
distance. The approximation method used assumes that the circumference of the Earth is the
1 −− a i r p o r t _ l a t = 5 0 . 0 3 6 5 2 1
2 −− a i r p o r t _ l o n g = 8 . 5 6 1 2 6 8
3 SELECT STREAM i c a o 2 4 , c a l l s i g n , t i m e _ p o s i t i o n , l a t i t u d e , l o n g i t u d e , b a r o _ a l t i t u d e ,
4 ( ( a i r p o r t _ l a t − ( s t a t e _ l a t ) ) ∗ ( a i r p o r t _ l a t − ( s t a t e _ l a t ) ) )
5 + ( ( a i r p o r t _ l o n g − ( s t a t e _ l o n g ) ) ∗ ( a i r p o r t _ l o n g − ( s t a t e _ l o n g ) ) ) as d i s t a n c e _ s q u a r e d
6 FROM ( SELECT i c a o 2 4 , c a l l s i g n , t i m e _ p o s i t i o n , l a t i t u d e , l o n g i t u d e , b a r o _ a l t i t u d e ,
7 ( l a t i t u d e ∗ 1 1 1 . 1 3 9 ) AS s t a t e _ l a t ,
8 ( ( 1 0 0 1 . 8 7 9 / 9 ) ∗ ( 0 . 0 1 2 9 2 8 1 ∗ l o n g i t u d e + 1 . 2 ) ∗ l o n g i t u d e ) AS s t a t e _ l o n g ,
9 ( a i r p o r t _ l a t i t u d e ∗ 1 1 1 . 1 3 9 ) AS a i r p o r t _ l a t ,
10 ( ( 1 0 0 1 . 8 7 9 / 9 ) ∗ ( 0 . 0 1 2 9 2 8 1 ∗ a i r p o r t _ l o n g + 1 . 2 ) ∗ a i r p o r t _ l o n g ) AS a i r p o r t _ l o n g
11 FROM s t a t e s ) as p o s i t i o n
12 WHERE { copy d i s t a n c e _ s q u a r e d from SELECT} &lt; 6 2 5
same everywhere, allowing the cosine calculation to be replaced with a linear function. This
approximation introduces a decrease in accuracy at the poles and near the equator. Nonetheless,
for our specific purposes, this is acceptable as long as the selected airport is not located in these
boundary areas. We believe that these types of calculations are better suited for ofloading to
FPGAs or other modern hardware, which are capable of handling more complex computations
eficiently.</p>
        </sec>
        <sec id="sec-4-3-2">
          <title>4.3.2. Joining Stream Data and Relational Data</title>
          <p>
            The second query we take a closer look at is Query 13 (see Fig. 4, “Diversion Airports”). In the
event of an emergency, the pilot needs to know which airports are closest to the aircraft at all
times. These airports can be used for an emergency landing if necessary. In this query, we not
only have the complexity of distance calculation, but also involve joining each incoming tuple
with the airport relation. Additionally, the join condition poses a particularly complex aspect.
The topic of joining data on FPGAs is gaining popularity [
            <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
            ], making such a query a great
candidate for exploration in this area.
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Evaluation</title>
      <p>To test the functionality of our benchmarking tool, we have implemented several queries from
the benchmark in Apache Flink. The measurements have been performed on a PC with an AMD
Ryzen 9 5900X 12-core processor and 32GB DDR4 RAM. Throughout the testing, all queries
were able to run at a throughput of 10Gbps. For Query 2, the average latency measured was
100ms, with occasional spikes reaching 180ms or more. Fig. 5 provides a visual representation of
the latencies caused by Apache Flink. It is important to emphasize that these measured numbers
are preliminary and require further refinement. A thorough evaluation of the feasibility of our
benchmark is ongoing work. The hardware with the FPGA should be available within a few
weeks.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Future Work</title>
      <p>
        With SKYSHARK, we have taken the first step in using real-time aircraft-tracking data as a
source for benchmarks. Focusing on SPSs, we were mainly inspired by our project ReProVide and
the FPGA used in it. Our next step is to extensively measure the prototype we developed as part
of ReProVide using our new benchmark. Additionally, we want to complete and measure our
reference implementation in Apache Flink as well, to compare our system with a homogeneous
SPS. Additional queries could be identified, e. g., using match-recognize as proposed in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work has been supported by the German Science Foundation (Deutsche
Forschungsgemeinschaft, DFG) as a part of SPP 2037 with the grant no. ME 943/9-2. We thank the reviewers
for their valuable hints!
A description of the benchmark is available at https://skyshark.org.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Becher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Herrmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wildermann</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Teich,</surname>
          </string-name>
          <article-title>ReProVide: Towards utilizing heterogeneous partially reconfigurable architectures for near-memory data processing</article-title>
          ,
          <source>in: Proc. BTW - Workshopband</source>
          , Gesellschaft für Informatik, Bonn,
          <year>2019</year>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>70</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L.</given-names>
            <surname>Beena Gopalakrishnan Nair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Becher</surname>
          </string-name>
          , K. Meyer-Wegener,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wildermann</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Teich,</surname>
          </string-name>
          <article-title>SQL query processing using an integrated FPGA-based near-data accelerator in ReProVide (demo paper)</article-title>
          ,
          <source>in: Proc. EDBT</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>639</fpage>
          -
          <lpage>642</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Grier</surname>
          </string-name>
          , Extending the Yahoo! Streaming Benchmark,
          <year>2016</year>
          . URL: https://www.ververica. com/blog/extending
          <article-title>-the-yahoo-streaming-benchmark</article-title>
          ,
          <source>accessed on June 14</source>
          ,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shukla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaturvedi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Simmhan,</surname>
          </string-name>
          <article-title>RIoTBench: A real-time IoT benchmark for distributed stream processing platforms</article-title>
          ,
          <source>CoRR abs/1701</source>
          .08530 (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schäfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Strohmeier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lenders</surname>
          </string-name>
          , I. Martinovic,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wilhelm</surname>
          </string-name>
          ,
          <article-title>Bringing up OpenSky: A large-scale ADS-B sensor network for research</article-title>
          ,
          <source>in: Proc. 13th Int. Symp. on Information Processing in Sensor Networks (IPSN)</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>94</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>T.</given-names>
            <surname>Vogler</surname>
          </string-name>
          ,
          <article-title>Development and Implementation of a Database-Benchmark Using Real-Time Flight Data (ADS-B) and Flight Schedules, Master's thesis</article-title>
          , FAU,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Bordin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Griebler</surname>
          </string-name>
          , G. Mencagli,
          <string-name>
            <given-names>C. F. R.</given-names>
            <surname>Geyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. G. L.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          ,
          <article-title>DSPBench: A suite of benchmark applications for distributed data stream processing systems</article-title>
          ,
          <source>IEEE Access 8</source>
          (
          <year>2020</year>
          )
          <fpage>222900</fpage>
          -
          <lpage>222917</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Arasu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cherniack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. F.</given-names>
            <surname>Galvez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Maier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Maskey</surname>
          </string-name>
          , E. Ryvkina,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stonebraker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tibbetts</surname>
          </string-name>
          ,
          <article-title>Linear road: A stream data management benchmark</article-title>
          ,
          <source>in: Proc. VLDB</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>480</fpage>
          -
          <lpage>491</lpage>
          . URL: http://www.vldb.org/conf/2004/RS12P1.PDF.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>[9] NEXMark, Nexmark benchmark</article-title>
          , URL: http://datalab.cs.pdx.edu/niagara/NEXMark/,
          <year>2002</year>
          . Last visited: June 15,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chintapalli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Dagit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Farivar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Graves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Holderbaugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Nusbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Patil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. J.</given-names>
            <surname>Peng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poulosky</surname>
          </string-name>
          , Benchmarking streaming computation engines at Yahoo!, Online, yahoo! developer blogs,
          <year>2015</year>
          . URL: https://developer.yahoo.com/blogs/ 135370591481/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Karimov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Rabl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Katsifodimos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Samarev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Heiskanen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Markl</surname>
          </string-name>
          ,
          <article-title>Benchmarking distributed stream data processing systems</article-title>
          ,
          <source>in: Proc. ICDE</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1507</fpage>
          -
          <lpage>1518</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shukla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaturvedi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Simmhan,</surname>
          </string-name>
          <article-title>RIoTBench: An IoT benchmark for distributed stream processing systems</article-title>
          ,
          <source>Concurrency and Computation: Practice and Experience</source>
          <volume>29</volume>
          (
          <year>2017</year>
          )
          <article-title>e4257</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lu</surname>
          </string-name>
          , G. Wu,
          <string-name>
            <given-names>B.</given-names>
            <surname>Xie</surname>
          </string-name>
          , J. Hu,
          <article-title>StreamBench: Towards benchmarking modern distributed stream computing frameworks</article-title>
          ,
          <source>in: Proc. 7th IEEE/ACM Int. Conf. on Utility and Cloud Computing (UCC</source>
          , London, United Kingdom,
          <source>Dec. 8-11)</source>
          , IEEE Computer Society,
          <year>2014</year>
          , pp.
          <fpage>69</fpage>
          -
          <lpage>78</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ibrahim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chen</surname>
          </string-name>
          , H. Liu,
          <string-name>
            <surname>When</surname>
            <given-names>FPGA</given-names>
          </string-name>
          -
          <article-title>Accelerator meets stream data processing in the Edge</article-title>
          ,
          <source>in: Proc. ICDCS</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1818</fpage>
          -
          <lpage>1829</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Najafi</surname>
          </string-name>
          , Hardware Accelerated Stream Processing,
          <source>Ph.D. thesis</source>
          , TU München,
          <source>Fakultät für Informatik</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Stevens</surname>
          </string-name>
          , Secondary Surveillance Radar, Artech House radar library,
          <source>Artech House</source>
          ,
          <year>1988</year>
          . URL: https://books.google.de/books?id=qH9TAAAAMAAJ.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>M.-T. Xue</surname>
            ,
            <given-names>Q.-J.</given-names>
          </string-name>
          <string-name>
            <surname>Xing</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>Z.-G</given-names>
          </string-name>
          . Ma,
          <article-title>FPGA-accelerated hash join operation for relational databases</article-title>
          ,
          <source>IEEE Transactions on Circuits and Systems II: Express Briefs</source>
          <volume>67</volume>
          (
          <year>2020</year>
          )
          <fpage>1919</fpage>
          -
          <lpage>1923</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>B.</given-names>
            <surname>Salami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Arcas-Abella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sonmez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Unsal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Kestelman</surname>
          </string-name>
          ,
          <article-title>Accelerating hashbased query processing operations on FPGAs by a hash table caching technique</article-title>
          ,
          <source>in: Communications in Computer and Information Science</source>
          , Springer International Publishing,
          <year>2017</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>145</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Beilschmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Drönner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Glombiewski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Heigele</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Holznigenkemper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Isenberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Körber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mattig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Morgen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Seeger</surname>
          </string-name>
          ,
          <article-title>Pretty fly for a VAT GUI: visualizing event patterns for flight data</article-title>
          ,
          <source>in: Proc. DEBS</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>224</fpage>
          -
          <lpage>227</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>