<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lu¨bbenau</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Deutschland</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ingo Schmitt</string-name>
          <email>schmitt@tu-cottbus.de</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sascha Saretz</string-name>
          <email>sascha.saretz@tu-cottbus.de</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marcel Zierenberg (Hrsg.)</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <fpage>53</fpage>
      <lpage>94</lpage>
      <abstract>
        <p>24. GI-Workshop ”Grundlagen von Datenbanken“</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Liebe Teilnehmerinnen und Teilnehmer,</title>
      <p>der 24. Workshop ”Grundlagen von Datenbanken“ (GvD) 2012 fand in Lu¨bbenau,
Spreewald, statt. Dieser vierta¨gige Workshop wird allja¨hrlich vom GI-Arbeitskreis Grundlagen von
Informationssystemen im Fachbereich Datenbanken und Informationssysteme (DBIS)
veranstaltet und hat die theoretischen, konzeptionellen und methodischen Grundlagen von
Datenbanken und Informationssystemen zum Thema. Organisiert wurde der Workshop 2012
von der Forschungsgruppe Datenbank- und Informationssysteme am Institut fu¨r Informatik,
Informations- und Medientechnik an der Brandenburgischen Technischen Universita¨t Cottbus.</p>
      <p>Der Workshop soll die Kommunikation zwischen Wissenschaftlern/-innen im
deutschsprachigen Raum fo¨rdern, die sich grundlagenorientiert mit Datenbanken und
Informationssystemen bescha¨ftigen. Er ist insbesondere als Forum fu¨r Nachwuchswissenschafter/-innen
gedacht, die ihre aktuellen Arbeiten in einem gro¨ßeren Forum vorstellen wollen. Das
VattenfallTagungshotel Lu¨bbenau bot fu¨r eine erfolgreiche Diskussion optimale Rahmenbedingungen in
der landschaftlich sehr reizvollen Umgebung des Spreewaldes.</p>
      <p>Insgesamt wurden fu¨r den Workshop 15 Arbeiten eingereicht und jeweils von drei
Gutachtern bewertet. Die Einfu¨hrung des Begutachtungsprozesses in den letzten Jahren sorgt schon
im Vorfeld des Workshops fu¨r eine hohe Qualita¨t der Arbeiten. Die Einreichungen spannten
den Bogen von klassischen Themen wie Indexverwaltung u¨ber weitere Themen wie mobile
Systeme, ra¨umliche Datenbanken, Data Warehousing und XML-Verwaltung bis hin zu aktuellen
Themen wie Self-Tuning, SaaS, Cloud Computing sowie probabilistische Datenbanken. Diese
große Bandbreite der Gebiete reflektiert die Bandbreite von Problemen in der
Datenbankgemeinde, wie sie auf großen Datenbankkonferenzen diskutiert werden. Dabei werden die
Grenzen zwischen klassischen Datenbankthemen und benachbarten Bereichen immer durchla¨ssiger.
Gerade diese thematische Bandbreite und die damit einher gehende Spezialisierung auf
einzelne Themen macht es fu¨r Doktoranden schwierig, die eigene Arbeit richtig einzuordnen und
interessante Querverweise zu benachbarten Bereichen zu sehen. Die zwanglose Diskussion in
einer offenen Atmospha¨re des Workshop soll helfen, diese Lu¨cke zu schließen.</p>
      <p>Fu¨r die Keynote-Vortra¨ge wurden Gu¨nther Specht, der Ausrichter des GvD-Workshops
vom letzten Jahr und Bernhard Thalheim eingeladen. Ihnen sei an dieser Stelle fu¨r ihre
Bereitschaft und ihr Kommen gedankt.</p>
      <p>Des Weiteren danken wir dem Programmkomitee und allen Gutachtern fu¨r ihre Arbeit.
Das Organisations-Komitee und dabei besonders Sandy Schneider, Marcel Zierenberg und
Sascha Saretz haben den Großteil der Arbeit geleistet. Ohne ihren Einsatz und Engagement
wa¨re der 24. Workshop nicht mo¨glich gewesen. Herzlichen Dank. Besonderen Dank auch an
oEniksseySstcehmalelneh“n,wuenlcdheHdaigeenOrHgao¨npifsnaetriosnowseiehrdkeomnsGtrIu-kAtribvebitesgklreeitiset”hGarbuennd.lZaguemn
SvcohnluIsnsfomrmo¨cahttieich allen Mitgliedern meines Lehrstuhl sowie den Autoren und Vortragenden fu¨r ihren Anteil
am Gelingen am Workshop herzlich danken.</p>
    </sec>
    <sec id="sec-2">
      <title>Mit den besten Gru¨ßen,</title>
    </sec>
    <sec id="sec-3">
      <title>Ingo Schmitt Cottbus am 01.06.2012 iii iv</title>
      <sec id="sec-3-1">
        <title>Komitee</title>
        <p>Programm-Komitee
• Wolf-Tilo Balke, TU Braunschweig
• Stefan Brass, Universita¨t Halle
• Stefan Conrad, Universita¨t Du¨sseldorf
• Erik Buchmann, Karlsruher Institut fu¨r Technologie
• Torsten Grust, Universita¨t Tu¨bingen
• Andreas Henrich, Universita¨t Bamberg
• Hagen Ho¨pfner, Bauhaus-Universita¨t Weimar
• Harald Kosch, Universita¨t Passau
• Klaus Meyer-Wegener, Universita¨t Erlangen
• Daniela Nicklas, Universita¨t Oldenburg
• Gunter Saake, Universita¨t Magdeburg
• Eike Schallehn, Universita¨t Magdeburg
• Ingo Schmitt, BTU Cottbus
• Holger Schwarz, Universita¨t Stuttgart
• Gu¨nther Specht, Universita¨t Innsbruck
Organisations-Komitee
• Ingo Schmitt, BTU Cottbus
• Sascha Saretz, BTU Cottbus
• Marcel Zierenberg, BTU Cottbus
• Sandy Schneider, BTU Cottbus
Weitere Gutachter
• Alexander Schulze, BTU Cottbus
• Sascha Saretz, BTU Cottbus
• Marcel Zierenberg, BTU Cottbus
• Daniel Blank, Universita¨t Bamberg
• Martin Scha¨ler, Universita¨t Magdeburg
• Maik Mory, Universita¨t Magdeburg
• Norbert Siegmund, Universita¨t Magdeburg</p>
      </sec>
      <sec id="sec-3-2">
        <title>Inhaltsverzeichnis</title>
        <sec id="sec-3-2-1">
          <title>Günther Specht</title>
          <p>Datenbanken und Informationssysteme</p>
          <p>Institut für Informatik
Universität Innsbruck, Österreich
guenther.specht@uibk.ac.at</p>
          <p>KURZFASSUNG
Woher? und Wohin? sind die bewegenden Fragen des Lebens, der
Forschung und der Wissenschaft. Auch der Datenbanktechnologie. Dieser
Vortrag gibt sich nicht mit der Antwort 42 zufrieden, sondern spannt
einen Bogen bis hin zur interdisziplina¨ren Vernetzung der Datenbanken
und Informationssysteme mit der Genetik. Dort gelang es heuer in der
Haplogruppeneinteilung der Frage ”Out of Africa?“ mittels massivem
IT- und DB-Einsatz eine neue Antwort zu geben. . .</p>
          <p>Privacy-Enhanced Information Systems</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Bernhard Thalheim</title>
          <p>Lehrstuhl für Technologie der Informationssysteme</p>
          <p>Institut für Informatik</p>
          <p>Christian-Albrechts-Universität zu Kiel
thalheim@is.informatik.uni-kiel.de</p>
          <p>KURZFASSUNG
Nach einem kurzen U¨ berblick u¨ber den State-of-the-Art der
Nutzung des Internets werden Prinzipien, Trends und Technologie fu¨r die
Wahrung der Privatspha¨re dargestellt. Daraus lassen sich vielfa¨ltige
Modellierungs-, Infrastruktur-, Technologie-, Sozial- und
Rechtsprojekte zur Unterstu¨tzung von Privatspha¨re im Internet ableiten. Ziel ist die
Entwicklung einer erweiterten Infrastruktur, in der Privatheit auch im
Internet mo¨glich ist. Im Detail stellen wir Ansa¨tze vor, mit denen die
Privatheit an Daten gesichert werden kann. Dazu ist ein
Sicherheitsmodell, ein Inhaltemodell und ein Sicherungsmodell notwendig. Darauf
kann ein Koordinationsmodell aufgesetzt werden. Techniken zur
Stu¨tzung von Privatheit ko¨nnen darauf aufgesetzt werden. Dies wird anhand
von zwei Datenbank-Ansa¨tzen gezeigt.</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>Hagen Höpfner and Maximilian Schirmer</title>
          <p>Bauhaus-Universität Weimar</p>
          <p>Media Department / Mobile Media Group</p>
          <p>Bauhausstraße 11, 99423 Weimar, Germany
hoepfner@acm.org, maximilian.schirmer@uni-weimar.de
Location, Location Modeling, Poly-Hierarchies, Enclave Problem,
Multiple Belonging
Location models are formal descriptions of locations (i. e., named
sets of geographical positions) as well as of semantic relationships
among locations. There exist various location models that vary in
the considered location information, their level of detail, the kind
of modelled relations and the used formal representation. In fact,
more complex location models cover more aspects required for
implementing location-aware or location-dependent systems, but also
require more complex algorithms. As each application domain
requires only a limited set of features, limiting a model to those
features helps to improve system performance. In this paper, we
discuss a novel location model called location poly-hierarchies that
models the belonging of one location to one ore more other
locations. Furthermore, we present an approach for creating location
poly-hierarchies from a given set of locations.</p>
          <p>INTRODUCTION AND MOTIVATION</p>
          <p>
            In February 2004, the authors of [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ] stated: “The widespread
deployment of sensing technologies will make location-aware
applications part of every day life.” Nowadays, location-awareness has
become a key feature in a broad range of mobile information
systems. Navigation systems, social network apps, tourist information
systems, event information systems, shop finders and many more
heavily rely on position data of their users. Consequently, almost
all modern smartphones supply positioning techniques. However,
a position determination, e.g, by the use of the Global Positioning
System (GPS), enables a smartphone to calculate coordinates and
accuracy, only. As, from the perspective of the user, a
semantic location is more understandable than coordinate information,
location-aware or location-based systems map position information
to semantically meaningful locations. For example, the GPS
coordinates 50.972 797 and 11.329 18 are precise but likely not
meaningful for humans. They belong to the building which is placed in
24th GI-Workshop on Foundations of Databases (Grundlagen von
Datenbanken), 29.05.2012 - 01.06.2012, Lübbenau, Germany.
          </p>
          <p>Copyright is held by the author/owner(s).
the Bauhausstraße 11 in Weimar, Germany and the assumption
being that such information is usually more meaningful to the user.</p>
          <p>Hence, we should use a service that maps positions to locations.</p>
          <p>
            However, location-based applications differ in their required
precision [
            <xref ref-type="bibr" rid="ref10 ref34 ref54">10</xref>
            ]. While the name of the city in which a user and/or a
device is currently located might be appropriate for handling
locationaware data processing in an event information system, a navigation
system demands for exact coordinates, or street names at least.
          </p>
          <p>The aforementioned example also illustrates another issue that is
common for locations. In many cases, semantic locations form
hierarchical structures. For example, in a hierarchical location model,
earth is divided into continents, continents into countries,
countries into states, states into cities, cities into streets and streets into
street numbers, and so on. However, modelling locations as
monohierarchies oversimplifies the reality and does not support multiple
belongings. While, e. g., Weimar is part of Germany, Germany of
Europe, etc., Istanbul is part of Turkey, but also of Europe and Asia.</p>
          <p>
            Please note, we focus on geographic belongs-to-relationships
(subset and overlap) rather than on geopolitical ones. Location
hierarchies benefit from the fact that determining low-level location
information determines upper levels, too. Location poly-hierarchies
cure the mentioned model incompleteness while keeping the
benefit of a “fast” lookup of the correct path within the poly-hierarchy
(cf., [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ]). The research question addressed in this paper is:
          </p>
          <p>How can one algorithmically create location poly-hierarchies
from a given set of locations?</p>
          <p>The remainder of this paper is structured as follows: Section 2
surveys related work. Section 3 introduces the concept of
location poly-hierarchies. Section 4 presents our approach for creating
them. Section 5 discusses implementation aspects. Section 6
summarises the paper and gives an outlook on future research.
2.</p>
          <p>RELATED WORK</p>
          <p>There has been a lot of active research on suitable models and
representations for location data in the field of location models.</p>
          <p>
            Location models are a core component of location-based
applications. They represent not only location information, but also spatial
(or even spatio-temporal [
            <xref ref-type="bibr" rid="ref31 ref51 ref7">7</xref>
            ]) relationships in the data, help to
express relative locations, proximity, and allow users to determine
containment of locations or connectedness of relationships.
          </p>
          <p>
            The authors of [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ] present in great detail the broad variety of
location models that has been developed in recent years of active
research. A key factor for distinguishing and characterising location
models is their way of representing spatial relationships.
According to [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ], they can be categorised into set-based, hierarchical, and
graph-based models. Hybrid models that combine several aspects
exist as well. Figure 1 presents an overview of the three main
loreturn only single points. However, we can interpret Tanja’s current
GPS coordinate as a set of positions of cardinality 1. As discussed
in Section 1 it is a common understanding that locations have a
hierarchic nature. The train station is located within a city, the city is
located in a state, the state within a country, and so on. Using this
subset-based location interpretation, LTanja ⊂ Lts ⊂ LWeimar ⊂
LThuringia ⊂ LGermany ⊂ LEurope ⊂ LEarth represents the
location of Tanja as path in a location mono-hierarchy.
          </p>
          <p>However, there exist various real-world issues that require a
polyhierarchical representation of locations. For example, Istanbul as
the capital of Turkey, belongs to the continents Europe and Asia.</p>
          <p>Hence, LIstanbul 6⊂ LEurope and LIstanbul 6⊂ LAsia hold. The
same issue holds for Russia, which is located in Europe and in
Asia, too. Another problem results from enclaves. Kaliningrad,
e.g., is part of Russia, but this information is insufficient to decide
whether Kaliningrad is part of Europe or part of Asia. The solution
for these problems is the use of set overlaps in combination with
containment relationships that form a location poly-hierarchy.
cation model concepts. In the illustrated examples, the set-based
approach is the least expressive one, as it only models the fact
that there are two distinct locations within a set of locations, and
a set of coordinates is assigned to each location. The hierarchical
model adds containment information, and the graph-based model
adds connectedness and distance in the form of edge weights.</p>
          <p>
            Hierarchical location models as a special case of set-based
models represent containment relationships between different levels of
the model and are widely used as basis for location-based
applications [
            <xref ref-type="bibr" rid="ref2 ref26 ref28 ref30 ref4 ref46 ref48 ref50 ref6">6, 2, 4</xref>
            ]. Hierarchical models cannot represent distance
information or directly encode proximity, but they have great advantages
in traversal and for containment queries. They are also very close to
the common human understanding of locations. As already stated
in Section 1, the widely acknowledged segmentation of locations
into administrative regions (country, state, city, street, and so on) is
also a hierarchical model that heavily relies on containment
information. On a city level, a lot of implicit information can be derived
through the top-level relationship to a state or country (e.g.,
administrative language, local cuisine, prevalent religions).
          </p>
          <p>LOCATION POLY-HIERARCHIES</p>
          <p>
            The authors of [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ] define the term “location” as follows:
“Location of an object or a person is its geographical position on the
earth with respect to a reference point.” From our point of view,
this definition is too restrictive, because geographic positions are
points within a reference system. In contrast to a point, a location
has a spatial extent. Another definition is given in [
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ]: “Geographic
location is the text description of an area in a special confine on the
earth’s surface.”. From a more theoretical point of view, an area is
a set of geographical positions. So, we use a set-oriented definition:
A location is a named set of geographical positions on earth with
respect to a reference point.
          </p>
          <p>For example, in a two-dimensional coordinate system1, the
location of a building, lets say a train station (ts), is given as set Lts =
{(x1, y1), . . . , (xn, yn)}, where each position (point) (xi, yi), 1 ≤
i ≤ n belongs to the train station building’s area. We discuss the
calculation of the point set in Section 5.1. Consequently, we can
characterise the location of an object or a person as a relationship
between sets. A person, lets say Tanja, is located at the train station
if LTanja ⊂ Lts holds. Recent positioning technologies like GPS
1For simplification purposes, we use two-dimensional coordinates
in this paper. However, the formalism can easily be adapted to three
dimensions.</p>
          <p>Figure 2 illustrates the simplified poly-hierarchies for Istanbul
and Kaliningrad. From the definition of poly-hierarchies, we know
that they can be represented by a directed acyclic graph LP H =
(V, E). Each node v ∈ V is a location and each directed edge e =
(v1, v2) with v1, v2 ∈ V represents that the child node v2 belongs
(semantically) to the parent node v1. Each location poly-hierarchy
has an unique root node vr ∈ V with ¬∃vx ∈ V |(vx, vr), because
the entire coordinate system is closed in case of locations (all
considerable positions are elements of the set of all positions on earth).</p>
          <p>Finally, for each leaf node vl ∈ V that must not have any child
node ¬∃vx ∈ V |(vl, vx) holds.</p>
          <p>From an implementation point of view, each node in the
polyhierarchy graph has the structure (n, P, C) where n is the name of
the location Ln, P is a set of edges to the parent nodes and C is
a set of edges to child nodes. The root node r = (earth, P, C) is
the only node in LP H for which P = ∅ ∧ C 6= ∅ must hold. For
leaf nodes P 6= ∅ ∧ C = ∅, and for inner nodes P 6= ∅ ∧ C 6= ∅
hold. For the concept described in the remainder of this paper, it
is required to know the level of each node within this graph. The
level level(m) of a node m is defined as the number of nodes on
the longest direct path from r to m, plus one. As illustrated in
Figure 2(b), level(Russia) = 2 and level(Kaliningrad) = 3.</p>
          <p>In a location mono-hierarchy each edge between a parent node
and a child node represents the fact that all points of the location
that corresponds to the child node are also elements of the location
that corresponds to the parent node. However, as discussed before,
it is not sufficient to use subset relationships only. The semantics
of edges in the poly-hierarchical graph representation is as follows.</p>
          <p>Given a (child) node c = (nc, Pc, Cc) the following relations hold:</p>
          <p>Lnp 6= ∅.
• For each parent node p ∈ V referenced in Pc having level(p)
with ¬∃p0 ∈ Pc|p0 6= p ∧ level(p) = level(p0) the edge
(p, c) ∈ E represents the subset relationship Lnc ⊂ Lnp .
• For each (parent) node p ∈ V referenced in Pc having level(p)
with ∃p0 ∈ Pc|p0 6= p ∧ level(p) = level(p0) the edge
(p, c) ∈ E represents the overlapping relationship Lnc ∩</p>
          <p>In other words this means that per hierarchy level each edge
between a single parent node and the child node means an subset
relationship. If a child node has more than only one parent node in the
same level, then those links represent an overlap relationship.
Furthermore, we know that the in the latter case, due to the directed
nature of the edges, the child node must be a subset of the union
of the respective parent nodes (i. e., the conjunction of the overlap
relationships per level holds).</p>
          <p>Europe  
level=1  </p>
          <p>Asia  
level=1  </p>
          <p>Europe  
level=1  </p>
          <p>Asia  
level=1  </p>
          <p>Figure 3 illustrates the link semantics for the Istanbul and the
Kaliningrad examples. As one can see in Subfigure 3(a),LIstanbul ⊂
LTurkey as Turkey is the only parent node of Istanbul at level two.</p>
          <p>Since Istanbul has two parent nodes on level one (i. e., Europe and
Asia), these links represent the overlaps LIstanbul ∩ LEurope 6= ∅ and
LIstanbul ∩ LAsia 6= ∅. The facts that (in addition) LTurkey ∩ LEurope 6=
∅ ∧ LTurkey ∩ LAsia 6= ∅ holds, also implies LIstanbul ⊂ LEurope ∩ LAsia.</p>
          <p>We could use this “transitive” conclusion in a similar way for the
Kaliningrad example, too. However, as show in Subfigure 3(b) it
would reduce the expressivity of this LP H. Kaliningrad is only
part of Europe but not of Asia. Hence, the Europe node is the only
parent node of the Kaliningrad node at level one.
4. LPH CREATION</p>
          <p>As discussed in Section 3 one could create an LP H using
overlap relationships only. We already pointed out that, in order to be
as expressive as possible, an LP H must use as many subset
relationships as possible. Algorithm 1 creates the LP H from a given
set L = {L1, . . . , Lk} of locations. For illustration purposes, we
assume that names of locations are unique. However, one could
also use location IDs instead of the names to guarantee uniqueness.</p>
          <p>Our algorithm uses four main steps. In the first step (lines 7-24),
it creates two subgraphs, one (V ⊂, E⊂) containing all subset
reAlgorithm 1 Creating a location poly-hierarchy from a location set
Input:</p>
          <p>L = {L1, . . . , Lk} // location set
Output:</p>
          <p>LP H = (V, E)</p>
          <p>// location poly-hierarchy
lationships and one (V ∩, E∩) for all (additional) overlap
relationships. Figure 4 illustrates these subgraphs for the Istanbul and the
Kaliningrad examples. Obviously, step 1 might generate redundant
edges (cf., Figure 4(c)) earth→Russia→Kaliningrad and
earth→Kaliningrad) or (later on) unnecessary edges (cf.,
Figure 4(a) earth→Turkey). Furthermore, it generates loops in the
overlap subgraph as overlap relations have a symmetric nature (cf.,
Figure 4(b) and Figure 4(d)). We illustrated those needless edges
using dotted arrows.</p>
          <p>Step 2 (lines 26-34) of the algorithm cleans up the overlap
subgraph, i. e., it breaks the loops. Therefore, each node of this
subgraph is analysed (cf. Figure 5). If the location represented by a
node is a subset of the union of all its direct child nodes, then we
remove the outgoing edges.</p>
          <p>checking  Europe  
Europe  Asia </p>
          <p>Russia </p>
          <p>checking  Asia  
Europe  Asia </p>
          <p>Russia </p>
          <p>checking  Russia  
Europe  Asia </p>
          <p>Russia </p>
          <p>Figure 6 illustrates step 2 for the Istanbul example. After
checking the nodes for Europe and Asia, the node for Turkey is checked.</p>
          <p>So far, it has the child nodes Europe and Asia. As all points of
Turkey belong to Europe or Asia, both must not be represented
by child nodes of the Turkey node. So, these edges are removed.
The same procedure removes the edges Istanbul→Europe and
Istanbul→Asia.</p>
          <p>a4er  
checking  (1)  Europe,  (2)  Asia  </p>
          <p>Europe </p>
          <p>Asia 
Turkey 
Istanbul </p>
          <p>Step 3 (lines 35-47) cleans up the subset subgraph using the
transitivity property of subset relationships. In contrast to many graph
optimisation approaches, we do not aim for reducing the number of
edges in general, but for finding the minimal number of edges
necessary for representing correct semantics (cf. Section 3). For the
first optimisation (lines 36-39), we first calculate for each node the
set of parent nodes having parent nodes themselves. Afterwards,
we remove all direct edges from grandparents nodes as they can
be reached through the parents. In our examples, this removes
the edges earth→Istanbul and earth→Kaliningrad. A
second optimisation (lines 40-46) checks whether a node is
contained in the union of its sibling locations. If this is the case,
we can remove the edge from the parent node (in our examples
earth→Turkey and earth→Russia), even if this fragments
the subgraph (cf. Figure 7).</p>
          <p>Joining the subset subgraph(s) with the overlap subgraph, as it is
done in the final step 4 (line 48), results in a connectedLP H. The
fragmentation, that might have happened in step 2, is cured as the
removed edges resulted from an overlap relationship between the
involved nodes. For our examples, Algorithm 1 therefore creates
the location poly-hierarchies shown in Figure 3.</p>
          <p>Limiting factors
Algorithm 1 requires a complete and closed set of locations.
Without the location Asia, the Kaliningrad example graph would loose
the LP H properties discussed in Section 3 as removing the Asia
node also removes the edge Asia→Russia. Without this edge,
the relationship Europe→Russia would be semantically wrongly
interpreted as subset relationship. In fact, Algorithm 1 could be
adapted in order to recognise this case through topologic sorting
as the condition in line 33 would evaluate to false. Consequently,
E∩ would still contain loops after step 2. Furthermore, the
algorithm does not support differently named locations with equal sets
of position points (i. e., La ⊆ Lb ∧ Lb ⊆ La holds). Step 1 would
missinterpret this case as overlap relationship. Consequently, step 2
would nondeterministically remove one of the edges. A solution to
this problem would be a cleanup phase that unifies those locations
before starting Algorithm 1.</p>
          <p>IMPLEMENTATION ASPECTS</p>
          <p>
            As the “towards” in the title of this paper denotes, the presented
results are subject to ongoing research. We were not able to
finish the import of the evaluation database before the deadline. In
fact, importing the OpenStreetMap database containing data about
Europe (http://download.geofabrik.de/osm) using an
slightly adapted version of the osm2postgresql_05rc4.sh
script, which can be downloaded from http://sourceforge.
net/projects/osm2postgresql, is still in progress. So
far it took more than two weeks (PosgreSQL 9.1 [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ] with
PostGIS 1.5.1 [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ] running on an iMac Intel Core 2 Duo 3.06 GHz, 4 GB
1067 MHz RAM, OS X 10.7.3). However, there are certain
implementation issues that we find worthwhile to be discussed.
5.1
          </p>
          <p>Point sets of locations</p>
          <p>The formal definition of locations and location poly-hierarchies
as discussed in Section 3 is based on set theory. From a
theoretical point of view, those sets are infinite. A common approach to
handle this infinity problem is to decrease the precision of set
elements through quantisation. However, it would not be useful or
even possible to physically store (materialise) all points of all
locations. Hence, for the implementation of our approach we decided
to use a polygon-based representation of locations, where a set of
polygons describes the boundaries of the locations. In principal, all
points that are inside of one of these polygons belong to the
location. The OpenStreetMap data model provides an additional
multipolygon relation (cf., http://wiki.openstreetmap.org/
wiki/Multipolygon_relation) for representing more
complex areas. It allows, e. g., for areas within a location that do not
belong to this particular location. Hence, from an implementation
point of view, a location is represented as a database view. The
location name corresponds to the name of the view and the point
set is defined by a database query resulting in the location outline
(multi)polygon.
5.2</p>
          <p>Set operations</p>
          <p>Interpreting locations as (multi)polygons necessitates a
different interpretation of the used set operations, too. As discussed in
Section 4, Algorithm 1 has to check subset and set overlap
relationships. Remember, a location La contains another location Lb
if and only if Lb ⊂ La holds. Hence, La must contain all points
(xb, yb) ∈ Lb. For the polygon-based locations, the subset relation
means that the (multi)polygon describing La must cover those of
Lb completely. Similarly, an overlap relation of two locations
implies that the boundary (multi)polygons overlap (and vice versa).</p>
          <p>
            Most geographical information system extensions, such as
PostGIS, provide the corresponding operators (cf. [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ]).
          </p>
          <p>SUMMARY AND OUTLOOK</p>
          <p>We presented a novel approach to model (geographical)
relationships among locations. We extended the effective, but not complete
location hierarchy approach in order to support enclaves and
overlapping locations. We formally introduced the new location
polyhierarchy model and presented an algorithm for creating a location
poly-hierarchy from a given (closed and complete) set of locations.</p>
          <p>We discussed limitations of the algorithm and also pointed out
potential solutions to handle them. Finally, we discussed some issues
that need to be considered for the implementation of our strategy.</p>
          <p>However, there are many open issues that lead to future research
directions. First of all we plan to evaluate the algorithm with real
world data. We expect that the algorithm works properly, but we
are aware of the huge amount of data that needs to be processed.</p>
          <p>Hence, we will have to optimise the algorithm in order to avoid
unnecessary (database) operations. Furthermore, we will research
whether it would be better to explicitly keep the information about
the type of the relationships. This extended graph model would, of
course, ease the interpretability of the final location poly-hierarchy,
but it would also increase the complexity of the model.</p>
        </sec>
        <sec id="sec-3-2-4">
          <title>Maximilian Schirmer and Hagen Höpfner</title>
          <p>Bauhaus-Universität Weimar</p>
          <p>Media Department / Mobile Media Group</p>
          <p>Bauhausstraße 11, 99423 Weimar, Germany
maximilian.schirmer@uni-weimar.de, hoepfner@acm.org
Keywords
Location Determination, Location Poly-Hierarchies, Energy
Efficiency
ABSTRACT
Location awareness is a key feature of mobile information systems.</p>
          <p>Typically, location is determined by interpreting a set of measured
positions. Various approaches for position determination do exist.</p>
          <p>They vary greatly in their precision, applicability, and energy
requirements. As mobile devices are battery-driven, energy is one of
the most limiting factors for the system’s uptime. Locations have
a hierarchical nature and location-based applications differ in their
required precision. In this paper, we present three approaches that
utilise location poly-hierarchies in order to reduce the energy
demand of continuous location determination: (1) We analyse the
dependencies among the different hierarchy levels, (2) we
incorporate an adaptive delay between measurements based on the
hierarchy level and the calculated minimal required time to change, and
(3) we select appropriate positioning techniques for each hierarchy
level. We implemented and evaluated our approaches.</p>
          <p>INTRODUCTION AND MOTIVATION</p>
          <p>Navigation systems, social network apps, tourist information
systems, event information systems, shop finders and many more
heavily rely on position data of their users. Consequently, almost all
modern smartphones supply positioning techniques. The most
popular positioning technique is the Global Positioning System (GPS).</p>
          <p>
            However, even devices that do not provide GPS hardware are able
to locate themselves using alternative techniques such as geotagged
Wi-Fi hotspot and cell tower databases (db), wireless signal
triangulation/lateration, or geotagging. Although all of them allow
localisation of a mobile device, they vary dramatically in precision,
applicability, hardware requirements, and energy demands. A GPS
request requires a GPS receiver with a much higher energy demand
compared to an on-device database lookup that is based on already
localised cell towers or Wi-Fi hotspots [
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ]. However, in an outdoor
scenario, GPS is far more precise than the analysis of location
information of connected Wi-Fi hotspots or cell towers [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ]. On the
24th GI-Workshop on Foundations of Databases (Grundlagen von
Datenbanken), 29.05.2012 - 01.06.2012, Lübbenau, Germany.
          </p>
          <p>Copyright is held by the author/owner(s).
other hand, indoor GPS positioning is almost impossible because of
the occlusion and shielding of satellite signals created by building
structures.</p>
          <p>
            Mobile devices are battery-driven. So, energy is one of the most
limiting factors for their uptime. Additionally, the user acceptance
of location-based or context-aware mobile applications is
negatively influenced when the applications heavily strain the mobile
devices’ batteries. Furthermore, location-based applications differ
in their required precision [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ]. While the name of the city a user
or a device is currently located in might be appropriate for an event
information system, a navigation system might demand for exact
coordinates or street names at least. A common representation of
locations follows their hierarchical nature. In a hierarchical model,
earth is divided into continents, continents into countries, countries
into states, states into cities, cities into streets and streets into street
numbers, and so on. Consequently, determining low-level location
information in this hierarchy also determines upper levels and
contains information that is connected to these levels. In addition to
this, locations only change if the device is moving. While GPS
coordinates might change with each movement, city information is
stable until the device leaves the city. Hence, the system might wait
with the next energy-demanding location determination on the city
level until the device possibly left the city. In this paper, we present
three approaches that utilise location poly-hierarchies for reducing
the energy demand of continuous location determination:
1. We analyse dependencies among different hierarchy levels.
2. We postpone position measurements based on a calculated
          </p>
          <p>minimal time that is required for leaving the current location.
3. We select appropriate positioning techniques for each
hierar</p>
          <p>chy level.</p>
          <p>Our preliminary experimental results show that there is a strong
potential in these techniques to reduce the energy demand compared
to continuous GPS polling.</p>
          <p>The remainder of the paper is structured as follows: Section 2
discusses related work. Section 3 introduces the concept of
location hierarchies. Section 4 presents the three aforementioned
approaches. Section 5 describes the evaluation approach and the
results. Section 6 summarises the paper.</p>
          <p>RELATED WORK</p>
          <p>Our work mainly overlaps with the research fieldslocation
models and energy-aware computing. Location models form the basis
for all high-level operations on location data. Consequently, the
frequent and enduring use of location data in mobile computing
immediately raises the issue of the mobile devices’ limited energy
Towards Using Location Poly-Hierarchies for Energy-E
cient Continuous Location Determination
resources. The field of energy-aware computing presents a variety
of concepts and methods to compensate for these constraints.</p>
          <p>Location Models</p>
          <p>
            Location models as core components of location-based
applications represent location information and spatial (or even
spatiotemporal [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ]) relationships in data. They help to express relative
locations, proximity, and allow users to determine containment of
locations or connectedness of relationships.
          </p>
          <p>
            The authors of [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ] present in great detail the broad variety of
location models that have been developed in recent years of active
research. A key factor for distinguishing and characterising
location models is their way of representing spatial relationships.
According to [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ], they can be categorised into set-based, hierarchical,
and graph-based models. Hybrid models that combine several
aspects exist as well. Figure 1 presents an overview of the three main
concepts. In the illustrated examples, the set-based approach is the
least expressive one, as it only models the fact that there are two
distinct locations within a set of locations, and a set of coordinates
is assigned to each location. The hierarchical model adds
containment information, and the graph-based model adds connectedness
as well as distance in the form of edge weights.
          </p>
          <p>
            Hierarchical location models as a special case of set-based
models represent containment relationships between different levels of
the model and are widely used as basis for location-based
applications [
            <xref ref-type="bibr" rid="ref14 ref2 ref26 ref30 ref38 ref46 ref50 ref58 ref6">14, 2, 6</xref>
            ]. They cannot represent distance information or
directly encode proximity, but they have great advantages in
traversal and for containment queries. They are very close to the
common human understanding of locations. Almost everyone
understands the widely acknowledged segmentation of locations into
administrative regions (country, state, city, street, etc.). At this, on
a city level, a lot of implicit information can be derived through
the top-level relationship to a state or country (e.g., administrative
language, local cuisine, prevalent religions).
2.2
          </p>
          <p>Energy-aware Computing</p>
          <p>
            Energy-aware computing recognises the need for energy as a
factor in modelling and implementing computing systems in
order to manage and reduce their energy demand. This includes both
hardware and software systems. While energy-aware hardware has
been under active research for many years, energy-aware software
is still a novel and underestimated field of research. Hardware
solutions such as sleep modes or performance scaling cannot be directly
transferred or adapted to software systems. Energy-aware software
requires dedicated software engineering with new concepts and
algorithms [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ].
          </p>
          <p>
            One concept of energy-aware computing is resource substitution
[
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ]. It is based on the observation that in most cases, alternative
resources exist for a given resource. These alternatives often vary
greatly in their costs (e.g., computing power, storage capacity, or
energy demands), but also in their accuracy, granularity, and
frequency of data updates. This directly influences their
appropriateness for substitution. In general, resource substitution favours
resources with a lower cost (energy requirements) over expensive
(high-energy) alternatives. In many cases, a high-energy resource
is not necessarily required and can be substituted without
measurable impact on system performance or user acceptance [
            <xref ref-type="bibr" rid="ref19 ref43">19</xref>
            ].
          </p>
          <p>
            The authors of [
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ] utilise resource substitution in the form of
sensor substitution. In a location-based context, data from a GPS
device is often substituted with triangulation or lateration data from
cell towers or Wi-Fi stations. A comparable concept is sensor
triggering, where logical dependencies between different sensors are
used. When low-energy sensors detect changes in the environment,
a detailed update with high-energy sensors is triggered. An
experiment described in [
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ] shows that low-energy accelerometer data
can be used to trigger high-energy GPS sampling. This approach
greatly reduces the energy demand of location determination for
mobile applications that do not require a gap-less reconstruction of
routes. This triggering approach has also been applied in the area of
civil engineering, where it is critical that autonomous sensor nodes
in buildings gather highly detailed data when vibrations occur. In
the “Lucid Dreaming” system [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ], a low-energy analogue circuit
is sufficient to watch for these environment changes. It triggers
a high-energy microcontroller-based sensor to gather the required
fine-grained data.
3.
          </p>
          <p>TERMS AND DEFINITIONS</p>
          <p>
            According to [
            <xref ref-type="bibr" rid="ref18 ref42">18</xref>
            ], “ location of an object or a person is its
geographical position on the earth with respect to a reference point.”
From our viewpoint, this definition is too restrictive, as geographic
positions are points. In contrast to a point, a location has a spatial
extent. Due to [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ], “ geographic location is the text description of an
area in a special confine on the earth’s surface”.. However, an area
is a set of geographical positions. So, we use a set-oriented
definition: A location is a named set of geographical positions on earth
with respect to a reference point. In a two-dimensional
coordinate system, e.g., the location of a building is given as a set, where
each position (point) belongs to the building’s area. We do not
discuss the calculation of point sets here, but rather refer to techniques
of geographical information systems (GIS) [
            <xref ref-type="bibr" rid="ref31 ref51 ref7">7</xref>
            ]. The location
models presented in Section 2.1 describe relationships among locations.
          </p>
          <p>
            However, reality requires a more sophisticated location model.
Istanbul, as the capital of Turkey, belongs to Europe and Asia. The
same issue holds for Russia, which is located in Europe and in Asia,
too. Another problem results from enclaves: Kaliningrad is part
of Russia, but this information is not sufficient to decide whether
Kaliningrad belongs to Europe or Asia. The solution for these
problems is to use set overlaps instead of containment relationships in
combination with a poly-hierarchical location model [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ].
          </p>
          <p>Figure 2 illustrates the simplified poly-hierarchies for Istanbul
and Kaliningrad, represented as directed acyclic graphs. Each node
is a location and each directed edge represents that the child node
belongs (semantically) to the parent node(s). Moreover, the location
poly-hierarchy LP H has a unique root node because the entire
coordinate system is closed in case of locations (all considerable
positions are elements of the set of all positions on earth). We do not
discuss the construction of LP H in this paper, but assume that an</p>
          <p>ANWENDUNGSBEISPIEL
Das folgende Anwendungsbeispiel illustriert eine logikbasierte
Ähnlichkeitsanfrage anhand mehrerer Features.</p>
          <p>Gegeben sei eine Datenbank mit Bildern verschiedener Pilze und
Informationen über deren Art und Giftigkeit. Ziel sei es nun anhand
eines Anfragebildes eines gesammelten Pilzes, die Art des Pilzes
zu ermitteln und so zu bestimmen, ob der Pilz essbar ist. Die aus
den Bildern extrahierten Features umfassen dabei aus den
Pixeldaten erzeugte Farb- (color ) und Formfeatures (shape) sowie aus den
Metadaten stammende Informationen, wie das Datum der
Bildaufnahme (date) oder die GPS-Koordinaten des Aufnahmeortes (gps).</p>
          <p>
            Zur Ermittlung der (Un-)Ähnlichkeit von Objekten werden jeweils
für das Feature geeignete Distanzfunktionen genutzt,
beispielsweise die Earth Mover’s Distanzfunktion [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ] für Farbsignaturen oder
verschiedene Minkowski-Distanzfunktion (Lp-Distanzfunktion).
          </p>
          <p>Eine Anfrage, bestehend aus nur einem Feature, genügt nicht,
um eine korrekte Zuordnung der Pilzarten vorzunehmen. So kann
zum Beispiel allein anhand der Farbfeatures eines Pilzes nicht
immer ein Rückschluss auf dessen Art gezogen werden, wenn
sich etwa die Form stark von der des Anfragebildes
unterscheidet. In diesem Fall ist eine UND-Verknüpfung der Features nötig:
shape≈ ∧ color ≈. Für den Fall, dass der Pilz des Anfragebildes
eine für seine Art sehr untypische Form aufweist (¬shape≈) und
daher anhand dieser nicht zugeordnet werden kann, soll stattdessen
allein anhand der GPS-Koordinaten des Bildes (gps≈) auf dessen
Art geschlossen werden. Als zusätzliche relationale (scharfe)
Bedingung sollen nur Pilze betrachtet werden, die im selben Monat
gesammelt wurden, wie der Pilz des Anfragebildes (date=). Eine
logische Verknüpfung der Features eines Anfragebildes sieht dann
wie folgt aus, wobei θ1, θ2 für Parameter stehen, die eine
unterschiedliche Gewichtung der Teilbedingungen ermöglichen.</p>
          <p>date= ∧ ((shape≈ ∧ color ≈) ∨θ1,θ2 (¬shape≈ ∧ gps≈)) (2)</p>
          <p>Nach einer DNF-Normalisierung und Transformation anhand
der in Abschnitt 2.2 beschriebenen Transformationsregeln, ergibt
sich aus dem booleschen Ausdruck (2) folgende arithmetische
Formel:
(θ1 ∗ date= ∗ shape≈ ∗ color ≈) +
(θ2 ∗ date= ∗ (1 − shape≈) ∗ gps≈)
(3)</p>
          <p>
            ANFORDERUNGEN
In [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ] werden allgemeine Anforderungen an
Indexierungsverfahren im Bereich des Multimedia Retrievals definiert. Auf Grundlage
dieser werden im Folgenden die spezifischen Anforderungen für
Indexierungsverfahren zur effizienten Verarbeitung von
logikbasierten Multi-Feature-Anfragen vorgestellt.
          </p>
          <p>Flexibilität: Multi-Feature-Anfragen setzen sich aus
unterschiedlichen Features und Distanzfunktionen zusammen, das
Indexierungsverfahren muss daher unabhängig von Art und Struktur der
Features sein und ein breites Spektrum an Distanzfunktionen
unterstützen. Die Anzahl der unterschiedlichen zur Verfügung stehenden
Features ist potentiell hoch. Das Indexierungsverfahren muss
daher mit einer großen Menge von Features umgehen können, auch
wenn nur eine Teilmenge dieser für eine Anfrage genutzt wird. Je
nach Anfrage können sich die genutzten Features unterscheiden.</p>
          <p>Ebenso sind unterschiedliche logische Kombinationen und
unterschiedliche Gewichtungen der selben Features möglich. Das
Indexierungsverfahren darf daher nicht nur auf eine logische
Kombination zugeschnitten werden, sondern muss mit beliebigen logischen
Kombinationen und Gewichtungen umgehen können.</p>
          <p>
            Sucheffizienz: Die Anzahl der nötigen Berechnungen der
Distanzfunktion und die Anzahl von I/O-Operationen (Seitenzugriffe)
dienen als Effizienzmaß für Indexierungsverfahren. Die Grundlage
für die Bewertung der Sucheffizienz bildet der Vergleich mit dem
Suchaufwand des linearen Scans der Datenbank. Ein effizientes
Indexierungsverfahren sollte diesen linearen Aufwand stets
unterbieten. Es existieren zwar Verfahren, welche eine sehr hohe
Sucheffizienz bieten, dabei aber einen nicht realisierbar hohen
Speicherverbrauch verursachen (vgl. [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ]). Ein geeignetes
Indexierungsverfahren sollte daher einen möglichst geringen Speicherverbrauch bei
gleichzeitig möglichst hoher Sucheffizienz aufweisen.
          </p>
          <p>
            Skalierbarkeit: Ein inhärentes Problem der Ähnlichkeitssuche
ist der Fluch der hohen Dimensionen (FdhD [
            <xref ref-type="bibr" rid="ref13 ref29 ref37 ref49 ref5 ref57">13, 5</xref>
            ]). Dieser
bewirkt, dass die Performanz von Indexierungsverfahren mit
steigender (intrinsischer) Dimensionalität3 eines Features abnimmt.
Indexierungsverfahren können den Suchaufwand des linearen Scans
dann nicht mehr signifikant unterbieten oder übersteigen ihn
sogar. Analog zur Erhöhung der Dimensionsanzahl bei einem Feature
lässt sich der FdhD auch bei Multi-Feature-Anfragen beobachten.
          </p>
          <p>Die Kombination von Features bewirkt hier ebenfalls eine
Erhöhung der (intrinsischen) Dimensionalität. Ein geeignetes
Indexierungsverfahren für Multi-Feature-Anfragen muss daher
Möglichkeiten bieten, mit dem FdhD umzugehen und möglichst ohne
Effizienzeinbußen skalierbar bezüglich der (intrinsischen)
Dimensionalität einzelner Features und der Kombination mehrerer Features
sein.</p>
          <p>STAND DER TECHNIK
Der folgende Abschnitt geht auf den Stand der Technik auf dem
Gebiet der effizienten Verarbeitung von Multi-Feature-Anfragen
ein. Die existierenden Verfahren werden kurz vorgestellt und
ausschnittsweise hinsichtlich der in Abschnitt 4 definierten
Anforderungen bewertet. Wir beschränken uns dabei auf Verfahren für die
exakte Suche der nächsten Nachbarn und gehen nicht auf
Spezialfälle wie die approximative Suche oder zusätzliche Anfragearten
wie getNext (Ranking-Anfrage) ein.
5.1</p>
          <p>
            Combiner-Algorithmen
Combiner-Algorithmen [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ] kombinieren die Ergebnisse mehrerer
Ähnlichkeitsanfragen zu einem aggregierten Ergebnis. Für
MultiFeature-Anfragen existiert dazu je Feature eine nach Distanz4 zum
Anfrageobjekt sortierte Liste der Datenbankobjekte.
          </p>
          <p>Combiner-Algorithmen sind keine Indexierungsverfahren,
sondern arbeiten auf einer darüber liegenden Ebene. Sie legen nicht
fest, wie die sortierten Listen bereitgestellt werden. Um eine
effiziente Suche zu ermöglichen, sollte der Zugriff über
Indexierungsverfahren mit Unterstützung von getNext-Anfragen umgesetzt
werden.</p>
          <p>
            Combiner-Algorithmen erlauben eine dynamische Auswahl der
verwendeten Features sowie unterschiedliche
Aggregationsfunktionen und Gewichtungen. Aufgrund der Forderung nach globaler
Monotonie kommen sie jedoch nicht für alle logikbasierten
MultiFeature-Anfragen in Frage. Formel 3 ist beispielsweise nicht
global monoton steigend, da eine Erhöhung des Ähnlichkeitswerts
shape≈ nicht in jedem Fall zu einer Erhöhung des aggregierten
Ähnlichkeitswerts führt. Ein weiterer Nachteil ist die geforderte
Bereitstellung der sortierten Listen, da Indexstrukturen mit
effizienten getNext-Anfragen nicht immer zur Verfügung stehen und sich
durch die getrennte Verwaltung jedes einzelnen Index ein
Mehraufwand ergibt.
3Die Dimensionalität eines Features ergibt sich aus der Anzahl
seiner Featurewerte. Die intrisische Dimensionalität lässt sich
beispielsweise anhand der paarweisen Distanzen zwischen den
Featurewerten der Datenbankobjekte abschätzen und ist dann definiert
als ρ = μ2/2 ∗ σ2 [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ].
4Combiner-Algorithmen sind ohne größere Anpassungen auch für
Ähnlichkeitswerte nutzbar.
5.2
          </p>
          <p>Räumliche Indexierung
Räumliche Indexierungsverfahren gehen davon aus, dass die
Features in Form von Vektoren vorliegen und die euklidsche
Distanzfunktion (L2-Distanzfunktion) zur Berechnung der Unähnlichkeit
zwischen den Featurevektoren verwendet wird. Da diese
Beschränkung im Widerspruch zur Flexibilität steht, scheidet die
Verwendung räumlicher Indexierungsverfahren aus. Dennoch soll im
Folgenden auf sie eingegangen werden, da ihre Konzepte teilweise
übertragbar sind.</p>
          <p>
            Hierarchische Verfahren, wie zum Beispiel der R-Baum [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ],
beschreiben Mengen von Objekten durch geometrische Regionen
(Cluster). Aufgrund des Fluchs der hohen Dimensionen sinkt die
Sucheffizienz dieser Verfahren jedoch bereits ab einer
Dimensionsanzahl der Featurevektoren von 10-20 unter die des linearen
Scans [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ]. Im Folgenden stellen wir daher lediglich den
nichthierarchischen Ansatz der VA-Datei vor.
Die Vektor-Approximations-Datei (VA-Datei) [
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ] ist ein
nichthierarchisches Verfahren und akzeptiert den FdhD in dem Sinne,
dass sie statt Cluster zu bilden, direkt einen linearen Scan der
Datenbank durchführt. Sie setzt dazu einen Filter-Refinement-Ansatz
auf Basis kompakter Bitsignaturen ein. Ziel dieses Ansatzes ist es
in der Filterphase, anhand der durch Bitsignaturen approximierten
Objekte, Distanzgrenzen zu ermitteln und mithilfe dieser möglichst
viele Objekte von der weiteren Suche auszuschließen. Die exakte
Distanz muss in der Verfeinerungsphase dann lediglich für die
Objekte berechnet werden, die in der Filterphase nicht ausgeschlossen
werden konnten.
          </p>
          <p>
            Die Sucheffizienz des Verfahrens ergibt sich daraus, dass die
Bitsignaturen in der Filterphase sequentiell aus Signaturdateien
gelesen werden und durch den Ausschluss von Objekten die
Anzahl teurer, wahlfreier Zugriffe in der Verfeinerungsphase
verringert wird. Für Multi-Feature-Anfragen ist eine Anpassung der
VADatei nötig.
GeVAS [
            <xref ref-type="bibr" rid="ref2 ref26 ref46">2</xref>
            ] ist eine Erweiterung der VA-Datei für
Multi-FeatureAnfragen und erlaubt eine dynamische Auswahl der in der
Anfrage verwendeten Features aus einer großen Menge vorhandener
Features. Für jedes Feature wird dazu eine separate VA-Datei
erzeugt, wobei die Reihenfolge der Objekte in allen Signaturdateien
gleich ist. Bei einer Multi-Feature-Anfrage werden nun nur die
Signaturdateien der Features parallel abgearbeitet, die tatsächlich in
der Anfrage eingesetzt werden. Für jedes einzelne Feature eines
Objekts werden Distanzgrenzen ermittelt und dynamisch zu
aggregierten Distanzgrenzen zusammengefasst. Der Ausschluss von
Objekten geschieht in der Filterphase anhand dieser aggregierten
Distanzgrenzen. Voraussetzung für die korrekte Aggregation von
Distanzgrenzen ist, dass die Aggregationsfunktion global
monoton steigend ist. Diese Forderung lässt sich jedoch so
abschwächen, dass beliebige, logikbasierte Multi-Feature-Anfragen
ermöglicht werden (siehe Abschnitt 6.1).
          </p>
          <p>
            Liegen die einzelnen VA-Dateien auf der gleichen Festplatte
(HDD) ergeben sich für GeVAS Effizienzprobleme beim Lesen der
Daten vom Sekundärspeicher, da statt jede VA-Datei einzeln
sequentiell zu lesen, der Lesekopf der Festplatte zwischen den
verschiedenen VA-Dateien hin und her springen muss [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ].
5.3
          </p>
          <p>Metrische Indexierung
Metrische Indexierungsverfahren stellen keine Anforderungen an
die Art der Featuredaten. Im Gegensatz zu räumlichen
Indexierungsverfahren erlauben sie daher auch die Indexierung von
Features bei denen es sich nicht um Vektoren handelt (zum Beispiel
textuelle Daten) oder die nicht die euklidsche Distanzfunktion
verwenden. Sie erfordern lediglich das Vorliegen einer Metrik.</p>
          <p>Eine Metrik δ ist eine Distanzfunktion, für die folgenden
Eigenschaften für alle oi, oj , ok ∈ U gelten: δ(oi, oj ) &gt; 0 für oi 6= oj
(Positivität), δ(oi, oi) = 0 (Selbstidentität), δ(oi, oj ) = δ(oj , oi)
(Symmetrie) und δ(oi, ok) ≤ δ(oi, oj ) + δ(oj , ok)
(Dreiecksungleichung).</p>
          <p>Der Ausschluss von Objekten wird mithilfe der
Dreiecksungleichung erreicht, die es ermöglicht, untere und obere Grenzen
bezüglich der Distanz von Anfrageobjekt und Datenbankobjekten zu
bestimmen. Die Grenzen können effizient anhand von
vorberechneten Distanzen zu einem oder mehreren Referenzobjekten5 ermittelt
werden. Die untere und die obere Grenze für die Distanz δ(q, oi)
und ein Referenzobjekt p sind wie folgt definiert:
(4)</p>
          <p>
            Analog zu räumlichen Indexierungsverfahren lässt sich zwischen
hierarchischen (M-Baum [
            <xref ref-type="bibr" rid="ref31 ref51 ref7">7</xref>
            ]) und nicht-hierarchischen (AESA [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ])
metrischen Indexierungsverfahren unterscheiden. Eine
umfassende Übersicht metrischer Indexierungsverfahren bietet zum Beispiel
das Lehrbuch von Samet [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ].
          </p>
          <p>
            Der Großteil der existierenden metrischen
Indexierungsverfahren ist auf die Indexierung anhand einer einzigen
Distanzfunktion ausgelegt. Die Forderung nach der Unterstützung beliebiger
logischer Kombinationen kann daher nicht erfüllt werden.
MultiMetrische Indexierungsverfahren [
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ] ermöglichen die Indexierung
auf Grundlage einer dynamischen Kombination mehrerer
Distanzfunktionen zu einer Aggregationsfunktion. Sie unterstützen
dadurch mit einem einzigen Index unterschiedliche Gewichtungen
der gleichen Aggregationsfunktion. Da es sich bei der
Aggregationsfunktion jedoch um eine Metrik handeln muss, ist diese auf die
gewichtete Summe metrischer Distanzfunktion beschränkt. Für
logikbasierte Multi-Feature-Anfragen sind diese Verfahren daher nur
eingeschränkt anwendbar.
Der M2-Baum [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ] ist eine Erweiterung des M-Baums für
MultiFeature-Anfragen. Statt die Distanzen bezüglich aller Features
bereits bei der Indexierung zu aggregierten Distanzen
zusammenzufassen, werden die Distanzgrenzen bei der Anfrage dynamisch
für jedes einzelne Feature abgeschätzt. Diese Grenzen werden
anschließend in Ähnlichkeitswerte umgewandelt und zu aggregierten
Ähnlichkeitsgrenzen kombiniert (vergleiche aggregierte
Distanzgrenzen bei GeVAS). Der Vorteil bei diesem Vorgehen ist, dass die
metrischen Eigenschaften in diesem Fall nicht für die
Aggregationsfunktion gelten müssen, sondern nur für jede zugrundeliegende
Distanzfunktionen.
          </p>
          <p>
            Der M2-Baum verlangt die lokale Monotonie der
Aggregationsfunktion. Die arithmetische Formel 3 erfüllt jedoch auch
diese Eigenschaft nicht. Analog zu GeVAS lässt sich die
MonotonieEigenschaft aber auch hier so abschwächen, dass beliebige,
logikbasierte Multi-Feature-Anfragen möglich werden (siehe
Abschnitt 6.1). Der M2-Baum erlaubt somit beliebige, logische
Kombinationen und eine dynamische Auswahl der tatsächlich genutzten
Features. Da es sich beim M2-Baum um ein hierarchisches
Verfahren handelt, nimmt die Sucheffizienz jedoch aufgrund des Fluchs
der hohen Dimensionen mit steigender intrinsischer
Dimensionalität der Features stärker ab, als bei nicht-hierarchischen Verfahren
[
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ].
5Für Referenzobjekte existieren unterschiedliche Benennungen in
der Literatur, wie zum Beispiel Routing-, Focus-, Vantage- oder
          </p>
          <p>Pivot-Objekt, die das gleiche Konzept widerspiegeln.</p>
          <p>KONZEPT
Dieser Abschnitt beschreibt das Konzept eines
Indexierungsverfahrens zur effizienten Verarbeitung logikbasierter
Multi-FeatureAnfragen. Dazu wird zuerst auf die Berechnung aggregierter
Distanzgrenzen eingegangen. Die Übertragung des GeVAS-Ansatzes
auf den metrischen Raum stellt den Kern des Konzepts dar. Wir
wählen GeVAS aufgrund seiner Flexibilität im Bezug auf
Featureanzahl und -auswahl sowie aufgrund seiner besseren
Skalierbarkeit im Bezug auf die Dimensionalität als hierarchische Verfahren.</p>
          <p>
            Zusätzliche Anpassungen, wie die direkte Berechnung exakter
Distanzen für eine Teilmenge der Features, dienen dazu, die
Sucheffizienz des entworfenen Verfahrens bei steigender Featureanzahl zu
verbessern.
Die korrekte Berechnung aggregierter Distanzgrenzen6 hängt von
der Monotonie der Aggregationsfunktion ab. Zur Berechnung der
oberen Distanzgrenze einer global monoton steigenden
Aggregationsfunktion müssen die oberen Grenzen aller Teildistanzen in die
Aggregationsfunktion eingesetzt werden [
            <xref ref-type="bibr" rid="ref2 ref26 ref46">2</xref>
            ].
          </p>
          <p>Für die obere Distanzgrenze lokal monotoner
Aggregationsfunktionen kommt es auf die Monotonie der einzelnen Argumente an.</p>
          <p>
            Bei monoton steigenden Argumenten muss die obere
Distanzgrenze und bei monoton fallenden Argumenten die untere
Distanzgrenze eingesetzt werden [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ].
          </p>
          <p>Die arithmetische Formel (3) ist nicht lokal monoton. Jedoch
liegt eine Monotonie vor, für die wir den Begriff fixe Monotonie
einführen. Hierbei hängt die Monotonie eines Arguments der
Aggregationsfunktion von den Wertebelegungen der anderen
Argumente ab. Eine fix monotone Funktion kann also in einem
Argument für bestimmte Wertebelegungen monoton fallend und für alle
andere Wertebelegungen monoton steigend sein. In Formel (3)
ergibt sich die fixe Monotonie daraus, dass das Argument shape≈
in einem Teil der Formel negiert und in einem anderen Teil
nichtnegiert auftritt.</p>
          <p>Die aggregierte obere Distanzgrenze für fix monotone
Funktionen ergibt sich durch das Einsetzen aller möglichen Kombinationen
von oberen und unteren Grenzen in die Aggregationsfunktion und
einer Auswahl des maximalen Ergebnisses.</p>
          <p>C = dl1b , d1ub</p>
          <p>× · · · × {dlmb , dumb }
daugbg = max agg(c)
c∈C
(5)
(6)
Wie zuvor erwähnt, lässt sich die Berechnung der aggregierten
Grenzen in GeVAS und M2-Baum entsprechend anpassen.</p>
          <p>Es kann gezeigt werden, dass alle mithilfe von CQQL erzeugten
arithmetischen Formeln eine der beschriebenen Monotonien
erfüllen. Die Monotonie kann dabei allein anhand der Syntax der
Anfrage bestimmt werden. Auf die Darstellung der Beweise dieser
Eigenschaften wird an dieser Stelle aus Platzgründen verzichtet.
6.2</p>
          <p>Metrisches Filter-Refinement
Im Gegensatz zu GeVAS werden die Signaturen beim metrischen
Filter-Refinementnicht anhand der Featuredaten der
Datenbankobjekte ermittelt, sondern ergeben sich aus den Distanzen der
Datenbankobjekte zu Referenzobjekten. Jede Signaturdatei besteht daher
aus den Bitsignaturen der Distanzen jedes Datenbankobjekts zu
einer Menge von Referenzobjekten. Die Reihenfolge der
Datenbankobjekte ist dabei in allen Signaturdateien gleich. Die kNN-Suche
verläuft analog zu GeVAS, wobei der Ausschluss von Objekten
jedoch anhand aggregierter Ähnlichkeitsgrenzen stattfindet.
6Die Beschreibungen lassen sich analog auf Ähnlichkeitsgrenzen
anwenden.</p>
          <p>
            Für die Auswahl geeigneter Referenzobjekte stehen
verschiedene Verfahren zur Verfügung, darunter die zufällige Auswahl oder
die inkrementelle Auswahl entfernter Objekte [
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ]. Um möglichst
enge Grenzen zu garantieren, nutzt jedes Datenbankobjekt eine
dynamisch ausgewählte Teilmenge seiner nächsten Referenzobjekte.
          </p>
          <p>
            Bei der Indexerzeugung werden für einen repräsentativen
Ausschnitt der Datenbank die paarweisen Distanzen je Feature
bestimmt. Ein Equi-Height-Histogramm [
            <xref ref-type="bibr" rid="ref10 ref34 ref54">10</xref>
            ] dieser Distanzen wird
genutzt um Distanzintervalle für jedes Feature zu berechnen.
Diese Distanzintervalle dienen dann der Quantisierung der Distanzen
zwischen Referenzobjekten und Datenbankobjekten. Statt also zur
Indexierung exakte Distanzen zu speichern, werden die exakten
Distanzen durch nummerierte Distanzintervalle repräsentiert (vgl.
[
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ]). Die kompakte Darstellung dieser Nummern durch
Bitsignaturen verringert den Speicherverbrauch und erhöht gleichzeitig die
Sucheffizienz in der Filterphase, da weniger Daten von der
Festplatte gelesen werden müssen. Der Approximationsfehler der
Distanzgrenzen steigt jedoch durch die Verwendung von
Distanzintervallen. Die Festlegung der Anzahl an Bits pro Signatur entspricht
daher der Steuerung der Genauigkeit der Distanzintervalle.
Dem in Abschnitt 5.2.2 erläuterten GeVAS-Problem der sinkenden
Sucheffizienz bei der Ablage aller Signaturedateien auf einer
Festplatte begegnen wir mit der Einführung eines Lesefensters. Statt für
jedes Objekt parallel auf alle genutzten Signaturdateien
zuzugreifen, wird jede Signaturdatei einzeln in Größe des Lesefensters
ausgelesen. Der Vorteil dabei ist, dass längere sequentielle Lesephasen
entstehen und weniger Sprünge zwischen den Signaturdateien
stattfinden. Allerdings müssen die gelesenen Daten jeweils solange im
Hauptspeicher gehalten werden, bis alle genutzten Signaturdateien
in Größe des Lesefensters abgearbeitet wurden.
Ein Problem des Filter-Refinements ist, dass alle Objekte, die in der
Filterphase nicht ausgeschlossen werden können, bis zur
Verfeinerungsphase in einer nach unterer Distanzgrenze sortierten
Kandidatenliste gehalten werden müssen. Für große Datenbanken kann es
jedoch vorkommen, dass der vorhandene Hauptspeicher dazu nicht
ausreicht. Ein weiteres Lesefenster ermöglicht daher die
Einhaltung von festen Grenzen für die Hauptspeichernutzung.
          </p>
          <p>
            Nach einem in [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ] vorgeschlagenen Prinzip werden Filter- und
Verfeinerungsphase verschränkt. Die Filterphase wird gestoppt,
sobald eine festgelegte Speichergrenze erreicht ist. In der nun
folgenden Verfeinerungsphase wird die Kandidatenliste abgearbeitet, bis
k vorläufige nächste Nachbarn ermittelt wurden. Damit diesek
Objekte nicht verloren gehen, werden sie abschließend in die zuvor
geleerte Kandidatenliste eingefügt, bevor die Filterphase wieder an
der abgebrochenen Stelle fortgesetzt wird. Der Effizienznachteil
dieses Vorgehens ist, dass das sequentielle Lesen der Filterphase
regelmäßig unterbrochen wird und durch einen wahlfreien Zugriff
wieder fortgesetzt werden muss.
6.5
Steigt die Anzahl der in der Anfrage genutzten Features, steigt der
Approximationsfehler bei der Abschätzung der aggregierten
Ähnlichkeitsgrenzen, da alle Teildistanzen in Form von Distanzgrenzen
eingehen. Für Anfragen mit vielen Features bedeutet dies, dass sich
die Anzahl der Objekte, die anhand dieser Grenzen ausgeschlossen
werden können, verringert und die Sucheffizienz des Verfahrens
sinkt.
          </p>
          <p>Um diesem Problem zu begegnen, werden bei steigender
Featureanzahl, statt Distanzgrenzen für jedes einzelne Feature zu
nutzen, nur noch für eine Teilmenge der verwendeten Features
Distanzgrenzen abgeschätzt. Für alle anderen Features werden direkt
die exakten Distanzen berechnet. Aus der exakten Berechnung von
Teildistanzen ergibt sich ein Mehraufwand gegenüber der Nutzung
von Distanzgrenzen. Dieser Mehraufwand kann jedoch
ausgeglichen werden, wenn durch diese exakte Berechnung genügend
zusätzliche Objekte ausgeschlossen werden können.</p>
          <p>Dieses Prinzip lässt sich in der Filterphase anwenden um mehr
Objekte auszuschließen. Analog zum sequentiellen Lesen der
Signaturdateien müssen die Features in diesem Fall ebenfalls
sequentiell gelesen werden, um die Sucheffizienz in der Filterphase zu
garantieren.</p>
          <p>Das gleiche Prinzip kann in der Verfeinerungsphase genutzt
werden, um die Suche früher und mit weniger exakten
Distanzberechnungen abbrechen zu können. Statt für ein Objekt in der
Verfeinerungsphase direkt alle Teildistanzen auf einmal exakt zu
berechnen und zu aggregieren, wird schrittweise vorgegangen. Jedes Mal,
wenn ein Objekt in der Verfeinerungsphase am Anfang der
Kandidatenliste steht, für das noch nicht alle Teildistanzen berechnet
wurden, wird eine Teildistanz berechnet und das Objekt anhand
der neuen (genaueren) aggregierten Ähnlichkeitsgrenze wieder in
die Kandidatenliste einsortiert. Ein Vorteil ergibt sich dann, wenn
der Ausschluss eines Objekts von nur wenigen Teildistanzen
abhängt. Bei einer geeigneten Reihenfolge der berechneten
Teildistanzen müssen dann nur diese diskriminierenden Distanzen
exakt berechnet werden, die Berechnung aller weiteren Teildistanzen
kann gespart werden.</p>
          <p>Die Auswahl der Features, für die exakte Distanzen berechnet
werden, erfolgt statisch (zur Indexierungszeit) oder dynamisch (zur
Anfragezeit) nach unterschiedlichen Kriterien, wie der
(intrinsischen) Dimensionalität der Features oder der Berechnungsdauer
der zugehörigen Distanzfunktion.
6.6</p>
          <p>Indexauswahl
Die Sucheffizienz des beschriebenen Verfahrens hängt besonders
von der Anzahl der verwendeten Features und der daraus
resultierenden (intrinsischen) Dimensionalität ab. Hierarchische
Verfahren können bei niedriger (intrinsischer) Dimensionalität, aufgrund
der hohen Lokalität der Daten, größere Mengen von Objekten auf
einmal ausschließen und dadurch effizienter als nicht-hierarchische
Verfahren sein. Ein Vergleich des entworfenen Konzepts mit dem
angepassten M2-Baum dient daher zur Bestimmung der
Schnittpunkte bezüglich der Sucheffizienz beider Ansätze. Eine Selektion
des effizienteren Index kann dann entweder bereits bei der
Indexerzeugung oder erst zur Anfragezeit anhand der in der Anfrage
genutzten Features und ihrer (intrinsischen) Dimensionalität
stattfinden. Überschreitet die (intrinsische) Dimensionalität eine
bestimmte Grenze, ist unter Umständen ein Rückfall auf den linearen Scan
sinnvoll.</p>
          <p>ZUSAMMENFASSUNG
In dieser Arbeit wurde ein Konzept zur flexiblen Indexierung für
Ähnlichkeitssuche mit logikbasierten Multi-Feature-Anfragen
vorgestellt. Dazu wurden die spezifischen Anforderungen an geeignete
Indexierungsverfahren definiert und der Stand der Technik im
Bezug auf diese Anforderungen analysiert. Das entwickelte Konzept
zur Indexierung basiert auf einer Übertragung und Anpassung des
GeVAS-Ansatzes auf den metrischen Raum. Der Index ist dadurch
unabhängig von der genutzten logischen Kombination, der Art und
Struktur der verwendeten Features und unterstützt eine Vielzahl
unterschiedlicher Features und Distanzfunktionen zur Berechnung
der Unähnlichkeit.</p>
          <p>Als zukünftige Arbeiten verbleiben Teile der Implementierung,
die Bestimmung der optimalen Indexparameter und die
Evaluation des Konzeptes anhand von synthetischen und realen Daten. Die
Unterstützung von Multi-Objekt-Anfragen sowie von
Distanzfunktionen die keine Metriken sind, stellen weitere Herausforderungen
dar.</p>
          <p>Literatur</p>
          <p>
            Klemens Böhm u. a. “Fast Evaluation Techniques for Complex
Similarity Queries”. In: Proceedings of the 27th International Conference
on Very Large Data Bases. VLDB ’01. 2001, S. 211–220.
[
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ] Benjamin Bustos, Gonzalo Navarro und Edgar Chávez. “Pivot
selection techniques for proximity searching in metric spaces”. In: Pattern
          </p>
          <p>
            Recogn. Lett. 24 (14 2003), S. 2357–2366.
[
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ] Benjamin Bustos und Tomáš Skopal. “Dynamic similarity search in
multi-metric spaces”. In: Proceedings of the 8th ACM
international workshop on Multimedia information retrieval. MIR ’06. 2006,
          </p>
          <p>
            S. 137–146.
[
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ] Edgar Chávez u. a. “Searching in metric spaces”. In: ACM Comput.
          </p>
          <p>
            Surv. 33 (3 2001), S. 273–321.
[
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ] Paolo Ciaccia und Marco Patella. “The M 2-tree: Processing
Complex Multi-Feature Queries with Just One Index”. In: DELOS
Workshop: Information Seeking, Searching and Querying in Digital
Libraries. 2000.
[
            <xref ref-type="bibr" rid="ref31 ref51 ref7">7</xref>
            ] Paolo Ciaccia, Marco Patella und Pavel Zezula. “M-tree: An
Efficient Access Method for Similarity Search in Metric Spaces”. In:
VLDB’97, Proceedings of 23rd International Conference on Very
Large Data Bases, August 25-29, 1997, Athens, Greece. Hrsg. von
          </p>
          <p>
            Matthias Jarke u. a. 1997, S. 426–435.
[
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ] Ronald Fagin, Amnon Lotem und Moni Naor. “Optimal
aggregation algorithms for middleware”. In: Proceedings of the twentieth
ACM SIGMOD-SIGACT-SIGART symposium on Principles of
database systems. PODS ’01. 2001, S. 102–113.
          </p>
          <p>Antonin Guttman. “R-trees: a dynamic index structure for spatial
searching”. In: Proceedings of the 1984 ACM SIGMOD
international conference on Management of data. SIGMOD ’84. 1984, S. 47–
57.</p>
          <p>Yannis Ioannidis. “The history of histograms (abridged)”. In:
Proceedings of the 29th international conference on Very large data
bases - Volume 29. VLDB ’03. 2003, S. 19–30.</p>
          <p>Yossi Rubner, Carlo Tomasi und Leonidas J. Guibas. “The Earth
Mover’s Distance as a Metric for Image Retrieval”. In: Int. J. Comput.</p>
          <p>Vision 40 (2 2000), S. 99–121.</p>
          <p>Hanan Samet. Foundations of Multidimensional and Metric Data
Structures (The Morgan Kaufmann Series in Computer Graphics and</p>
          <p>
            Geometric Modeling). 2005.
[
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ] Ingo Schmitt. Ähnlichkeitssuche in Multimedia-Datenbanken -
Re
          </p>
          <p>
            trieval, Suchalgorithmen und Anfragebehandlung. 2005.
[
            <xref ref-type="bibr" rid="ref14 ref38 ref58">14</xref>
            ] Ingo Schmitt. “QQL: A DB&amp;IR Query Language”. In: The VLDB
          </p>
          <p>
            Journal 17 (1 2008), S. 39–56.
[
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ] Ingo Schmitt und Sören Balko. “Filter ranking in high-dimensional
          </p>
          <p>
            space”. In: Data Knowl. Eng. 56 (3 2006), S. 245–286.
[
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ] Enrique Vidal. “An algorithm for finding nearest neighbours in
(approximately) constant average time”. In: Pattern Recognition Letters
4.3 (1986), S. 145 –157.
[
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ] Roger Weber, Hans-Jörg Schek und Stephen Blott. “A Quantitative
          </p>
          <p>Analysis and Performance Study for Similarity-Search Methods in
High-Dimensional Spaces”. In: Proceedings of the 24rd
International Conference on Very Large Data Bases. VLDB ’98. 1998, S. 194–
205.</p>
          <p>Lofti A. Zadeh. “Fuzzy Logic”. In: Computer 21 (1988), S. 83–93.</p>
          <p>David Zellhöfer und Ingo Schmitt. “A preference-based approach
for interactive weight learning: learning weights within a
logicbased query language”. In: Distributed and Parallel Databases 27
(1 2010), S. 31–51.</p>
          <p>David Zellhöfer und Ingo Schmitt. “Approaching Multimedia
Retrieval from a Polyrepresentative Perspective”. In: Adaptive Multimedia
Retrieval. Context, Exploration, and Fusion. Hrsg. von Marcin
Detyniecki u. a. Bd. 6817. Lecture Notes in Computer Science. 2011,
S. 46–60.</p>
        </sec>
        <sec id="sec-3-2-5">
          <title>Alexander Grebhahn</title>
          <p>Institute of Technical and
Business Information Systems
University of Magdeburg
grebhahn@st.ovgu.de</p>
        </sec>
        <sec id="sec-3-2-6">
          <title>Reimar Schröter</title>
          <p>Institute of Technical and
Business Information Systems
University of Magdeburg
rschroet@st.ovgu.de</p>
        </sec>
        <sec id="sec-3-2-7">
          <title>David Broneske</title>
          <p>Institute of Technical and
Business Information Systems
University of Magdeburg
dbronesk@st.ovgu.de</p>
        </sec>
        <sec id="sec-3-2-8">
          <title>Veit Köppen</title>
          <p>Center for Digital Engineering
University of Magdeburg
vkoeppen@ovgu.de</p>
        </sec>
        <sec id="sec-3-2-9">
          <title>Martin Schäler</title>
          <p>Institute of Technical and
Business Information Systems
University of Magdeburg
schaeler@ovgu.de</p>
        </sec>
        <sec id="sec-3-2-10">
          <title>Gunter Saake</title>
          <p>Institute of Technical and
Business Information Systems</p>
          <p>University of Magdeburg
saake@ovgu.de
ABSTRACT
In recent years, index structures for managing
multi-dimensional data became increasingly important. Due to
heterogeneous systems and specific use cases, it is a complex
challenge to find an appropriate index structure for specific
problems, such as finding similar fingerprints or micro traces in a
database. One aspect that should be considered in general is
the dimensionality and the related curse of dimensionality.</p>
          <p>However, dimensionality of data is just one component
that have to be considered. To address the challenges of
finding the appropriate index, we motivate the necessity of
a framework to evaluate indexes for specific use cases.
Furthermore, we discuss core components of a framework that
supports users in finding the most appropriate index
structure for their use case.</p>
          <p>Keywords
index structures, evaluation, multi-dimensional data
1. INTRODUCTION</p>
          <p>In the last years, data storage and management in
computer-aided systems became more advanced, because of an
increasing amount of unstructured data being stored. For
example, in multimedia databases images or videos are stored
and analyzed to find similar data items. A special use case
is the Digi-Dak Database Project1, where multi-dimensional
feature vectors of fingerprints and micro traces are stored in
a database. To manage these data items, methods are
required to handle unstructured data in an appropriate way.
1https://omen.cs.uni-magdeburg.de/digi-dak
24th GI-Workshop on Foundations of Databases (Grundlagen von
Datenbanken), 29.05.2012 - 01.06.2012, Lübbenau, Germany.</p>
          <p>Copyright is held by the author/owner(s).</p>
          <p>It is possible to extract feature vectors from an item to
manage the data in a compressed and meaningful way. For
managing these feature vectors, multi-dimensional index
structures can be used. In general, the question arises, which
index structure supports managing data best. Throughout
this paper, index structure performance describes suitability
with respect to a specific use case. However, we analyze core
aspects that have to be considered, if trying to answer this
for a specific use case. In order to achieve a reconstructible
and valid comparison, we present the idea of a framework
that allows the comparison of different index structures in a
homogeneous test environment.</p>
          <p>This paper is organized as follows: In Section 2, we give
a short overview of basic components that have to be
considered for evaluating the performance of index structures.
Within Section 3, we give an overview of additional
challenges, which have to be handled by using index structures
in a specific use case. Finally, in Section 4, we present core
components that a framework needs for quantitatively
evaluation of multi-dimensional index structures with respect to
different use cases.</p>
          <p>BASIC CHALLENGES</p>
          <p>Querying multi-dimensional data in an efficient way is
a complex challenge. Within the last decades, new index
structures are proposed and existing once are improved to
solve this challenge. Regarding a specific use case, it is not
suitable to consider an index structure in isolation.
Additionally data properties, used query types, and underlying
distance metrics have to be taken into account. In this
section, we give a short overview of these four basic challenges.</p>
          <p>
            Characteristics of data cause main challenges of querying
data within a database system. For instance, data
dimensionality has to be considered, because existing index
structures are generally effected by the curse of dimensionality
[
            <xref ref-type="bibr" rid="ref23 ref31 ref51 ref7">7, 23</xref>
            ]. As a result, index structures, that are suitable for
a small number of dimensions are not necessarily suitable
for a larger amount of dimensions. An additional important
property is the data distribution, because some index
structures are more practicable for clustered data than others.
Furthermore, value domain and the type of the data has to
be considered.
          </p>
          <p>Query Types</p>
          <p>
            Based on the work of Bo¨hm et al. [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ], query types can be
categorized into two groups: -similarity queries and
NearestNeighbor-similarity (NN-similarity) queries. The former
describes a query, resulting in a set of data points being
situated in a defined -distance to the query point, whereas the
latter results in a data point being the nearest item to the
query point. Describing these two groups, the -similarity
and NN-similarity has to be defined.
          </p>
          <p>Definition: -similarity Query.</p>
          <p>
            Two data points p1 and p2 are -similar if and only if
d(p1, p2) ≤ . The function d defines a similarity measure
for two points. In literature, similarity measures are
often replaced by distance metrics, which we review in
Section 2.3. For finding all points in the data base being
similar, an -similarity query is executed. A special case of
the -similarity is represented for = 0, because this implies
two identical points and an exact match is executed [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ].
Definition: NN-similarity Query.
          </p>
          <p>The data point p1 is NN-similar to p2 with respect to a
data base of points DB if and only if ∀p ∈ DB, p 6= p1 :
d(p2, p1) ≤ d(p2, p). For NN-similarity queries, all points
in a database are retrieved that are NN-similar to the query
point. An extension to the NN-similarity query is presented,
when instead of a nearest neighbor, k nearest neighbors have
to be retrieved. In this paper, we call the resulting query
k-NN query.</p>
          <p>
            Apart from the mentioned similarity range query, window
queries are common queries and often called range queries in
literature [
            <xref ref-type="bibr" rid="ref24">24</xref>
            ]. These window queries are defined by intervals
for every queried dimension.
2.3
          </p>
          <p>To execute similarity queries, we require a function
computing the similarity of two data items. To this end,
similarity for equal points is 1 whereas the maximum dissimilarity
is expressed by 0. Equivalent information is delivered from
distance metrics, whereupon two data items are more
similar, the smaller their distance is.</p>
          <p>The most common distance metrics are Minkowsky class
metrics, also called Lp distance metrics. The distance of two
data items x and y is computed by:</p>
          <p>Lp(x, y) =
d
X (xi − yi)p 1/p.</p>
          <p>
            i=1
By choosing different values for p, different representatives
of this class are produced. For p = 2, the Euclidean distance
metric is generated, which dominates common database
systems according to Bugatti et al. [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ].
          </p>
          <p>
            Beneath these distance metrics, there are many other
metrics, such as Canberra [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ] or Dynamical-Partial [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ]
distance function. In contrast to Minkowsky distance
functions, Dynamical-Partial distance metric dm uses only the
m smallest distances for the computation of the distance of
data items [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ]. As a result, in some specific use cases, it
can be a great benefit using the Dynamical-Partial distance
metric, because the influence of particular dimensions can
deteriorate the distance of data items.
          </p>
          <p>R6</p>
          <p>R4</p>
          <p>R12</p>
          <p>R10</p>
          <p>R2</p>
          <p>R8
A R9 B</p>
          <p>R7
C</p>
          <p>
            Since we aim at providing a comprehensive set of indexes,
we want to consider different types of index structures. Thus,
we use the classification of Weber et al. [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ] to address a
broad variety of different approaches. Thus, index
structures are classified by partitioning of the data space. Index
structures that partition the whole space are called space
partitioning methods, whereas data partitioning methods
partition the necessary space according to the location of
data points [
            <xref ref-type="bibr" rid="ref23 ref32 ref52 ref8">8, 23</xref>
            ]. Consequently, there are regions that
are not taken into account by performing a query on data
partitioning methods.
          </p>
          <p>
            Alternatively, Andoni and Indyk [
            <xref ref-type="bibr" rid="ref2 ref26 ref46">2</xref>
            ] classify index
structures by query results. There are exact index structures that
guarantee to retrieve the exact result of a query. Although,
this behavior is usually preferred, there are
approximationbased index structures, guaranteeing to retrieve points that
are similar to the correct result of a query. For instance for
kNN queries, approximation-based index structures provide k
near neighbors to the query point instead of all exact nearest
neighbors. Hereby, the quality of the retrieved results, called
precision, can differ significantly, because approximate
index structures aim at improving the query performance by
decreasing the precision. Nevertheless, an
approximationbased index should hold a threshold, because resulting data
would not be useful. In the following sections, we present
some representatives of index structures. First, exact index
structures, such as R-Tree [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ], Pyramid Technique [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ], and
VA-File [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ] are introduced. Subsequently, p-stable
Locality Sensitive Hashing [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ] as an approximation-based index
structure is presented.
2.4.1
          </p>
          <p>Giving an overview of existing index structures, we
introduce promising exact index structures in this section.
Furthermore, the difference between space partitioning and data
partitioning methods is stated by presenting at least one
index structure for each category.</p>
          <p>R-Tree.</p>
          <p>
            One of the most important multi-dimensional index
structures is the R-Tree [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ], introduced by Guttmann in 1984.
Since this time, many new index structures are proposed
based on the ideas used in the R-Tree. For instance
R+Tree [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ], R∗-Tree [
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ], X-Tree [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ], A-Tree [
            <xref ref-type="bibr" rid="ref19 ref43">19</xref>
            ], and
SRTree [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ]. Beside these structures, there are many more
index structures which are not mentioned here. For
further informations, see Samet [
            <xref ref-type="bibr" rid="ref20 ref44">20</xref>
            ], giving a comprehensive
overview of existing index structures.
(0;1)
(0,5;0,5)
(b)
(0;1)
(0,5;0,5)
          </p>
          <p>However, the basic idea of these index structures is to
administrate points hierarchically in a tree. The R-Tree
partitions the data space using minimum bounding rectangles
(MBR). A minimum bounding rectangle can be described
by two points, being the end of the diagonal of the
rectangle. Stepwise, the space is partitioned by MBRs, so that the
superordinate MBR encloses all of its subordinate MBRs, as
we visualize in Figure 1.</p>
          <p>
            With increasing dimensionality, R-Trees face the challenge
of overlapping MBRs. A query rectangle, situated in a
region, where two or more MBRs overlap (like the MBR R2
and R3 in Figure 1), forces the R-Tree to follow up two or
more different routes in the tree. Thus, the query
performance decreases [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ]. To overcome this disadvantage other
index structures that we mentioned before, are developed.
Pyramid Technique.
          </p>
          <p>
            An example for an exact space partitioning index
structure is the Pyramid Technique, which was introduced by
Berchtold et al. [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ]. The Pyramid Technique divides an
ndimensional space into 2d pyramids [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ]. A d dimensional
normalized point x is inserted into a pyramid according to
the dimension jmax with its maximum distance to the center
of the data space. Thus, the pyramid number pi is computed
as follows:
i =
jmax
(jmax + d)
if xjmax &lt; 0, 5
if xjmax ≥ 0, 5
          </p>
          <p>Second, for managing the space enclosed by a pyramid,
the pyramids are divided in pyramid slices. According to the
query types supported by the index structure, the partition
of pyramids can be done in different ways. In Figure 2,
we present two different possible methods for partitioning a
pyramid, for a two dimensional normalized space.</p>
          <p>
            In particular, the partition of Figure 2 (a) is proposed
by Berchtold et al. [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ] to support range queries. The other
partition, shown in Figure 2 (b), is used by the approach of
Lee and Kim [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ] to support k-NN queries. It is possible to
use the partitioning from Berchtold et al. for k-NN queries as
well, but not in an efficient way. Anyway, a point is inserted
into the slice depending on its distance to the center of the
space. To sum up, for supporting different query types in
an efficient way, different pyramid partitions are required.
VA-File.
          </p>
          <p>
            In 1997, Weber and Blott [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ] introduce the VA-File to
overcome the curse of dimensionality. The VA-File is an
improved sequential scan, because Weber et al. noticed a
11
10
01
00
          </p>
          <p>A B</p>
          <p>F
I</p>
          <p>H
Z</p>
          <p>X
00</p>
          <p>C</p>
          <p>E
G
Y
01</p>
          <p>T</p>
          <p>D
W</p>
          <p>V
U
10</p>
          <p>S</p>
          <p>J
Q</p>
          <p>L
R</p>
          <p>M</p>
          <p>K
N</p>
          <p>P
O
11</p>
          <p>
            Figure 3: Partitioning of the VA-File.
degeneration of most index structures to a sequential scan, if
the dimensionality of data points exceeds a certain limit [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ].
Hence, the authors propose to accelerate the sequential scan
by using vector approximation.
          </p>
          <p>The VA-File divides each dimension of the space into 2b
equally filled cells, where b is an user defined amount of bits
per dimension. Each cell is labeled with a unique bit string,
being the concatenation of the corresponding bit strings for
every dimension. For every point, the bit string of the cell is
stored, which the point is inserted into. Thus, the VA-File
uses two lists: an approximation file that stores the bit string
of the cells for every point and a vector file with the vector
data for each point. An exemplary space partitioning and
the corresponding approximation file can be seen in Figure 3.</p>
          <p>Generally, the query algorithm of the VA-File traverses
the whole approximation file to collect suitable candidates
for the query result at first. After that, exact comparisons
between the vector data of the candidates and the query are
performed.</p>
          <p>
            The approximation technique of the VA-File helps to
reduce hard-disk accesses, because small bit strings can be
kept in main memory. Even if the whole approximation
file does not fit into the main memory, the sequential
examination of the approximations reduces disk access costs
compared to random accesses to many data items [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ].
Another advantage is, in contrast to the Pyramid Technique,
the availability of different algorithms to efficiently support
all query types being executable on a sequential scan
without adaption of the space partitioning of the VA-File.
          </p>
          <p>
            Typical representatives for an approximation-based index
structure are based on hash schemes. Apart from common
hashing algorithms, scattering inserted data points over the
amount of buckets is not applicable for similarity queries.
Consequently, there is a need for hash functions, causing
collisions when hashing locally near situated points. This
challenge is handled by Locality Sensitive Hashing (LSH).
The aim of LSH is to map the key to a one dimensional
hash value. Thus, all comparisons are made on the hash
value instead of a high dimensional key. Supporting nearest
neighbor queries, LSH uses (P 1, P 2, r, cr)-sensitive functions
h to compute the hash value. These functions h have to fulfill
the following constraints [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ]:
          </p>
          <p>For every dataset in a d-dimensional space p, q ∈ Rd:
1. if ||p − q|| ≤ r, then P r[h(p) = h(q)] &gt; P 1
2. if ||p − q|| ≥ cr, then P r[h(p) = h(q)] &lt; P 2
The first constraint demands that the probability for two
points to be hashed into the same bucket has to be larger
than P 1 if their distance is smaller than r. Whereas, if their
distance is bigger than cr, the probability should be smaller
than P 2. In order to be an useful locality sensitive function,
P 1 should be much bigger than P 2.</p>
          <p>Improving the precision of the index structure, usually
several hash tables with different hash functions are used.
Consequently, the need for (P 1, P 2, r, cr)-sensitive functions
is obvious. A promising family of hash functions is used in
p-stable LSH.
p-stable LSH.</p>
          <p>The approach of p-stable LSH is based on p-stable
distributions. A distribution D is p-stable for p ≥ 0 if for any n the
real numbers v1, ..., vn and i.i.d. random variables X1, ..., Xn
with distribution D, the following constraint is fulfilled:
n
X(viXi) ∼
i=1
n
X(kvikp)
i=1
1/p</p>
          <p>
            X,
∼ means the operands have the same distribution and X is
a random variable from the distribution D [
            <xref ref-type="bibr" rid="ref18 ref42">18</xref>
            ].
          </p>
          <p>
            Using d random variables from D to form a d-dimensional
Vector ~a, the scalar of vector ~a and the data point ~v result in
d 1/p
a random variable with distribution P (kvikp) X [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ].
i=1
Several of these scalar products with different vectors can
be used to estimate k~vkp (the Lp distance metric). The
corresponding distributions are:
• The Cauchy Distribution 1DC(0, 1), defined by the
density function c(x) = (π(1+x2)) is 1-stable and can be
used to estimate the Manhattan distance metric.
• bTyhethGeaduesnsisainty(Nfuonrcmtiaoln) Dg(ixst)ri=bu√ti12oπneD−xG2(/02, 1is),2d-setfianbelde
and can be used to estimate the Euclidean distance
metric.
          </p>
          <p>Instead of estimating a distance metric, the scalar
product with vectors from p-stable distributions can be used to
compute hash values of the data points, because the scalar
product maps the vectors to a one dimensional space.
Furthermore, the result of the scalar product has the same
distribution as the Lp distance metric, which guarantees the
(P 1, P 2, r, cr)-sensitiveness.</p>
          <p>After giving a short introduction to general challenges of
indexing multi-dimensional data, in this section we provide
existing challenges of evaluating the performance of index
structures for a specific use case. For giving an overview
of possible challenges when evaluating index structures, we
group the challenges into three groups.
3.1</p>
          <p>Parameter of the Index Structures</p>
          <p>Some index structures have specific parameters for tuning
their performance. Thus, when evaluating the performance
of index structures, these parameter have to be considered
as well. For index structures given in Section 2.4, these
parameter are: the minimum and the maximum number of
points within a MBR for the R-Tree, the number of slices a
pyramid is divided in, for the Pyramid Technique, and the
length of the bit vector for the VA-File. The parameters of
the approximation-based index structure p-stable LSH
presented in Section 2.4 are number of hash functions and width
of hash buckets.</p>
          <p>Thus, we have to assume, that these parameters have an
impact on the performance of index structures. Therefore,
it is necessary to analyze suitable parameter values when
trying to identify an appropriate index structure for a given
use case. However, there are some problems considering an
appropriate value of some parameters. For example, the
vectors used for p-stable LSH are randomly chosen from
pstable distributions. As a result of this random component
it is possible that the performance and precision results of
the same index structure created with different seeds of the
random component can differ very much, within the same
use case. This is problematic when trying to quantitatively
evaluate the index structure.
3.2</p>
          <p>Workload and used Queries</p>
          <p>
            Although, two different applications can deal with the
same data, they can have a different workload. For that
reason, they can differ in requirements of index structures.
The workload of an application depends on the used query
types. Yet, it is obvious, not to use the Pyramid Technique
presented from Berchtold et al. [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ] for performing a k-NN
query, but the version presented by Lee and Kim [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ],
because it is optimized for this query type.
          </p>
          <p>
            For defining the workload of a database system we use
a definition inspired by Ahmad et al. [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ]. As a result, the
workload is defined by the percentage of the query types
used and the amount of concurrent requests performed.
          </p>
          <p>In addition to use cases and workload, the test
environment has an impact on the performance of each index
structure. As already mentioned, the VA-File is optimized for
database systems, storing data items on a disk and not in
main memory. Evaluations of VA-File and sequential scan,
result in different conclusions according to an evaluation
with an in-memory database or a database storing items
on the disk. Consequently, it is necessary to consider the
underlying storage management of the database system as
well.</p>
          <p>Beside the storage management of a database, the amount
of main memory and the CPU performance are other impact
factors to the performance.</p>
          <p>TOWARDS A FRAMEWORK</p>
          <p>Since we aim at providing a comprehensive library of use
cases and suitable indexes, we motivate a framework to give
users the possibility to evaluate own use cases with different
index structures. In this paper, we summarize key aspects
of a framework that supports four groups. In Figure 4, we
give an overview of these four groups.</p>
          <p>First, the framework has to be extensible w.r.t. four key
aspect, we present in Section 2. In other words, for an user,
it has to be possible to implement, integrate, and evaluate
own index structures. Furthermore, it has to be possible
to extend the framework and existing index structures with
additional distance metrics and also other query types.
Finally, it has to be possible to integrate existing data in the
framework and to create data with specific properties like a</p>
          <p>USER</p>
          <p>
            FRAMEWORK
workload
visualization
test environment
simulator
extensibility
specific data distribution. Thus, creating data distributions
is not trivial, an interface has to be created for importing
existing data sets and communicating with systems like R,
see for instance [
            <xref ref-type="bibr" rid="ref14 ref38 ref58">14</xref>
            ].
          </p>
          <p>Adaptability to Different Workload</p>
          <p>In real world applications, the workload differs quite much.
On the one hand, there are use cases that use only read
transactions. On the other hand, the workload can consist
of read and write transactions. Thus, the performance
results of workloads can differ very much. Hence, an interface
is needed for importing workloads from existing systems. A
further requirement, is to support standardized benchmarks,
e.g. the TPC-H Benchmark2.</p>
          <p>Beside the queries used, the desired precision of the query
results have to be defined by the user. Thus, if approximate
results are allowed, the user has to define the accuracy of
the results. Nevertheless, the precision depends on the data
properties, the given distance metric, the used queries and
the parameters of the index structure as well.
4.3</p>
          <p>Existing index structures are created with respect to
different optimization criteria. As already mentioned, the
VAFile is optimized for reducing disk accesses. Consequently,
another criteria our framework has to consider is the
environment the tests are located in. Thus, within the
framework a parameter has to exist, for setting whether the test
is for an in-memory database or if a disk access is needed for
accessing the data. Due to an assumption, that the access
time of data differs very much considering Hard-Disk-Drives
and Solid-State-Disks, the framework should have a
component for virtualizing the disk access. With this component
it is possible to perform tests on one system while
simulating an access delay of another system. In addition to this
storage device simulator, a simulator for all hardware
components is required to give an useful hint about the best
performing index structure.</p>
          <p>Additionally, within the framework a parameter has to
exist for defining the values of some index structure
parameters such as the maximum number of data items of leaves
of the R-Tree.
4.4</p>
          <p>Visualization</p>
          <p>In case the index structure has to struggle with a specific
data distribution or query type, it can be useful to visualize
the space partitioning of the index structure. With this
visualization, further hypothesis can be drawn on the benefits
2http://www.tpc.org/tpch/
or pit-falls of the chosen index structure. For instance, the
user is able to follow the split of MBRs in the R-Tree and
can easily identify overlapping regions while the tree is
being constructed. Another aspect, being worth to visualize,
is a statistic on query performance. These statistics help to
analyze the performance of different index structures for a
given workload or an index structure under different
workloads. Apart form the query performance, other interesting
values may be worth visualizing. The time spent on
constructing the index structure is important for systems with
many delete and update queries, because a reconstruction of
the index is sometimes necessary when a certain threshold
of changed data is reached. Furthermore, when using an
approximate index structure, the precision of executed queries
and the overall precision of the index structure is worth
visualizing, because it has an impact on the suitability of an
index structure for a special use case.</p>
          <p>Working with the Framework</p>
          <p>Finally, our framework shall help finding the most
suitable index structures for a given use case. For this, the
expected workload has to be known. These parameters
include supported query types, exact or approximate results,
data dimensionality and distribution, amount of data, the
delay of the data access, and the environment. By finding
suitable index structures for the given parameters, there are
index structures that do not have to be taken into account,
because they do not support certain query types or work
approximately although the result is restricted to be exact.
After excluding unsuitable index structures, the remaining
index structures are evaluated under the given workload. By
reviewing the performance results, the user can choose the
suitable index structure for her use case.</p>
          <p>RELATED WORK</p>
          <p>
            In the last decades, many new index structures are
created [
            <xref ref-type="bibr" rid="ref10 ref22 ref29 ref34 ref49 ref5 ref54">5, 10, 22</xref>
            ]. In addition, existing index structures are
improved for supporting new query types [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ] or to increase
performance [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ]. However, within the presented evaluation
of these index structures only a small set of existing
index structures is considered. For example, within Berchtold
et al. [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ], the Pyramid Technique is evaluated against
XTree, Hilbert R-Tree, and sequential scan. Therefore, it is
problematic to identify, which is the most appropriate
index structure for a given problem. Additionally, different
performance evaluations are done in different environments
with different data characteristics. So, it is problematic to
generalize the results of an evaluation.
          </p>
          <p>
            For giving a comparison of the performance of
multi-dimensional index structures, there already exists some
frameworks, like the GiST 3 framework or the MESSIF [
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ]
framework. In contrast to the framework we present here, these
frameworks have some additional constraints. For example,
the GiST framework only focuses on trees, hence no other
multi-dimensional index structures such as the VA-File or
the Pyramid Technique are considered, while the MESSIF
framework only focuses on metric data. Another framework
limiting the available index structures is introduced by Muja
et al. [
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ]. The aim of this framework is to optimize
parameters of approximate index structures in order to match the
required precision under given data distributions.
3http://gist.cs.berkeley.edu/
          </p>
          <p>CONCLUSION</p>
          <p>In this paper, we provide an overview of existing
challenges in finding an appropriate index for multi-dimensional
data for a specific use case. First, we explain distance
metrics and common query types that have to be considered.
Second, the parameters of the index structures can have an
impact on the performance of an index structure. Third, for
users, it has to be possible to define own workload pattern
and the environment, the application is located in.</p>
          <p>For supporting these characteristics of real-world use cases
we present requirements of a framework we intend to
develope. Our framework has to support four key aspects.
Namely, it has to be extensible, support different workload
patterns, virtualize different use case environments, and
contain a visualization component for improving user
experiences.</p>
          <p>ACKNOWLEDGMENTS</p>
          <p>The work in this paper has been funded in part by the
German Federal Ministry of Education and Science (BMBF)
through the Research Programme under Contract No.
FKZ:13N10817 and FKZ:13N10818. Additionally we want
to thank Sandro Schulze for giving us useful comments.</p>
        </sec>
        <sec id="sec-3-2-11">
          <title>Alexander Adam</title>
          <p>dimensio informatics GmbH
Brückenstraße 4
09111 Chemnitz
alad@dimensio-informatics.de</p>
        </sec>
        <sec id="sec-3-2-12">
          <title>Sebastian Leuoth</title>
          <p>dimensio informatics GmbH
Brückenstraße 4
09111 Chemnitz
lese@dimensio-informatics.de</p>
        </sec>
        <sec id="sec-3-2-13">
          <title>Wolfgang Benn</title>
          <p>Technische Universität</p>
          <p>Chemnitz
Straße der Nationen 62</p>
          <p>
            09107 Chemnitz
benn@cs.tu-chemnitz.de
Keywords
Datenbankenerweiterung, Indizierung, Transparent
ZUSAMMENFASSUNG
Aktuelle Datenbanksysteme bieten dem Nutzer eine
enorme Funktionsvielfalt [
            <xref ref-type="bibr" rid="ref12 ref32 ref36 ref52 ref56 ref8">12, 8</xref>
            ]. Selbst sehr spezielle Gebiete
wie z. B. Geodatentypen [
            <xref ref-type="bibr" rid="ref14 ref33 ref38 ref53 ref58 ref9">9, 14</xref>
            ] werden unterstützt.
Abhängig vom verwendeten Datenbanksystem können diese
Fähigkeiten durch einen Nutzer noch erweitert werden.
Beispiele hierfür wären Funktionen und nutzerdefinierte
Datentypen [
            <xref ref-type="bibr" rid="ref12 ref32 ref36 ref52 ref56 ref8">12, 8</xref>
            ]. Alle diese Erweiterungen sollten
natürlich nicht die Geschwindigkeit des Datenbanksystems
negativ beeinflussen. So gibt es neben normalen Indexen auch
Funktionsindexe und Indexe für nutzerdefinierte
Datenhaltungen [
            <xref ref-type="bibr" rid="ref2 ref20 ref26 ref44 ref46">20, 2</xref>
            ]. Die Möglichkeiten, zu indizieren sind dabei, je
nach Datenbankhersteller, vorbestimmt und selbst nicht
erweiterbar. Allen diesen Techniken ist weiterhin gemein, dass
sie direkt am Datenbanksystem ansetzen und teils auch in
der Anfragesprache sichtbar sind. Es ist daher nicht einfach
möglich, eine Anwendung, die fest vorgegeben ist, mittels
solcher Techniken zu beschleunigen. In diesem Papier
wollen wir eine Möglichkeit vorstellen, mit der eine solche
Beschleunigung auch dann noch möglich ist, wenn weder das
Datenbanksystem noch die Anwendung im Zugriff des
Nutzers stehen. Verdeutlicht wird dieses am Beispiel der
JDBCSchnittstelle [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ].
Datenbanksysteme haben in den letzten Jahrzehnten ein
breites Anwendungsspektrum erschlossen. Funktionalitäten
wurden oft aufgrund der Bedürfnisse der Anwender
hinzugefügt [
            <xref ref-type="bibr" rid="ref17 ref41">17</xref>
            ]. So gibt es heute nutzerdefinierte Datentypen,
nutzerdefinierte Datenablagen und selbst elementare Dinge wie
Indexe, die durch einen Nutzer in ihrer Struktur bestimmt
werden.
          </p>
          <p>Allen gemein ist eine gewisse Abhängigkeit der
Implementation vom Datenbankhersteller und einer damit
verbundenen schlechten Portabilität der entwickelten Module.
Besonders im Bereich der Indizierung um den es in diesem Papier
gehen soll, stellen sich aber noch weitere Probleme dar.</p>
          <p>Normalerweise kann ein Index auf einer beliebigen
Tabelle und deren Spalten definiert werden. Die Anwendung
bemerkt nur insoweit etwas von dieser Aktion, als dass
Anfragen schneller beantwortet werden sollten.</p>
          <p>Ein kleines Beispiel soll dies verdeutlichen. Die folgende
Anfrage gibt alle Mitarbeiterinformationen zurück, die zu
Mitarbeitern mit mehr als 1000 Euro Gehalt gehören:
Listing 1: SQL-Anfrage mit Bedingung im WHERE-Teil
SELECT ∗
FROM mitarb</p>
          <p>WHERE mitarb.gehalt &gt; 1000
Für die Anwendung, die diese Anfrage an die Datenbank
stellt, ist es vollkommen unerheblich, ob sich auf der
Gehaltsspalte der Mitarbeitertabelle ein Index befindet oder
nicht. Die Anfrage würde, ob nun mit oder ohne Index,
immer gleich aussehen.</p>
          <p>Wir nehmen nun an, dass die Gehaltsspalte durch einen
anderen Typ ersetzt werden soll, Gründe hierfür könnten
eine ezffiientere Speicherung oder bessere
Zugrisffmöglichkeiten sein. Wir nehmen weiter an, dass das Datenbanksystem
für den neuen Typ den &gt;-Operator nicht mehr anbietet. Es
muss nun eine Vergleichsfunktion geschrieben werden, die
die Aufgabe des &gt;-Operators übernimmt. Diese
tiefgreifende Umstrukturierung scheint nun bis in die Anfrage durch,
ist also nicht mehr transparent:
Listing 2: SQL-Anfrage mit Anfrage an eine
nutzerdefinierte Funktion im WHERE-Teil</p>
          <p>SELECT ∗
FROM mitarb</p>
          <p>WHERE pruefe( mitarb.gehalt, 1000) = 1
Eine Anwendung, die der Nutzer nicht verändern kann,
würde also von diesem neuen Typ ausschließlich dann
profitieren, wenn der Hersteller diese Möglichkeit vorsieht oder
standardmäßig einbaut. Für bestehende Umgebungen ist all
dies also keine Option.</p>
          <p>
            Im obigen Fall würde noch die Möglichkeit des
automatischen SQL-Umschreibens einen Ausweg bieten [
            <xref ref-type="bibr" rid="ref12 ref32 ref36 ref52 ref56 ref8">12, 8</xref>
            ]. Dabei
wird eine materialisierte Sicht angelegt. Anschließend wird
der Datenbank mitgeteilt, dass bestimmte Anfragen nicht so
gestellt werden sollen, wie sie der Anwender abgesetzt hatte,
sondern in veränderter Form auf der materialisierten Sicht
abgearbeitet werden. Das Vorgehen muss vom
Datenbanksystem aber auch unterstützt werden. Je nach Ausprägung
müssen außerdem genaue Übereinstimmungsmerkmale
angegeben werden, mit denen das Umschreiben ausgelöst wird.
Scheitert das Umschreiben, weil es eine kleine Varianz in der
Anfrage gibt, wird das Ergebnis u. U. falsch.
          </p>
          <p>Im Folgenden werden wir eine Möglichkeit aufzeigen, wie
es ohne einen Eingriff – weder bei der Anwendung noch
bei der Datenbank – möglich ist, einen Index weitestgehend
transparent in ein bestehendes System zu integrieren.
Dazu wird zunächst untersucht, an welchen Stellen und wie in
die Kommunikation von Anwendung und Datenbanksystem
eingegrieffn werden kann. Anschließend wird auf die
Herausforderungen eingegangen, die sich bei dem hier genutzten
Ansatz zeigen und wie diese gelöst werden können.
2. INTEGRATIONSPUNKTE
2.1</p>
          <p>Überblick
Um mögliche Integrationspunkte zu finden, muss zunächst
untersucht werden, wie eine Anwendung mit einem
Datenbanksystem kommuniziert. Üblicherweise werden hierfür
Datenbanktreiber eingesetzt. Das sind Programmbibliotheken,
die die Anfragen in ein dem Datenbanksystem
verständliches Protokoll überführen und dieses dann übermitteln. Der
Datenbankserver dekodiert das Protokoll und arbeitet die
darin enthaltenen Anweisungen ab.
Abbildung 1: Schematische Darstellung des
Zusammenspiels zwischen Anwendung und Datenbank. Die
Anwendung verwendet ein API für einen
Datenbanktreiber, welcher vom Datenbankhersteller zur
Verfügung gestellt wird. Dieser Treiber ist dann für
die Kommunikation mit dem Datenbanksystem über
ein Netzwerk verantwortlich.</p>
          <p>Das beschriebene Szenario – abgebildet in Abbildung 1 –
offenbart drei Möglichkeiten, eine Integration vorzunehmen:
• den Datenbanktreiber,
• die Kommunikation über das Netzwerk und
• das Datenbanksystem selbst.</p>
          <p>
            Im Folgenden werden wir uns auf den Datenbanktreiber,
also die Anwendungsseite, konzentrieren. Die Vorgehensweise
bei der Integration in die Kommuniktion ist bereits in [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ]
beschrieben. Möglichkeiten, ein Datenbanksystem zu
erweitern, wurden in den letzten Jahrzehnten vielfach an anderer
Stelle beschrieben [
            <xref ref-type="bibr" rid="ref2 ref20 ref26 ref28 ref4 ref44 ref46 ref48">4, 20, 2</xref>
            ].
2.2
          </p>
          <p>
            Datenbanktreiber
Der Datenbanktreiber ist die Schnittstelle für einen
Anwendungsprogrammierer, um mit dem Datenbanksystem zu
kommunizieren. Er stellt Funktionen bereit, um
Verbindungen zu verwalten und Datenbankanfragen abzuarbeiten (sei
es nun SQL oder irgendeine andere Art der Anfrage) [
            <xref ref-type="bibr" rid="ref11 ref29 ref35 ref49 ref5 ref55">5,
11</xref>
            ]. Es ist wichtig, zu beobachten, dass dabei jeder
Abarbeitungsschritt von der Anwendung ausgelöst wird. Alle
Ergebnisse einer Anfrage werden nicht einfach als Resultat
einer query()-Funktion zurückgegeben, sondern müssen
aktiv angefordert werden. Eine typische Schrittfolge, die eine
Anwendung verwenden könnte, ist in Listing 3 aufgezeigt.
Listing 3: Mögliche, stark reduzierte, Schrittfolge
bei der Nutzung einer Datenbankbibliothek, hier
JDBC. Es wird zunächst eine Verbindung geöffnet,
dann ein Statement mit ungebundenen Variablen
vorbereitet und gebunden. Schließlich werden die
angefragten Daten abgeholt.
          </p>
          <p>Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/testdb",
"username",
"password");
Statement ps = conn.prepareStatement(
"SELECT ∗ FROM mitarb</p>
          <p>WHERE gehalt &gt; ?");
ps. setInt (1, 1000);
ResultSet rs = ps.executeQuery();
String name = rs.getString("name");
ps. close () ;
conn.close () ;</p>
          <p>Wie nun stellt sich hier eine Möglichkeit zur Integration
dar? Es ist möglich, vor jede Funktion, die eine Anwendung
vom originalen Datenbanktreiber aufruft, eine eigene
Funktion zu setzen. Die Anwendung ruft nun die eigene
Funktion, ohne dies zu bemerken, und die eigene Funktion ruft
schließlich die originale. Da nun alle Daten, die von einer
Anwendung zum Datenbanksystem gesendet werden, vorher
analysiert und verändert werden können, stellt sich so dieser
Integrationspunkt dar. Außerdem können eigene Funktionen
auf der so abgefangenen Datenbankverbindung „huckepack“
aufgesetzt werden.</p>
          <p>
            Ein erster Gedanke, dies zu realisieren, könnte in die
Richtung einer DLL-Injection [
            <xref ref-type="bibr" rid="ref18 ref42">18</xref>
            ] gehen. Das bedeutet das
komplette Ersetzen des vom Datenbankhersteller
bereitgestellten Treibers durch einen eigenen. Dieser kann, da die
Protokolle nicht zwingend offengelegt sein müssen, die
Kommunikation mit dem Datenbanksystem nicht selbst übernehmen,
sondern ruft den ursprünglichen Datenbanktreiber.
Abhängig von der Anzahl der zu implementierenden Funktionen
kann dies ein möglicher Weg sein. Eine weit verbreitete
solche Schnittstelle, um aus einer Javaanwendung mit einem
Datenbanksystem in Verbindung zu treten, ist JDBC. Mit
seinen vielen Klassen und mehr als 1000 zugehörigen
Methoden [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ] wäre es eine sehr langwierige Aufgabe, einen
solchen sogenannten Wrapper [
            <xref ref-type="bibr" rid="ref31 ref51 ref7">7</xref>
            ] zu implementieren. In einem
unserer Produkte namens Cardigo ist dieses aber bereits
implementiert und erleichtert so die Aufgabe enorm. Weitere
Projekte und Arbeiten zu diesem Thema sind unter anderem
auch bei [
            <xref ref-type="bibr" rid="ref19 ref21 ref22 ref43">19, 22, 21</xref>
            ] und [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ] zu finden.
Cardigo ist ein Rahmenwerk, welches u. a. alle Klassen
und Methoden enthält, die das JDBC-API anbietet.
Anstatt selbst ein kompletter Treiber zu sein, bietet es lediglich
einen Wrapper für einen „richtigen“ Datenbanktreiber. Das
Ziel dieses Produktes ist es, einem Anwender die Möglichkeit
zu geben, die Datenbankkommunikation – in diesem Falle
hauptsächlich Anfragen, Ergebnisse u. s. w. – zu loggen oder
gar zu verändern. Mit diesem Werkzeug können wir nun die
Integration des Index angehen.
          </p>
          <p>
            Technisch ist zur Integration von Cardigo nichts weiter
nötig, als ein geänderter Verbindungsparameter für die
Anwendung. Dieser bewirkt, dass anstelle des originalen
JDBCTreibers nun Cardigo geladen wird. Der Aufbau dieser
veränderten Umgebung ist in Abbildung 2 verdeutlicht.
Abbildung 2: Anwendung, die Cardigo durch einen
veränderten Kommunikationsparameter nutzt. Der
Code, den ein Nutzer schreibt, umfasst
typischerweise nicht den gesamten API-Umfang von JDBC,
weshalb er hier nicht über die gesamte Breite
dargestellt ist. Exemplarisch sind die in Listing 3
verwendeten Methoden dargestellt.
3. INTEGRATION
Bevor wir die Integration des Index weiter betrachten,
wollen wir kurz darauf eingehen, wie ein in ein
Datenbanksystem integrierter Index arbeitet: Wird eine Anfrage an die
Datenbank gestellt und treffen einige der verwendeten
Attribute die im Index enthaltenen, so wird der Index
verwendet. Dabei wird die Anfrage vom Index bearbeitet und im
Ergebnis entsteht einen Liste von Ergebniskandidaten.
Diese können in Form von RowIDs [
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ] oder auch einfach als
Primärschlüssel vorliegen. Das Datenbanksystem überprüft
dann nur noch die Datensätze, deren Identifikatoren der
Index als Ergebnis lieferte. Auf diese Art wird der Aufwand,
den das Datenbanksystem beim Laden der Datensätze und
ihrer Verifikation hat, erheblich verringert [
            <xref ref-type="bibr" rid="ref10 ref34 ref54">10</xref>
            ].
          </p>
          <p>Im Folgenden wird zunächst die logische Integration
betrachtet, d. h., wie es überhaupt möglich ist, Ergebnisse eines
Index an das Datenbanksystem zu übertragen. Es schließt
sich eine Betrachtung an, die die programmtechnische
Integration betrachtet, da sich hier noch einige weitere Probleme
auftun.
Die Grundidee der Integration ist es nun, die Anfrage, die
eine Anwendung absetzt, so zu verändern, dass sie das
Verhalten eines datenbankinternen Index nachahmt. Die
Anfrage aus Listing 1 könnte nun, wie in Listing 4 aufgezeigt, um
das Primärschlüsselattribut erweitert werden.</p>
          <p>Listing 4: SQL-Anfrage, die um die Ergebnisse eines
externen Index erweitert wurde</p>
          <p>SELECT ∗
FROM mitarb
WHERE gehalt &gt; 2000</p>
          <p>AND id IN (4, 18)</p>
          <p>Dieses Vorgehen vertraut darauf, dass der Optimierer des
Datenbanksystems erkennt, dass es sich bei den Werten in
der IN-Klausel um Primärschlüssel handelt. Er muss diese
möglichst am Anfang der Anfrageverarbeitung einbeziehen,
um die Menge der zu untersuchenden Tupel zu minimieren.</p>
          <p>
            Durch Tests haben wir herausgefunden, dass die Anzahl
der in IN-Listen enthaltenen Elemente eine Obergrenze hat.
Durch die Disjunktion mehrerer IN-Listen kann diese zu
einem gewissen Grad ausgeglichen werden. Somit ist es
möglich, sehr lange Anfragen zu erzeugen, Allerdings gibt es auch
eine Grenze für die maximale, vom Datenbanksystem
zugelassene, Anfragelänge. Bei IBM DB2 und Oracle ist diese
Maximallänge bspw. 64kB [
            <xref ref-type="bibr" rid="ref16 ref32 ref40 ref52 ref60 ref8">8, 16</xref>
            ].
          </p>
          <p>Ein weiterer Aspekt, der bei diesen langen Anfragen
betrachtet werden muss, ist, dass diese vom Datenbanksystem
auch geparst werden. Werden die Anfragen lang, so
steigen auch deren Parsezeiten, selbst optimistisch betrachtet
ist dieser Zusammenhang linear. Auch systematisch bedingt,
ist, dass der Optimierer zu lange und viele IN-Listen nicht
beachtet, selbst wenn es sich um Primärschlüssel handelt.
Mit Hinweisen an den Optimierer kann hier gegengesteuert
werden. Zusammenfassend lässt sich aber sagen, dass ab
einer gewissen Anfragelänge, der Gewinn durch den Index sich
im schlechtesten Falle sogar ins Gegenteil verkehren kann.</p>
          <p>Um diese Beschränkungen zu umgehen, können die
Ergebnisse des Index auch in eine Tabelle in der Datenbank
eingefügt werden. Hier gibt es wieder mehrere
Möglichkeiten:
1. Einfügen in eine Tabelle, die angelegt ist
2. Einfügen in eine temporäre Tabelle
In beiden Fällen muss allerdings die Datenbank in der
Weise modifiziert werden, dass die Anwendung, in die der
Index integriert wurde, das Recht hat, auf diese Tabellen zu
schreiben. Die Tabellen müssen prinzipiell eine Spalte für
die Anfrage und eine Spalte für die Ergebnisse des Index
besitzen.</p>
          <p>Werden über eine Sitzung Anfragen nur sequenziell
bearbeitet, haben temporäre Tabellen den Vorteil, dass
zwischen verschiedenen Datenbanksitzungen nicht mittels der
eben beschriebenen zusätzlichen AnfrageID-Spalte in dieser
Tabelle unterschieden werden muss. Das ist darin
begründet, dass temporäre Tabellen für jede Sitzung als leere neue
Tabellen erscheinen. Die Aktionen einer Sitzung wirken sich
nicht auf den Inhalt der temporären Tabelle in einer anderen
Sitzung aus.</p>
          <p>Ein bisher nicht zur Sprache gekommener Punkt ist das
Aktualisieren des Index. Natürlich muss ein
datenbankexterner Index über INSERT-, UPDATE- und DELETE-Operationen
informiert werden. Der einfachste Weg ist, wenn alle
Operationen, die auf der Datenbank laufen, über die gleiche
abgefangene Schnittstelle gehen und so direkt gelesen werden
können. In der Realität ist dies jedoch unpraktisch, da
diese Voraussetzung nicht zu 100% gewährleistet werden kann.
Trigger sind eine Variante, wie Veränderungen in der
Datenbank nach außen gereicht werden können, diese müssen
jedoch integriert werden dürfen. Hier ergeben sich damit auch
Grenzen, über die hinaus unser Ansatz nicht angewendet
werden kann. Eine andere Möglichkeit sind statische
Datenhaltungen, die nur in definierten Zeitabschnitten aktualisiert
werden, bspw. einmal pro Monat. Hier kann ein statischer
Index genutzt werden, der über eine simple Zeitsteuerung
aktualisiert wird.
3.2
Oft halten sich Anwendungsprogrammierer an die Beispiele
der Autoren der jeweiligen Datenbankschnittstelle. Jedoch
erlauben alle APIs auch eine freiere Nutzung, d. h., dass die
Schrittfolge der Kommandos nicht festgelegt ist und es
verschiedene Gründe geben kann, die so aufgezeigten
Standardroutinen zu verwerfen. Listing 3 zeigt zunächst einen
Standardweg auf. Für diesen wollen wir nun die Schritte, die ein
datenbankexterner Index verfolgen kann, aufzeigen:
• Statement vorbereiten (conn.prepareStatement(...)):
if Anfrage relevant then</p>
          <p>Anfrage speichern
end if
• Variablen binden (ps.setInt(...)):
if Anfrage war relevant then</p>
          <p>Bindung speichern
end if</p>
          <p>Beobachtungen an realen Programmen zeigen, dass das
Binden von Variablen teils mehrfach auf die gleichen
Variablen angewendet wird. Mit dem eben beschriebenen
Verfahren ist dies kein Problem. Auch Operationen, die ein
Statement näher beschreiben, sind nach wie vor ausführbar, da
alle Bestandteile erhalten bleiben und nur Ergänzungen
vorgenommen werden.</p>
          <p>ERGEBNISSE UND AUSBLICK
Das hier beschriebene System war bereits erfolgreich im
Einsatz. Die Latenzen für das reine Abfangen der
Datenbankaufrufe bewegen sich im einstelligen Mikrosekundenbereich,
also dem, was für einen Funktionsaufruf erwartet werden
kann. Hinzu kommt die Zeit für die Indexanfrage. Für einen
realen Gewinn muss natürlich die Zeit für die
Integration, die Indexanfrage und den Einbau der Ergebnisse in das
Statement in Summe geringer sein, als die einer Anfrage
ohne den externen Index.</p>
          <p>Es zeigte sich auch, dass, wird eine Integration über
Tabellen angestrebt, es verschiedene Arten gibt, die Ergebnisse
aus der Ergebnistabelle zu entfernen. In 3.1 wurden die
verschiedenen Arten von Tabellen hierfür beschrieben. Wenn
keine Spalte für die AnfrageID verwendet werden muss, so
können die Ergebnisse mit einem TRUNCATE entfernt werden.
Dieses wird erheblich schneller ausgeführt, als ein DELETE
FROM ... WHERE anfrage_id == &lt;current_id&gt;.</p>
          <p>Unsere weitere Arbeit beschränkt sich nicht nur auf eine
Integration in JDBC, die wir hier aufgezeigt haben, sondern
geht auch darüberhinaus auf native Datenbanktreiber ein,
die dann jedoch herstellerspezifisch sind. Hier müssen andere
Mechanismen angewandt werden, eine Integration elegant zu
vollziehen, die Prinzipien bleiben jedoch die gleichen. Auch
der bereits vorgestellte Ansatz, einen Proxy zu integrieren,
der das Protokoll, welches das Datenbanksystem im
Netzwerk verwendet, versteht, wurde weitergeführt und zeigte
sich bereits im Einsatz als wertvolle Hilfe. Das oben bereits
erwähnte Cardigo dient uns dabei als Werkzeugkasten, der
alle diese Möglichkeiten vereint.</p>
          <p>
            LITERATUR
example and in detail, IBM Developer works DB2
library. Dec. 2003.
[
            <xref ref-type="bibr" rid="ref21">21</xref>
            ] Thedwick, LLC. jdbcgrabber. http://code.google.
          </p>
          <p>
            com/p/jdbcgrabber/.
[
            <xref ref-type="bibr" rid="ref22">22</xref>
            ] C. Wege. Steps out of Integration Hell - Protocol
Interception Wrapper. In A. Rüping, J. Eckstein, and
C. Schwanninger, editors, EuroPLoP, pages 455–458.
UVK - Universitaetsverlag Konstanz, 2001.
          </p>
        </sec>
        <sec id="sec-3-2-14">
          <title>Sebastian Breß</title>
          <p>Otto-von-Guericke University</p>
          <p>Magdeburg
bress@iti.cs.uni-magdeburg.de</p>
        </sec>
        <sec id="sec-3-2-15">
          <title>Siba Mohammad</title>
          <p>Otto-von-Guericke University</p>
          <p>Magdeburg
siba.mohammad@st.ovgu.de</p>
        </sec>
        <sec id="sec-3-2-16">
          <title>Eike Schallehn</title>
          <p>Otto-von-Guericke University</p>
          <p>Magdeburg
eike@iti.cs.uni-magdeburg.de
A current research trend focuses on accelerating database
operations with the help of GPUs (Graphics Processing Units).
Since GPU algorithms are not necessarily faster than their
CPU counterparts, it is important to use them only if they
outperform their CPU counterparts. In this paper, we
address this problem by constructing a decision model for a
framework that is able to distribute database operations
response time minimal on CPUs and GPUs. Furthermore,
we discuss necessary quality measures for evaluating our
model.
1. INTRODUCTION</p>
          <p>
            In the context of database tuning, there are many
different approaches for performance optimization. A new
opportunity for optimization was introduced with General
Purpose Computation on Graphics Processing Units (GPGPU)
[
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ]. This approach allows to speed up applications that are
suited for parallel processing with the help of GPUs. Parallel
computing architectures like compute unified device
architecture (CUDA) [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ] make it possible to program a GPU
almost as simple as a CPU. This technology opens a new
branch in research that focuses on accelerating applications
using GPUs.
          </p>
          <p>
            CPUs are optimized for a low response time, meaning
that they execute one task as fast as possible. The GPU
is optimized for high throughput, meaning they execute as
many tasks as possible in a fixed time. This is
accomplished by massively parallel execution of programs by using
multi threading. Furthermore, GPUs specialize on
computeintensive tasks, which is typical for graphics applications.
Additionally, tasks with much control flow decrease
performance on GPUs, but can be handled well by CPUs [
            <xref ref-type="bibr" rid="ref12 ref36 ref56">12</xref>
            ].
Consequently, database operations benefit differently by
using the GPU. Aggregations are most suited for GPU usage,
whereas selections should be outsourced with care. He et al.
observed that selections are 2-3 times slower on the GPU
compared with the CPU [
            <xref ref-type="bibr" rid="ref30 ref50 ref6">6</xref>
            ].
1.1
          </p>
          <p>
            A new research trend focuses on speeding up database
operations by performing them on GPUs [
            <xref ref-type="bibr" rid="ref13 ref14 ref28 ref30 ref37 ref38 ref4 ref48 ref50 ref57 ref58 ref6">4, 6, 13, 14</xref>
            ].
          </p>
          <p>
            He et al. present the concept and implementation of
relational joins on GPUs [
            <xref ref-type="bibr" rid="ref30 ref31 ref50 ref51 ref6 ref7">6, 7</xref>
            ]. Pirk et al. develop an approach
to accelerate indexed foreign key joins with GPUs [
            <xref ref-type="bibr" rid="ref13 ref37 ref57">13</xref>
            ]. The
foreign keys are streamed over the PCIe bus while random
lookups are performed on the GPU. Walkowiak et al.
discuss the usability of GPUs for databases [
            <xref ref-type="bibr" rid="ref14 ref38 ref58">14</xref>
            ]. They show the
applicability on the basis of an n-gram based text search
engine. Bakkum et al. develop a concept and implementation
of the SQLite command processor on the GPU [
            <xref ref-type="bibr" rid="ref28 ref4 ref48">4</xref>
            ]. The main
target of their work is the acceleration of a subset of
possible SQL queries. Govindaraju et al. present an approach
to accelerate selections and aggregations with the help of
GPUs [
            <xref ref-type="bibr" rid="ref29 ref49 ref5">5</xref>
            ]. From the examples, we can conclude that a GPU
can be an effective coprocessor for the execution of database
operations.
1.2
          </p>
          <p>We assume that an operation is executed through an
algorithm which uses either CPU or GPU. For which operations
and data is it efficient to execute database operations on a
GPU? A GPU algorithm can be faster or slower as its CPU
counterpart. Therefore, the GPU should be used in a
meaningful way to achieve maximal performance. That means,
only if it is to be expected that the GPU algorithm is faster
it should be executed.</p>
          <p>We do not know a priori which processing device (CPU
or GPU) is faster for which datasets in a given hardware
configuration. We have to take different requirements into
account to determine the fastest processing device:
• the operation to be executed,
• the size of the dataset to process,
• the processing power of CPU and GPU (number of
processor cores, clock rate), and
• the current load condition on CPU and GPU.</p>
          <p>The following contributions are discussed in the following:
1. A response time minimal distribution of database
operations on CPUs and GPUs can achieve shorter
execution times for operations and speedup query
executions. Hence, a basic idea how such a model can be
constructed is depicted in this paper.
2. For the evaluation of our model, we define appropriate
quality measures.</p>
          <p>To the best of our knowledge, there is no self-tuning
decision model that can distribute database operations response
time minimal on CPUs and GPUs.</p>
          <p>The remainder of the paper is structured as follows. In
Section 2, we present our decision model. Then, we discuss
model quality metrics needed for evaluation in Section 3.
Section 4 provides background about related work. Finally,
we present our conclusion and future work.</p>
          <p>In this section, we present our decision model. At first,
we discuss the basic model. Then, we explain details of the
estimation and the decision components.
2.1</p>
          <p>Basic Model</p>
          <p>We construct a model that is able to choose the response
time minimal algorithm from a set of algorithms for
processing a dataset D. We store observations of past algorithm
executions and use statistical methods to interpolate future
execution times. We choose the algorithm with the smallest
estimated execution time for processing a dataset.</p>
          <p>Definitions: Let O be a database operation and let APO =
{A1, .., Am} be an algorithm pool for operation O, i.e., a
set of algorithms that is available for the execution of O.
We assume that every algorithm has different performance
characteristics. Hence, the execution times of different
algorithms needed to process a dataset D are likely to vary.
A data set D provides characteristic features of the input
data. In this paper, we consider only the data size. Other
characteristics, e.g., data distribution or data types will be
considered in future work.</p>
          <p>Let TA(D) be the execution time of an algorithm to
process the dataset D. We do not consider hardware specific
parameters like clock rate and number of processor cores to
estimate execution times. Instead, we learn the execution
behavior of every algorithm. For this purpose, we assign to
every algorithm A a learning method LA and a
corresponding approximation function FA(D). Let Test(A, D)=FA(D)
be an estimated execution time of algorithm A for a dataset
D. A measured execution time is referred to as Treal(A, D).
Let a measurement pair (MP) be a tuple (D,Treal(A, D)).
Let M P LA be a measurement pair list, containing all
current measurement pairs of algorithm A.</p>
          <p>
            Statistical Methods: We consider the following
statistical methods for the approximation of the execution
behavior of all algorithms. The first one is the least squares
method and the second is spline interpolation with cubic
splines [
            <xref ref-type="bibr" rid="ref27 ref3 ref47">3</xref>
            ]. We use these approaches because we observe in
our experiments minimal overhead and a good accuracy
(relative error &lt; 10%) of the estimated execution times. While
other methods can learn the execution behavior depending
on more than one feature, they often need a large amount of
time for updating approximation functions and computing
estimations, see Section 4. In the case of the least square
method FA(D) is a polynomial of degree n. In the case of
cubic splines, FA(D) is a spline.
          </p>
          <p>Abstraction: The execution time of algorithms is highly
dependent on specific parameters of the given processing
hardware. In practice, it is problematic to manage all
parameters, so maintenance would become even more costly.
Hence, we do not consider hardware specific parameters and
let the model learn the execution behavior of algorithms
using statistical method LA and the corresponding
approximation function FA(D).</p>
          <p>Model Components: The model is composed of three
components. The first is the algorithm pool APO which
contains all available algorithm of an operation O. The
second is the estimation component which computes execution
time estimations for every algorithm of an operation. The
third part is the decision component which chooses the
algorithm that fits best for the specified optimization criteria.
Depending on whether the chosen algorithm uses the CPU
or the GPU, the corresponding operation is executed on the
CPU or the GPU. In this paper, we only consider response
time optimization. However, other optimization criteria like
throughput can be added in future work. Figure 1
summarizes the model structure.
2.2</p>
          <p>This section describes the functionality of the estimation
component. First, we discuss when the approximation
functions of the algorithms should be updated. Second, we
examine how the model can adapt to load changes.
2.2.1</p>
          <p>Updating the Approximation Functions</p>
          <p>For an operation O that will be applied on a dataset D
the estimation component computes for each available
algorithm of O an estimated execution time. For this, we need
an approximation function that can be used to compute
estimations. Since we learn such functions with statistical
methods, we need a number of observations for each algorithm
to compute the corresponding approximation functions.
After we computed an initial function for each algorithm, our
model is used to make decisions. Hence, the model
operation can be divided into two phases. The first is the initial
training phase. The second is the operational phase.</p>
          <p>Since the load condition can change over time, execution
times of algorithms are likely to change as well. Hence, the
model should provide a mechanism for an adoption to load
changes. Therefore, the model continuously collects
measurement pairs of all executed algorithms of an operation.</p>
          <p>There are two problems to solve:
1. Re-computation Problem: find a strategy when to
re-compute the approximation function for each
algorithm, so that a good trade-off between accuracy and
overhead is achieved.
2. Cleanup Problem: delete outdated measurements
pairs from a measurement pair list because the
consideration of measurement pairs from past load
conditions is likely to be less beneficial for estimation
accuracy. Furthermore, every measurement pair needs
storage space and results in higher processing time for
the statistical methods.</p>
          <p>
            There are different heuristics that deal with the
re-computation of approximation functions. Zhang et al. present
possible approaches in [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ]. These are:
1. Re-compute the approximation function always after a
new measurement pair was added to the measurement
pair list.
2. Re-compute the approximation function periodically.
3. Re-compute the approximation function, if the
estimation error exceeds a certain threshold.
operation O
          </p>
          <p>A1,</p>
          <p>A2,...,
algorithm pool An
CPU GPU
dataset D
optimization criterion
Test(A1,D),</p>
          <p>Test(A2,D),...,
estimation component Test(An,D)
MPLA1 ... MPLAi ... MPLAn</p>
          <p>MP=(D,Treal(Ai))
decision component</p>
          <p>Ai</p>
          <p>As Zhang et al. point out, the most aggressive method is
unlikely to achieve good results because the expected
overhead for re-computing the approximation function
counteracts possible performance gains. Hence, we have to choose
between approach 2 and 3. There is no guarantee that one
approach causes less overhead than the other.</p>
          <p>On one hand, periodic re-computation causes a predictable
overhead, but it may re-compute approximation functions
when it is not necessary, e.g., the relative estimation error
is still beneath an error threshold. On the other hand, an
event based approach re-computes the approximation
functions only if it is necessary, but has the disadvantage, that
the quality of estimations has to decrease until the
approximation functions are re-computed. We choose the periodic
approach, because of it’s predictable overhead. We will
consider the event based approach in future work.</p>
          <p>Parameters: Now we discuss necessary parameters of
the model. Let RCR be the re-computation rate of an
algorithm. That means that after RCR measurement pairs were
added to the measurement pair list of an algorithm A, the
approximation function FA(D) of A is re-computed.1 Hence,
the used time measure is the number of added measurement
pairs. Let ITL be the initial training length, which is the
number of measurement pairs that have to be collected for
each algorithm, before the model switches into its
operational phase.</p>
          <p>Now we address the Cleanup Problem. We have to limit
the number of measurement pairs in the measurement pair
list to keep space and computation requirements low.
Furthermore, we want to delete old measurement pairs from the
list that do not contribute to our current estimation problem
sufficiently. These requirements are fulfilled by a ring buffer
data structure. Let RBS be the ring buffer size in number of
measurement pairs. If a new measurement pair is added to
a full ring buffer, it overrides the oldest measurement pair.
Hence, the usage of a ring buffer solves the Cleanup Problem.
RCR and RBS are related because if RCR is greater than
RBS there would be measurement pairs that are never
considered for computing the approximation functions. Hence,
RCR should be smaller than RBS .</p>
          <p>
            Statistical Methods: The used statistical methods have
to be computationally efficient when computing
approximation functions and estimation values. Additionally, they
should provide good estimations (relative estimation error
&lt;10%). Since the times needed to compute estimations
sums up over time, we consider a method computationally
efficient if it can compute one estimation value in less than
50μs. Our experiments with the ALGLIB [
            <xref ref-type="bibr" rid="ref2 ref26 ref46">2</xref>
            ] show that this
is the case for the least squares and cubic splines.
1For each operation one measurement pair is added to the
list of the selected algorithm.
          </p>
          <p>Self Tuning Cycle: The model performs the following
self tuning cycle during the operational phase:
1. Use approximation functions to compute execution time
estimations for all algorithms in the algorithm pool of
operation O for the dataset D.
2. Select the algorithm with the minimal estimated
response time.
3. Execute the selected algorithm and measure its
execution time. Add the new measurement pair to the
measurement pair list M P LA of the executed algorithm
A.
4. If the new measurement pair is the RCR new pair in
the list, then the approximation function of the
corresponding algorithm will be re-computed using the
assigned statistical method.</p>
          <p>Adaption to Load Changes</p>
          <p>This section focuses on the adaption to load changes of the
model. We start with necessary assumptions, then proceed
with the discussion how the model can adapt to new load
conditions.</p>
          <p>Let ACP U be a CPU algorithm and AGP U a GPU
algorithm for the same operation O.</p>
          <p>The basic assumptions are:
1. Every algorithm is executed on a regular basis, even in
overload conditions. That ensures a continuing supply
of new measurement pairs. If this assumption holds
then a gradual adaption of the approximation
functions to a changed load condition is possible.
2. A change in the load condition has to last a certain
amount of time, otherwise the model cannot adapt
and delivers more vague execution time estimations.
If this assumption does not hold, it is not possible to
continuously deliver good estimations.
3. The load condition of CPU and GPU are not related.</p>
          <p>As long as the assumptions are fulfilled, the estimated
execution time curves2 approach the real execution time curves
if the load changes. Increase and decrease of the load
condition on the side of the CPU is symmetric compared to an
equivalent change on the side of the GPU. For simplicity, but
without the loss of generality, we discuss the load adaption
mechanism for the CPU side.
2An execution time curve is the graphical representation of
all execution times an algorithm needs to process all datasets
in a workload.</p>
          <p>Treal(AGPU,D)
Treal(ACPU,D)
Test (ACPU,D)
e
m
i
t
n
o
i
t
u
c
e
x
e</p>
          <p>Treal(AGPU,D)
Treal(ACPU,D)
Test (ACPU,D)
data size
data size</p>
          <p>Increasing Load Condition: If the load condition
increases on the side of the CPU then the execution times of
CPU algorithms increase and the real execution time curves
are shifted upwards. In contrast, the estimated execution
time curves stay as they are. We illustrate this situation in
Figure 2. The model is adapted to the new load condition
by collecting new measurement pairs and recomputing the
approximation function. This will shift the estimated
execution time curve in the direction of the measured execution
time curve. Hence, the estimations become more precise.
After at maximum RCR newly added measurement pairs
for one algorithm the estimated execution time curve
approaches the real execution time curve. This implies the
assumption that a re-computation of approximation functions
never has a negative impact on the estimation accuracy.</p>
          <p>Decreasing Load Condition: The case of a decreasing
load is mostly symmetric to the case of increased load. A
decreased load on CPU side causes shorter execution time
of CPU algorithms. The consequence is that real execution
time curves are shifted downwards, whereas the estimated
execution time curves stay as they are.</p>
          <p>Limits of the Adaption: There is the possibility that
the described load adaption scheme can break, if the load
on CPU side increases or decreases too much. We consider
the case, where the load increases too much, the other case
is symmetric. In Figure 3, we illustrate the former case.
Hence, the real execution time curve of ACP U lies above the
real execution time curve of AGP U .</p>
          <p>If this state continues to reside a certain amount of time,
the estimated execution time curves will approach the real
execution time curves. If the load condition normalizes
again, then only algorithm AGP U is executed, regardless of
datasets that can be faster processed by algorithm ACP U .
The model is now stuck in an erroneous state since it
cannot make response time minimal decisions for operation O
anymore.</p>
          <p>However, this cannot happen due to the assumption that
every algorithm is executed on a regular basis, even in
overload conditions. Hence, a continuing supply of new
measurement pairs is ensured which allows the adaption of the
model to the current load condition.
2.3</p>
          <p>In this section, we describe the decision component of our
model. Due to limited space, we introduce only one
optimization criterion, namely response time, but other criteria
like throughput are possible.
2.3.1</p>
          <p>If we optimize the operation execution for response time,
we want to select the algorithm with the minimal
execution time for the dataset D. In choosing the algorithm with
the minimal execution time, we distribute the operation
response time minimal to CPU and GPU. There is always one
decision per operation that considers the size of the dataset
that has to be processed.</p>
          <p>Definition: Let a workload W be a tuple W = (DS, O),
where DS = D1, D2, · · · , Dn is a set of datasets Di that are
to be processed and O the operation to be executed.3</p>
          <p>Goal: The goal is to choose the fastest algorithm Aj ∈
APO for every dataset Di ∈ DS for the execution of
operation O.</p>
          <p>min =</p>
          <p>X Treal(Ak, Di) with Ak ∈ APO</p>
          <p>Di∈DS</p>
          <p>Usage: The algorithm with the minimal estimated
execution time for the dataset D is chosen for execution. The
function choose Algorithm (choose Alg) chooses an algorithm
according to the optimization criterion.</p>
          <p>choose Alg(D, O) = Aj with</p>
          <p>Test(Aj, D) = min({Test(Ak, D)|∀Ak ∈ APO})</p>
          <p>It is expected that the accuracy of the estimated execution
times has a large impact on the decisions and the model
quality.</p>
          <p>Practical Use: The execution of the fastest algorithm
reduces the response time of the system and results in better
performance of a DBS. These response time optimization is
necessary to accelerate time critical tasks4. Furthermore, it
3For simplicity, we only consider one operation per
workload. However, a set of operations is more realistic and can
be added in future work.
4A task is an operation in execution.
is possible to automatically fine-tune algorithm selection on
a specific hardware configuration.</p>
          <p>MODEL QUALITY CRITERIA</p>
          <p>In this section, we present four model quality measures,
namely average percentage estimation error, hit rate, model
quality, and percentage speed increase.</p>
          <p>
            The idea of the average percentage estimation error is to
compute the estimation error for each executed algorithm
and the corresponding estimation value. Then, the
absolute percentage estimation error is computed. Finally, the
average of all computed percentage estimation errors is
computed. This measure is also called relative error and is used,
e.g., in [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ].
          </p>
          <p>The idea of this measure is to compute the ratio of the
number of correct decisions and the total number of
decisions. A decision is correct, if and only if the model decided
for the fastest algorithm. In the ideal case all decisions are
correct, so the hit rate is 100%. In the worst case all
decisions are wrong. Hence, the hit rate is 0%. The benefit
of the hit rate is that it can provide statistical information
about how many decisions are wrong. If the hit rate is X
then every 1/(1-X) decision is incorrect. However, we
cannot quantify the impact of an incorrect decision. This is
addressed by the model quality. Note, that algorithms with
very similar execution time curves can lead to a bad hit rate,
although the overall performance is acceptable.</p>
          <p>The idea of the model quality is to compute the ratio of
the resulting execution times that a system using an ideal
model and a real model needs to process a workload W .
In the ideal case, the real model would be as good as the
ideal model. Hence, the model quality is 100%. The worst
case model would always select the slowest algorithm and
provides a lower bound for the model quality.</p>
          <p>Let TDM (W ) be the time a system using a decision model
(DM ) needs to process a workload W . It is computed out of
the sum of all algorithm execution times resulting from the
algorithm selection of the decision model for the workload
added with the overhead caused by DM . Let TOh(DM, W )
be the overhead the decision model DM causes. If a decision
model introduces to much overhead, it can eliminate their
gain. Hence the overhead has to be considered, which is the
sum of the total time needed for computing estimation
values and the total time needed to re-compute approximation
functions. The time needed for all estimation value
computation (EVC) for a workload W is TEVC(W ). The time needed
to re-compute the approximation functions of all algorithms
is TRC (W ). Both measures are highly dependent on DM .
Hence, we get the following formulas:</p>
          <p>TOh(DM, W ) = TEVC(W ) + TRC (W )</p>
          <p>X Treal(choose AlgDM (D, O), D) (4)
+ TOh(DM, W )</p>
          <p>Let DMideal be the ideal decision model and let DMreal
be the real decision model. Then, the model quality MQ is
defined as:</p>
          <p>M Q(W, DMreal) = TDMideal (W )</p>
          <p>TDMreal (W )</p>
          <p>This measure describes to which degree the optimization
goal described in formula 1 is achieved. Note, that the ideal
model is not introducing overhead (TOh(DMideal, W ) = 0).
3.4</p>
          <p>The idea of the percentage speed increase (PSI) is to
quantify the performance gain, if a decision model DMi is
replaced with a decision model DMj.</p>
          <p>P SI(DMi → DMj, W ) =</p>
          <p>TDMi (W ) − TDMj (W )</p>
          <p>TDMi (W )
If P SI(DMi → DMj, W ) is greater than zero, DMj had a
better performance than DMi and vice versa.</p>
          <p>RELATED WORK</p>
          <p>In this section, we present the related work. We
consider analytical models for estimating execution times of
GPU algorithms. Furthermore, we discuss learning based
approaches to estimate execution times. Finally, we present
existing decision models and provide a comparison to our
approach.</p>
          <p>
            Analytical Models Hong et al. present an analytical
model which estimates execution times of massively parallel
programs [
            <xref ref-type="bibr" rid="ref32 ref52 ref8">8</xref>
            ]. The basic idea is to estimate the number of
parallel memory requests. The approach uses information
like number of running threads and the memory bandwidth.
Depending on their case study, relative estimation errors
between 5,4% and 13,3% are observed.
          </p>
          <p>
            Zhang et al. develop a model that should help optimizing
GPU programs by arranging qualitative performance
analyses [
            <xref ref-type="bibr" rid="ref16 ref40 ref60">16</xref>
            ]. They use a micro benchmark-based approach which
needs hardware specific parameters, e.g., the number of
processors or the clock rate. The model cannot adapt to load
changes and therefore, it is not considered for use in our
approach. The observed relative estimation error lies between
5% and 15%.
          </p>
          <p>
            Learning based Execution Time Estimation Akdere
et al. investigate modeling techniques for analytical
workloads [
            <xref ref-type="bibr" rid="ref1 ref25 ref45">1</xref>
            ]. They estimate the execution behavior of queries
on the basis of different granularities. They presented a
modeling approach for the estimation on query level and
operation level. The basic idea of their approach is to
perform a feature extraction on queries and compute execution
time estimations based on them.
          </p>
          <p>
            Matsunaga et al. present a short overview over machine
learning algorithms and their fields of application [
            <xref ref-type="bibr" rid="ref11 ref35 ref55">11</xref>
            ]. The
goal is the estimation of the resource usage for an
application. One considered resource is the execution time. The
developed method PQR2 needs a few milliseconds for the
computation of estimations. Since we need for n datasets
and m algorithms n·m computations the time for a single
computation should be less than 50μs to keep the overhead
at an absolute minimum. Hence, the approach of Matsunaga
et al. is to be investigated, whether it achieves good results
for a response time minimal operation distribution. This
can be done in future work.
          </p>
          <p>
            Zhang et al. present a model for predicting the costs of
complex XML queries [
            <xref ref-type="bibr" rid="ref15 ref39 ref59">15</xref>
            ]. They use the statistical
learning method called ”transform regression technique”. The
approach allows a self-tuning query optimizer that can
dynamically adapt to load condition changes. The approach
of Zhang and our model are similar in basic functionalities.
The difference to our approach is that Zhang et al. estimate
the execution time of XML queries whereas our approach
estimates execution times of single database operations to
dynamically distribute them on CPU and GPU.
Additionally, we use a different learning method that is optimized for
computational efficiency.
          </p>
          <p>
            Decision Models Kerr et al. present a model that
predicts the performance of similar application classes for
different processors [
            <xref ref-type="bibr" rid="ref10 ref34 ref54">10</xref>
            ]. The approach allows to choose between
CPU and GPU implementation. This choice is made
statically in contrast to our work, where an algorithm for an
operation execution is chosen dynamically at runtime. Kerr
et al. are using only parameters that are statically known
before program execution. Hence, it allows no adaption to
load changes in contrast to our model that allows load
adaption.
          </p>
          <p>
            Iverson et al. develop an approach that estimates
execution times of tasks in the context of distributed systems [
            <xref ref-type="bibr" rid="ref33 ref53 ref9">9</xref>
            ].
The approach, similar to our model, does not require
hardware specific information. They use the learning method
knearest-neighbor, a non-parametric regression method. We
use least squares and cubic splines that are parametric
regression methods which need less time for computing
estimations compared to non parametric regression methods.
The goal of Iverson et al. is an optimal selection of nodes
in a distributed system, where a task is executed. Unlike
this approach, our work has the goal for optimal algorithm
selection. It is possible to apply the approach of Iverson et
al. on hybrid CPU/GPU platform. However, we consider,
the GPU is a coprocessor of the CPU. Hence, a CPU/GPU
platform is not a distributed system from our point of view.
In a way, our model is less general than the model of Iverson
et al.
          </p>
          <p>CONCLUSION</p>
          <p>In this paper, we addressed a current research problem,
namely the optimal distribution of database operations on
hybrid CPU/GPU platforms. Furthermore, we develop a
self-tuning decision model that is able to distribute database
operations on CPUs and GPUs in a response time
minimal manner. We discuss the basic structure of the model
and provide a qualitative argumentation of how the model
works. Additionally, we present suitable model quality
measures, which are required to evaluate our model. Our
experiments show that our model is almost as good as the ideal
model if the model parameters are set appropriately. We
omit the evaluation due to limited space. We conclude that
distributing database operations on CPUs and GPUs has
a large optimization potential. We believe our model is a
further step to address this issue.</p>
          <p>In ongoing research, we use the defined quality measures
to evaluate our model on suitable use cases. A further
possible extension is using the model in a more general context,
where response-time optimal decisions have to be made, e.g.,
an optimal index usage. Furthermore, an extension of the
model from operations to queries is necessary for better
applicability of our model. This leads to the problem of hybrid
query plan optimization.</p>
          <p>REFERENCES</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ahmad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Aboulnaga</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Babu</surname>
          </string-name>
          .
          <article-title>Query interactions in database workloads</article-title>
          .
          <source>In Proc. Int'l. Workshop on Testing Database Systems</source>
          , DBTest, pages
          <volume>11</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          :
          <fpage>6</fpage>
          . ACM,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Andoni</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Indyk</surname>
          </string-name>
          .
          <article-title>Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>51</volume>
          (
          <issue>1</issue>
          ):
          <fpage>117</fpage>
          -
          <lpage>122</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Batko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Novak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zezula</surname>
          </string-name>
          . Messif:
          <article-title>Metric similarity search implementation framework</article-title>
          .
          <source>In Proc. Conf. on Digital Libraries (DELOS)</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>N.</given-names>
            <surname>Beckmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.-P.</given-names>
            <surname>Kriegel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Schneider</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Seeger. The R</surname>
          </string-name>
          *
          <article-title>-Tree: An efficient and robust access method for points and rectangles</article-title>
          .
          <source>In Proc. Int'l. Conf. on Mgmt. of Data (SIGMOD)</source>
          , pages
          <fpage>322</fpage>
          -
          <lpage>331</lpage>
          . ACM,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Berchtold</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Bo¨hm, and</article-title>
          <string-name>
            <given-names>H.-P.</given-names>
            <surname>Kriegel. The</surname>
          </string-name>
          Pyramid-Technique:
          <article-title>Towards breaking the curse of dimensionality</article-title>
          .
          <source>SIGMOD Rec</source>
          .,
          <volume>27</volume>
          :
          <fpage>142</fpage>
          -
          <lpage>153</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Berchtold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Keim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.-P.</given-names>
            <surname>Kriegel. The X-Tree</surname>
          </string-name>
          :
          <article-title>An index structure for high-dimensional data</article-title>
          .
          <source>In Proc. Int'l. Conf. on Very Large Data Bases (VLDB)</source>
          , pages
          <fpage>28</fpage>
          -
          <lpage>39</lpage>
          . Morgan Kaufmann Publishers Inc.,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bo</surname>
          </string-name>
          <article-title>¨hm. Efficiently Indexing High-Dimensional Data Spaces</article-title>
          .
          <source>PhD thesis</source>
          , Ludwig-Maximilians-Universita¨t Mu¨nchen,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bo</surname>
          </string-name>
          ¨hm, S. Berchtold, and
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Keim</surname>
          </string-name>
          .
          <article-title>Searching in high-dimensional spaces: Index structures for improving the performance of multimedia databases</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>33</volume>
          :
          <fpage>322</fpage>
          -
          <lpage>373</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P. H.</given-names>
            <surname>Bugatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J. M.</given-names>
            <surname>Traina</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Traina</surname>
          </string-name>
          , Jr.
          <article-title>Assessing the best integration between distance-function and image-feature to answer similarity queries</article-title>
          .
          <source>In Proc. ACM Symp. on Applied Computing (SAC)</source>
          , pages
          <fpage>1225</fpage>
          -
          <lpage>1230</lpage>
          . ACM,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Chavez Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Figueroa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Navarro</surname>
          </string-name>
          .
          <article-title>Effective proximity retrieval by ordering permutations</article-title>
          .
          <source>IEEE Trans. on Pattern Analysis and Machine Intelligence (TPAMI)</source>
          ,
          <volume>30</volume>
          (
          <issue>9</issue>
          ):
          <fpage>1647</fpage>
          -
          <lpage>1658</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Guttman. R-Trees</surname>
          </string-name>
          :
          <article-title>A dynamic index structure for spatial searching</article-title>
          .
          <source>In SIGMOD'84, Proc. of Annual Meeting</source>
          , pages
          <fpage>47</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Indyk</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Motwani</surname>
          </string-name>
          .
          <article-title>Approximate nearest neighbors: Towards removing the curse of dimensionality</article-title>
          .
          <source>In Proc. Symp. on Theory of Compu</source>
          .
          <source>(STOC)</source>
          .
          <source>ACM</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Katayama</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Satoh</surname>
          </string-name>
          .
          <article-title>The SR-tree: An Index Structure for High-Dimensional Nearest Neighbor Queries</article-title>
          .
          <source>In Proc. Int'l. Conf. on Mgmt. of Data (SIGMOD)</source>
          , pages
          <fpage>369</fpage>
          -
          <lpage>380</lpage>
          . ACM,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>V.</given-names>
            <surname>Ko</surname>
          </string-name>
          <article-title>¨ppen. Improving the Quality of Indicator Systems by MoSi - Methodology and Evaluation</article-title>
          .
          <source>PhD thesis</source>
          , Freie Universita¨t Berlin,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D.-H.</given-names>
            <surname>Lee</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.-J.</given-names>
            <surname>Kim</surname>
          </string-name>
          .
          <article-title>An efficient technique for nearest-neighbor query processing on the SPY-TEC</article-title>
          .
          <source>Trans. on Knowl. and Data Eng. (TKDE)</source>
          ,
          <volume>15</volume>
          :
          <fpage>1472</fpage>
          -
          <lpage>1486</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>B.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Chang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          .
          <article-title>Discovery of a perceptual distance function for measuring image similarity</article-title>
          .
          <source>Multimedia Systems</source>
          ,
          <volume>8</volume>
          (
          <issue>6</issue>
          ):
          <fpage>512</fpage>
          -
          <lpage>522</lpage>
          , Apr.
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Muja</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Lowe</surname>
          </string-name>
          .
          <article-title>Fast approximate nearest neighbors with automatic algorithm configuration</article-title>
          .
          <source>In Proc. Int'l. Conf. on Computer Vision Theory and Applications (VISAPP)</source>
          , pages
          <fpage>331</fpage>
          -
          <lpage>340</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Nolan</surname>
          </string-name>
          .
          <article-title>Stable distributions: Models for heavy tailed data</article-title>
          . Springer-Verlag,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sakurai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yoshikawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Uemura</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kojima</surname>
          </string-name>
          .
          <article-title>The A-tree: An index structure for high-dimensional spaces using relative approximation</article-title>
          .
          <source>In Proc. Int'l. Conf. on Very Large Data Bases (VLDB)</source>
          , pages
          <fpage>516</fpage>
          -
          <lpage>526</lpage>
          . Morgan Kaufmann Publishers Inc.,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>H.</given-names>
            <surname>Samet</surname>
          </string-name>
          .
          <article-title>Foundations of Multidimensional and Metric Data Structures</article-title>
          . Morgan Kaufmann Publishers Inc.,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>T. K. Sellis</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Roussopoulos</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Faloutsos. The R</surname>
          </string-name>
          +
          <article-title>-Tree: A dynamic index for multi-dimensional objects</article-title>
          .
          <source>In Proc. Int'l. Conf. on Very Large Data Bases (VLDB)</source>
          , pages
          <fpage>507</fpage>
          -
          <lpage>518</lpage>
          . Morgan Kaufmann Publishers Inc.,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R.</given-names>
            <surname>Weber</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Blott</surname>
          </string-name>
          .
          <article-title>An approximation-based data structure for similarity search</article-title>
          .
          <source>Technical Report ESPRIT project, no. 9141</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>R.</given-names>
            <surname>Weber</surname>
          </string-name>
          , H.
          <article-title>-</article-title>
          <string-name>
            <surname>J. Schek</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Blott</surname>
          </string-name>
          .
          <article-title>A quantitative analysis and performance study for similarity-search methods in high-dimensional spaces</article-title>
          .
          <source>In Proc. Int'l. Conf. on Very Large Data Bases (VLDB)</source>
          , pages
          <fpage>194</fpage>
          -
          <lpage>205</lpage>
          . Morgan Kaufmann Publishers Inc.,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Ooi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.-L.</given-names>
            <surname>Tan</surname>
          </string-name>
          .
          <article-title>Making the pyramid technique robust to query types and workloads</article-title>
          .
          <source>In Proc. Int'l. Conf. on Data Engineering (ICDE)</source>
          , pages
          <fpage>313</fpage>
          -
          <lpage>324</lpage>
          . IEEE Computer Society,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Adam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Leuoth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Benn</surname>
          </string-name>
          .
          <article-title>Nutzung von Proxys zur Ergänzung von Datenbankfunktionen</article-title>
          . In W.-T. Balke and C. Lofi, editors,
          <source>Grundlagen von Datenbanken</source>
          , volume
          <volume>581</volume>
          <source>of CEUR Workshop Proceedings. CEUR-WS.org</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>E.</given-names>
            <surname>Belden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Chorma</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. Das</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kotsovolos</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Leyderman</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Mavris</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Moore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Morsi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Murray</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Raphaely</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Slattery</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sundara</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Yoaz</surname>
          </string-name>
          .
          <source>Oracle Database Data Cartridge Developers Guide, 11g Release</source>
          <volume>2</volume>
          (
          <issue>11</issue>
          .2). Oracle,
          <year>July 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bruni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bortoletto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kalyanasundaram</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. McGeoch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Molaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ohmori</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Parbs</surname>
          </string-name>
          .
          <article-title>DB2 10 for z/OS Performance Topics</article-title>
          .
          <source>IBM Form Number SG24-7942-00</source>
          ,
          <string-name>
            <given-names>IBM</given-names>
            <surname>Redbooks</surname>
          </string-name>
          ,
          <year>June 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Desloch</surname>
          </string-name>
          et al.
          <source>PatNr. US 6</source>
          ,
          <issue>338</issue>
          ,056
          <fpage>B1</fpage>
          -
          <article-title>Relational Database Extender that Supports User-Defined Index Types</article-title>
          and
          <string-name>
            <surname>User-Defined</surname>
            <given-names>Search</given-names>
          </string-name>
          , Apr.
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Elmasri</surname>
          </string-name>
          and
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Navathe</surname>
          </string-name>
          .
          <article-title>Grundlagen von Datenbanksystemen (3</article-title>
          .
          <string-name>
            <surname>Aufl</surname>
          </string-name>
          ., Bachelorausgabe).
          <source>Pearson Studium</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fisher</surname>
          </string-name>
          , J. Ellis, and
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Bruce</surname>
          </string-name>
          .
          <source>JDBC API Tutorial and Reference. Pearson Education</source>
          ,
          <volume>3</volume>
          <fpage>edition</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. Vlissides. Design</given-names>
            <surname>Patterns</surname>
          </string-name>
          . Addison-Wesley, Boston, MA, January
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>IBM. SQL</given-names>
            <surname>Reference</surname>
          </string-name>
          , Volume
          <volume>1</volume>
          .
          <string-name>
            <given-names>IBM</given-names>
            <surname>Corporation</surname>
          </string-name>
          ,
          <year>Nov</year>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>IBM</given-names>
            <surname>Deutschland GmbH. DB2 Spatial Extender und Geodetic Data Management Feature - Benutzer- und Referenzhandbuch</surname>
          </string-name>
          ,
          <year>July 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lahdenmäki</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Leach</surname>
          </string-name>
          .
          <article-title>Relational database index design and the optimizers: DB2, Oracle, SQL server</article-title>
          , et al. Wiley-Interscience,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Langner</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Reiberg</surname>
          </string-name>
          .
          <article-title>J2EE und JBoss: Grundlagen und Profiwissen ; verteilte Enterprise-Applikationen auf Basis von J2EE, JBoss &amp; Eclipse</article-title>
          . Hanser,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Lorentz</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Roeser</surname>
          </string-name>
          .
          <source>Oracle Database SQL Language Reference, 11g Release</source>
          <volume>2</volume>
          (
          <issue>11</issue>
          .2). Oracle, Oct.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Martin</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Goke</surname>
          </string-name>
          . P6spy. http://sourceforge. net/projects/p6spy/.
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Murray</surname>
          </string-name>
          .
          <source>Oracle Spatial Developers Guide, 11g Release</source>
          <volume>2</volume>
          (
          <issue>11</issue>
          .2). Oracle, Dec.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>G.</given-names>
            <surname>Reese</surname>
          </string-name>
          .
          <article-title>Database Programming with JDBC and Java</article-title>
          ,
          <string-name>
            <given-names>Second</given-names>
            <surname>Edition. O'Reilly</surname>
          </string-name>
          &amp; Associates, Inc., Sebastopol, CA, USA, 2nd edition,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>B.</given-names>
            <surname>Rich</surname>
          </string-name>
          .
          <source>Oracle Database Reference, 11g Release</source>
          <volume>2</volume>
          (
          <issue>11</issue>
          .2), Sept.
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>G.</given-names>
            <surname>Saake</surname>
          </string-name>
          , K.-U. Sattler,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Heuer</surname>
          </string-name>
          . Datenbanken:
          <article-title>Konzepte und Sprachen, 3</article-title>
          . Auflage. mitp-Verlag,
          <source>Redline GmbH</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Shewmaker</surname>
          </string-name>
          . Analyzing dll injection,
          <year>2006</year>
          . GSM Presentation, Bluenotch.
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Smedberg</surname>
          </string-name>
          . Boilerplate JDBC Wrapper. http:// blog.redfin.com/devblog/2011/03/boilerplate_ jdbc_wrapper.html.
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>K.</given-names>
            <surname>Stolze</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Steinbach</surname>
          </string-name>
          .
          <article-title>DB2 Index Extensions by 3</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Akdere</surname>
          </string-name>
          and
          <string-name>
            <surname>U.</surname>
          </string-name>
          <article-title>C¸ etintemel. Learning-based query performance modeling and prediction</article-title>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>ALGLIB</given-names>
            <surname>Project. ALGLIB</surname>
          </string-name>
          . http://www.alglib.net/,
          <year>2012</year>
          . [Online; accessed 05-January-2012].
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P. R. Anthony</given-names>
            <surname>Ralston</surname>
          </string-name>
          .
          <article-title>A first course in numerical analysis</article-title>
          .
          <source>dover publications</source>
          ,
          <source>second edition</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bakkum</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Skadron</surname>
          </string-name>
          .
          <article-title>Accelerating sql database operations on a gpu with cuda</article-title>
          .
          <source>GPGPU '10</source>
          , pages
          <fpage>94</fpage>
          -
          <lpage>103</lpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N. K.</given-names>
            <surname>Govindaraju</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lloyd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Manocha</surname>
          </string-name>
          .
          <article-title>Fast computation of database operations using graphics processors</article-title>
          .
          <source>SIGMOD '04</source>
          , pages
          <fpage>215</fpage>
          -
          <lpage>226</lpage>
          , New York, NY, USA,
          <year>2004</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. K.</given-names>
            <surname>Govindaraju</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Luo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Sander</surname>
          </string-name>
          .
          <article-title>Relational query coprocessing on graphics processors</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>34</volume>
          :21:
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          :
          <fpage>39</fpage>
          ,
          <year>December 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>B.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Govindaraju</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Luo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Sander</surname>
          </string-name>
          .
          <article-title>Relational joins on graphics processors</article-title>
          .
          <source>SIGMOD '08</source>
          , pages
          <fpage>511</fpage>
          -
          <lpage>524</lpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hong</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kim</surname>
          </string-name>
          .
          <article-title>An analytical model for a gpu architecture with memory-level and thread-level parallelism awareness</article-title>
          .
          <source>ACM SIGARCH Computer Architecture News</source>
          ,
          <volume>37</volume>
          (
          <issue>3</issue>
          ):
          <fpage>152</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Iverson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ozguner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Follen</surname>
          </string-name>
          .
          <article-title>Run-time statistical estimation of task execution times for heterogeneous distributed computing</article-title>
          .
          <source>HPDC '96</source>
          , pages
          <fpage>263</fpage>
          -
          <lpage>270</lpage>
          , Washington, DC, USA,
          <year>1996</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kerr</surname>
          </string-name>
          , G. Diamos, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yalamanchili</surname>
          </string-name>
          .
          <article-title>Modeling gpu-cpu workloads and systems</article-title>
          .
          <source>GPGPU '10</source>
          , pages
          <fpage>31</fpage>
          -
          <lpage>42</lpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Matsunaga</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. A. B.</given-names>
            <surname>Fortes</surname>
          </string-name>
          .
          <article-title>On the use of machine learning to predict the time and resources consumed by applications</article-title>
          .
          <source>CCGRID</source>
          , pages
          <fpage>495</fpage>
          -
          <lpage>504</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [12]
          <string-name>
            <surname>NVIDIA. NVIDIA CUDA C Programming</surname>
          </string-name>
          <article-title>Guide</article-title>
          . http://developer.download.nvidia.com/compute/ DevZone/docs/html/C/doc/CUDA_C_
          <article-title>Programming_ Guide</article-title>
          .pdf,
          <year>2012</year>
          . pages
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          , Version 4.0, [Online; accessed 1-February-2012].
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>H.</given-names>
            <surname>Pirk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Manegold</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kersten</surname>
          </string-name>
          .
          <article-title>Accelerating foreign-key joins using asymmetric memory channels</article-title>
          .
          <source>ADMS '11</source>
          , pages
          <fpage>585</fpage>
          -
          <lpage>597</lpage>
          . VLDB Endowment,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref58">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Walkowiak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wawruch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nowotka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ligowski</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Rudnicki</surname>
          </string-name>
          .
          <article-title>Exploring utilisation of gpu for database applications</article-title>
          .
          <source>Procedia Computer Science</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>505</fpage>
          -
          <lpage>513</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref59">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Haas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Josifovski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. M.</given-names>
            <surname>Lohman</surname>
          </string-name>
          , and
          <string-name>
            <surname>C. Zhang.</surname>
          </string-name>
          <article-title>Statistical learning techniques for costing xml queries</article-title>
          .
          <source>VLDB '05</source>
          , pages
          <fpage>289</fpage>
          -
          <lpage>300</lpage>
          . VLDB Endowment,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref60">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Owens</surname>
          </string-name>
          .
          <article-title>A quantitative performance analysis model for gpu architectures</article-title>
          .
          <source>Computer Engineering</source>
          , pages
          <fpage>382</fpage>
          -
          <lpage>393</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>