<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Multiple-Site Distributed Spatial Query Optimization using Spatial Semijoins</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Wendy OSBORN</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Saad ZAAMOUT</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics and Computer Science, University of Lethbridge</institution>
          ,
          <addr-line>Lethbridge, Alberta T1K 3M4</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <fpage>11</fpage>
      <lpage>19</lpage>
      <abstract>
        <p>In this paper, we present our strategy for distributed spatial query optimization that involves multiple sites. Previous work in the area of distributed spatial query processing and optimization focuses only on strategies for performing spatial joins and spatial semijoins, and distributed spatial queries that only involve two sites. We propose a strategy for optimizing a distributed spatial query using spatial semijoins that can involve any number of sites in a distributed spatial database. In this initial work we focus on minimizing the data transmission cost of a distributed spatial query by identifying and initiating semijoins from the smaller relations in order to reduce the larger relations and minimize the cost of data transmission. We compare the performance of our strategy against the naïve approach of shipping entire relations to the query site. We find that our strategy minimizes the data transmission cost in all cases, and significantly in specific situations.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Spatial data</kwd>
        <kwd>distributed spatial queries</kwd>
        <kwd>optimization</kwd>
        <kwd>performance</kwd>
        <kwd>data transmission cost</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A distributed spatial database system [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] consists of several spatial database sites that
are dispersed geographically. Each site manages its own collection of spatial data, but
work collectively for processing inter-site data requirements. An important requirement
of a distributed spatial database is the ability to efficiently process a query that requires
spatial data from multiple sites. Historically, research in distributed relational databases
focused on generating query execution plans that minimized the cost of data
transmission over the network [
        <xref ref-type="bibr" rid="ref11 ref3 ref4">3, 4, 11</xref>
        ]. However, spatial data is more complex than
alphanumeric data. This increases the complexity of joining spatial relations.
Therefore, CPU and I/O costs should also be considered when processing a distributed
spatial query [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Most existing strategies that process a distributed spatial query only work for two
sites. The one exception to this does not handle spatial joins. Therefore, this
preliminary work begins to address this shortcoming by propose a strategy for
processing and optimizing a distributed spatial query that handles more than two sites.
Our strategy focuses on minimizing the data transmission cost of a query by applying
spatial semijoins in a cost-effective manner. An evaluation of our strategy shows
reduction in the data transmission cost over the naïve approach (i.e. the approach that
involves shipping entire relations directly to the query site). In specific situations, this
reduction in cost is significant.</p>
    </sec>
    <sec id="sec-2">
      <title>1. Background and Related Work</title>
      <p>
        Most research in distributed spatial query processing focuses on spatial join algorithms,
spatial semijoins algorithms, and the use of Bloom filters for processing distributed
spatial queries. A spatial join [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] takes two relations R and S, each with a spatial
attribute, and relates pairs of tuples between R and S based on a spatial predicate that is
applied to the spatial attribute values. Examples of spatial predicates include the
overlap, containment, and adjacency of two spatial attributes. A spatial semijoin [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is
performed by projecting the spatial attribute from one relation, transmitting it to the site
that contains the other spatial relation, and performing a spatial join of the spatial
projection and relation. Then, the qualifying tuples from second site are shipped back
to the first site and joined with the spatial relation on that site. A Bloom filter [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a
hashed bit array that provides a compact but imprecise representation of the values of a
joining attribute. A ’1’ bit represents the possible existence of a joining attribute value,
while a ’0’ bit represents the absence of the value.
      </p>
      <p>
        With the exception of [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], all proposed strategies for processing distributed spatial
queries work for a two-site database only. We summarize these works below.
      </p>
      <sec id="sec-2-1">
        <title>1.1. Spatial Join</title>
        <p>
          A significant majority of spatial join algorithms are designed for a centralized system
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. This section focuses on spatial join strategies for distributed spatial queries.
        </p>
        <p>
          Kang et al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] propose a parallel spatial join strategy that is adapted to a
distributed spatial database environment. Their strategy has two phases: data
redistribution, and filter and refinement. In the data redistribution phase, on each site,
the space that contains objects is partitioned into regions (i. e. buckets). A subset of
regions is transmitted between servers so that each server has the same regions for both
data sets. This subset is chosen by estimating which will result in the lowest overall
response time (although it is unclear if I/O costs are considered). Then, the filter and
refinement phase is carried out on both sites by performing a spatial join. An
experimental evaluation shows that the parallel spatial join technique has a
significantly faster response time – up to a 33% improvement over a semijoin-based
strategy.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>1.2. Spatial Semijoin</title>
        <p>
          Abel et al. [
          <xref ref-type="bibr" rid="ref13 ref2">2, 13</xref>
          ] propose a spatial semijoin operator that combines the conventional
semijoin operator with the filter stage of spatial query processing in order to reduce the
data transmission, I/O and CPU costs. Their work explores two adaptations of the
spatial semijoin. In the first, a “projection” of a set of MBRs from one spatial relation
is transmitted to the second site and applied to the other relation using a spatial join. In
the second, the “projection” is a single-dimensional mapping that represents the objects
in each relation. A performance evaluation between these approaches shows that 1) for
datasets with very large spatial descriptions, both strategies perform the same, 2) for
datasets with smaller spatial descriptions, a semijoin that uses single-dimensional
mapping works best, 3) using the R-tree for retrieving MBRs incurs significant CPU
costs, and 4) single-dimensional mapping causes more false drops than MBRs.
        </p>
        <p>
          Karam and Petry [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] propose a spatial semijoin, which differs from [
          <xref ref-type="bibr" rid="ref13 ref2">2, 13</xref>
          ] in that
MBRs from different levels of the R-tree are chosen for the spatial semijoin, instead of
requiring that all come from the same level. A performance evaluation shows that their
spatial semijoin outperforms the naïve spatial join (i. e. the whole relation is shipped to
the other site for joining) when applied to real world data, but not when applied to
randomly distributed rectangle sets. Limitation of their work are: 1) no comparison
versus other strategies, 2) no consideration of CPU time.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>1.3. Bloom Filters</title>
        <p>
          Karam [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] propose a 2-dimensional bit-matrix approach for performing a semijoin of
two relations that focuses on minimizing the data transmission, I/O and CPU costs. A
2-dimensional space is partitioned into equal-sized regions, with each region mapping
to a bit in a 2-dimensional array. If a region contains objects, the corresponding bit is
set to 1. This bit-matrix is transmitted to the site containing the other relation, and is
applied by testing each region containing objects for the existence of a ’1’ bit in the
bitmatrix. Any qualifying objects are sent to the first site. A performance evaluation
shows that this approach shows the best improvement when applied to real world data.
Limitation of this work are: 1) an evaluation against the spatial join, and not versus a
spatial semijoin, which in functionality is a closer match to the bit-matrix approach,
and 2) no compression of the bit-matrix – a bit-matrix that contains many zeros is still
transmitted in its entirety.
        </p>
        <p>
          Hua et al. [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] propose the BR-tree, which is an R-tree that is augmented with
Bloom filters to support exact-match queries. Each node entry contains 1) a minimum
bounding rectangle (MBR) that approximates an object or a subset of objects, and 2) a
Bloom filter that also represents one or more objects. In a leaf node, a Bloom filter is
created by taking each object and producing k bits in the filter using different hash
functions. In a non-leaf node, a Bloom filter is created by intersecting the Bloom filters
in its child node. Although the BR-tree supports exact-match queries by using Bloom
filters, it still requires the MBRs for region and point queries. A strategy for processing
distributed region, point, and exact-match queries is proposed. The algorithm
duplicates the root of every BR-tree across every site in the database. Any objects that
pass the test against a root node is shipped to the site containing the original BR-tree.
This strategy works for any number of sites. A significant limitation is a lack of support
for spatial joins.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2. Distributed Spatial Query Processing Strategy</title>
      <p>In this section we present our algorithm for processing a distributed spatial query. The
focus is to reduce the cost of data transmission over the network by using spatial
semijoins. In the future we will also consider I/O and CPU costs.</p>
      <sec id="sec-3-1">
        <title>2.1. Preliminaries</title>
        <p>
          We apply spatial semijoins by shipping the smaller spatial attributes to other sites and
applying them to the larger relations in order to eliminate a significant amount of data
that will not participate in the final result. We utilize a modified version of the
approximation based spatial semijoin that is proposed in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>In our implementation of the spatial semijoin, we use the following approach. We
have two sites R and S that each contain a spatial relation. First, we obtain the
projection of the spatial attribute from R. Then, the spatial relation is transferred to S
and joined with the spatial relation on S. Our semijoins differs after this point. Instead
of sending the qualifying tuples from S back to R for the final join, we send back to R
the identifiers from the spatial projection, which are used to select tuples from the
relation on R to ship to the final query site. In addition, the tuples on site S that
qualified in the semijoin are also shipped to the query site. Using this semijoin strategy
allows us to incorporate more than two sites when processing a distributed query.</p>
        <p>We make the following assumptions in our work:
1.
2.
3.
4.
5.
6.
7.</p>
        <p>Every spatial object is represented using its minimum bounding rectangle
(MBR).</p>
        <p>Every site that participates in the distributed spatial query has one spatial
relation. If a site contains other relations that are required for the query, it is
assumed that all local processing has taken place and one spatial relations
remains.</p>
        <p>All spatial relations have one spatial attribute.</p>
        <p>All objects (and corresponding MBRs) in all spatial attributes are drawn from
the same “spatial domain” (i.e. same region of space).</p>
        <p>The cardinality of each spatial attribute is equal to the number MBRs in the
relation. That is, we assume that all MBRs in a spatial attribute are distinct.
The number of sites participating in the distributed spatial query is a multiple
of two. The reason for this will be made clear when the algorithm is presented.
The spatial attribute for every spatial relation is already indexed by an R-tree
(or a similar index that places the minimum bounding rectangles for all objects
in its leaf level).</p>
      </sec>
      <sec id="sec-3-2">
        <title>2.2. The Algorithm</title>
        <p>Given n sites that will be participating in processing a distributed query, where each
site has one spatial relation, our strategy has four main steps:
1. sorting and grouping by spatial attribute cardinality,
2. transmission of spatial attributes,
3. semijoin execution,
4. transmission of qualifying tuples to query site for the final join and
processing.</p>
        <p>Each step is described next. First, the sites will be ordered by increasing spatial
attribute cardinality. After ordering, the first n/2 sites of the ordered list are placed in a
set P, while the remaining n/2 sites are placed in a set Q.</p>
        <p>Then, the spatial attribute from the relation on each site in P are transmitted to a
site in Q in the following manner:
• the attribute from the site with the smallest spatial cardinality in P is sent to the
site with the smallest spatial attribute in Q,
• the attribute from the site with the next smallest spatial cardinality in P is sent to
the site with the next smallest spatial attribute in Q,
• and so on... until,
• the attribute from the site with the largest spatial cardinality in P is sent to the
site with the largest spatial attribute in Q.</p>
        <p>Next, on each site in Q, a spatial semijoin is performed between the existing spatial
relation and the spatial attribute sent from the corresponding site in P. The results of of
the semijoin are: 1) the set of tuples on the site that qualify in the semijoin, and 2) a set
of identifiers from the spatial attribute whose MBRs also qualify in the semijoin. The
set of identifiers is sent back to the corresponding site in P.</p>
        <p>Finally, for all sites in P, the tuples whose identifiers match the ones obtained from
Q are shipped to the query site. In addition, for each site in Q the set of tuples that
qualified in the semijoin are sent to the query site. At the query site, the final join is
performed.
2.2.1. Example
Suppose we have a distributed spatial database with six sites. Each site contains a
spatial relation with 100, 200, 400, 600, 800, and 1000 tuples respectively. Our strategy
for processing a query that involves these sites proceeds as follows. First, our sites are
ordered by increasing spatial attribute cardinality. Then, the list is divided into the two
sets. The set P will contain the sites with the 100-, 200- and 400-tuple relations, while
the set Q will contain the sites with the 600-, 800-, and 1000-tuple relations.</p>
        <p>Next, the spatial attributes from the sites in set P are sent to sites in Q in the
following manner. First, the spatial attribute from the site containing 100 tuples is sent
to the site that contains 600 tuples. Similarly, the spatial attribute from the 200-tuple
sites is set to the 800-tuple site, and the spatial attribute from the 400-tuple site is sent
to the 1000-tuple site. Then, on the 600-, 800-, and 1000-tuple sites, a semijoin is
performed between the local spatial relation and the spatial attribute that was shipped to
it. During this process, the identifiers that correspond to the MBRs in the spatial
attribute that qualify for the semijoin are sent back to originating site. For example, on
the 600-tuple site, the identifiers for the qualifying MBRs are sent back to the 100-tuple
site, and are used to select the corresponding tuples. Finally, all qualifying tuples from
all sites are shipped to the query site.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3. Experimental Evaluation</title>
      <p>Here, we present our empirical evaluation of our distributed query processing
algorithm. We compared our strategy for optimizing a distributed spatial query with the
naïve approach which transfers all unreduced relations to the query site. First, we
present the data sets and cost formulas used in our evaluation. Then, we present the
results and discussion of our tests.</p>
      <p>We simulated a six-site distributed spatial database, where each site contains one
spatial relation. Each spatial relation has one spatial attribute, which consists of four
values (lx, ly, hx, hy) that represent the extents of an MBR. In addition, each spatial
relation has the following non-spatial attributes: identifier, region name, population and
a line slope indicator. Each spatial relation has 100, 200, 400, 600, 800 and 1000 tuples
respectively. We opted to use smaller relations for our experiments because of the
preliminary nature of the work and the use of a simulated (and not real) distributed
environment.</p>
      <sec id="sec-4-1">
        <title>3.1. Data Transmission Cost Calculation</title>
        <p>In our experiments, we estimated the cost of data transmission as the total number of
bytes that are transmitted. We assume that the data transmission rate is constant and
therefore is not added to our calculations. In addition, we assume a integer size of two
bytes, a double-precision floating point size of eight bytes, a long integer size of 8
bytes and a character size of one byte.</p>
        <p>The various costs of data transmission are calculated in the following manner.
There are several calculations required. First, the transmission cost for transmitting an
MBR is equal to the number of bytes used to represent an MBR:</p>
        <p>cost (M B R) = 4 * sizeof (double)+ sizeof (int)
which encompasses the co-ordinate values (lx, ly, hx, hy) and the tuple identifier.
Similarly, the cost for transmitting a tuple is:
cost (tuple) = sizeof (M B R) + 20 * sizeof (char) + sizeof (longint)
+ sizeof (int)
(1)
(2)
which encompasses the region name, population and line slope indicator. In addition,
1) the cost of transmitting an identifier back to the original site from which it came is
cost (I D) = sizeof (int), and, 2) the function number_of_qualifiers (relation) returns the
number of tuples from a relation that participate in the result of a spatial semijoin
operation.</p>
        <p>Finally, given spatial attribute X from relation Y (i. e. site Y from the set P above)
that is shipped to relation Z (i. e. site Z from set Q above), the cost of processing the
spatial semijoin is:
cost (X, Y, Z) = number_of_tuples (Y) * cost (M B R)
+ number_of_qualifiers (X) * (cost (I D) + cost (tuple))
+ number_of_qualifiers (Z) * cost (tuple)
(3)
The first term is the cost of transmitting the spatial attribute X from site Y to site Z.
The second term is the cost of both transmitting back to Y the corresponding tuple
identifiers for the qualifying MBRs in X, and then transmitting the tuples that
correspond to those tuple identifiers to the query site. Finally, the third term is the cost
of transmitting qualifying tuples from Z to the query site. This cost is calculated for
every pair (Y, Z) of sites that are involved in the query, with all costs summed together
to obtain the total cost of the query.</p>
      </sec>
      <sec id="sec-4-2">
        <title>3.2. Two-Site Query Test</title>
        <p>The first set of tests we performed are for distributed queries that involve two sites.
Table 1 shows the pairs of relations (i.e. sites) that were evaluated, along with the total
cost (in bytes) of both our optimized strategy (column Optimized) and the naïve
approach (column Naïve). We opted to report the cost of data transmission in bytes so
that determining the number of physical disk blocks in a page of secondary storage
would not be required at this point.</p>
        <p>In all cases, our strategy results in a lower data transmission cost over the naïve
approach. In particular, the most significant improvement is achieved when there exists
a significant difference in the size of the spatial relations between the two sites. For
example, when the query involves the sites that contain the 100- and 1000-tuple spatial
relations, we have almost 80% less data that is being transmitted when our strategy is
being used to process the query.</p>
      </sec>
      <sec id="sec-4-3">
        <title>3.3. Four-Site Query Test</title>
        <p>For our second set of tests, we compared the evaluation of the strategies for four-site
queries. Table 2 shows the sites involved and the total costs in bytes from both
strategies. Again, we find that our strategy outperforms the naïve approach. In addition,
we also find that in the situation where a significant size difference exists between the
relations – in this case, 100, 200, 800, and 1000 tuples – the greatest improvement is
achieved.</p>
      </sec>
      <sec id="sec-4-4">
        <title>3.4. Six-Site Query Test</title>
        <p>Finally, we performed one test that compares our strategy with the naïve approach
when all six sites are involved. We found the transmission cost from the query
optimization strategy to be 127,456 bytes and that from the naïve strategy to be
198,400. This gives an improvement of approximately 36%.</p>
      </sec>
      <sec id="sec-4-5">
        <title>3.5. Discussion</title>
        <p>In all cases, we discovered a lower data transmission cost from our strategy over the
naïve approach. In addition, we discovered the following trends. First, the queries with
the largest difference in the number of tuples between the participating relations, the
greater the reduction that our strategy achieves. Second, we discovered that as the
difference in the number of tuples between participating relations increases, the
improvement that our strategy achieves increases as well.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Conclusion and Future Work</title>
      <p>In this paper, we propose a strategy for optimizing queries in a distributed spatial
database that involves relations on multiple sites. Our strategy focuses on minimizing
the cost of data transmission by applying spatial semijoins. Smaller spatial attributes
are chosen for transmission and application to larger relations so that overall data
transmission costs are reduced. A empirical evaluation of our strategy against the naïve
approach shows that our strategy achieves a reduction in the data transmission cost in
all cases. In particular, as the size difference between relations increases, the savings
achieved by our strategy over the naïve strategy are very significant.</p>
      <p>As mentioned, one important direction of future work that we are currently exploring is
the resulting I/O and CPU costs from our optimization strategy. It is important to
determine if the I/O and CPU costs are minimal or outweigh any benefits of our
strategy.</p>
      <p>Other directions of future work include the following. One is to create a real
distributed database system with multiple sites, which will provides a means for better
evaluation of our strategy. Another is to evaluate the two-site version of our strategy (i.
e. when only two sites are involved) versus other existing strategies. Although the
focus of this work was to extend the number of sites involved in a distributed spatial
query, evaluating the efficiency of our algorithm in the two-site case versus existing
strategies is also important and would better identify if our strategy is superior in this
situation. A final research direction is to develop and evaluate other strategy for
processing and optimizing a distributed spatial query. As discussed, very limited work
has been proposed, which leads to many exciting opportunities for research in the area
of distributed spatial query processing.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.H.</given-names>
            <surname>Bloom</surname>
          </string-name>
          ,
          <article-title>Space/time trade-offs in hash coding with allowable errors</article-title>
          ,
          <source>Communications of the ACM</source>
          <volume>13</volume>
          (
          <year>1970</year>
          ),
          <fpage>422</fpage>
          -
          <lpage>426</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.J.</given-names>
            <surname>Abel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.C.</given-names>
            <surname>Ooi</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.-L. Tan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Power</surname>
            and
            <given-names>J.X.</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
          </string-name>
          ,
          <article-title>Spatial join strategies in distributed spatial DBMS</article-title>
          .
          <source>In: Proceedings of the 4th International Symposium on Advances in Spatial Databases</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.M.G.</given-names>
            <surname>Apers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.R.</given-names>
            <surname>Hevner</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.B.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <article-title>Optimization algorithms for distributed queries</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>9</volume>
          (
          <year>1983</year>
          ),
          <fpage>57</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bodorik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.S.</given-names>
            <surname>Riordon</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.S.</given-names>
            <surname>Pyra</surname>
          </string-name>
          ,
          <article-title>Deciding to correct distributed query processing</article-title>
          ,
          <source>IEEE Transactions on Knowledge and Data Engineering</source>
          <volume>4</volume>
          (
          <year>1992</year>
          ),
          <fpage>348</fpage>
          -
          <lpage>357</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Brinkhoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.-P.</given-names>
            <surname>Kriegel</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Seeger</surname>
          </string-name>
          ,
          <article-title>Efficient processing of spatial joins using R-trees</article-title>
          .
          <source>In: Proceedings of the 1993 ACM Sigmod International Conference on Managment of Data</source>
          , New York, USA,
          <fpage>237</fpage>
          -
          <lpage>246</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Hua</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Xiao</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>BR-Tree: a scalable prototype for supporting multiple queries of multidimensional data</article-title>
          ,
          <source>IEEE Transactions on Computers</source>
          <volume>58</volume>
          (
          <year>2009</year>
          ),
          <fpage>1585</fpage>
          -
          <lpage>1597</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E.</given-names>
            <surname>Jacox</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Samet</surname>
          </string-name>
          ,
          <article-title>Spatial join techniques</article-title>
          ,
          <source>ACM Transactions on Database Systems</source>
          <volume>34</volume>
          (
          <year>2007</year>
          ),
          <fpage>1</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.-S.</given-names>
            <surname>Kang</surname>
          </string-name>
          , S.
          <article-title>-</article-title>
          <string-name>
            <surname>K. Ko</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Koh</surname>
            and
            <given-names>Y.-C.</given-names>
          </string-name>
          <string-name>
            <surname>Choy</surname>
          </string-name>
          ,
          <article-title>A parallel spatial join algorithm for distributed spatial databases</article-title>
          .
          <source>In: Proceedings of the 5th International Conference on Flexible Query Answering Systems</source>
          ,
          <volume>212</volume>
          -
          <fpage>225</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Karam</surname>
          </string-name>
          ,
          <article-title>Optimizing Distributed Spatial Joins using R-trees</article-title>
          ,
          <source>Ph.D. Thesis</source>
          , Tulane University,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>O.</given-names>
            <surname>Karam</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Petry</surname>
          </string-name>
          ,
          <article-title>Optimizing distributed spatial joins using R-trees</article-title>
          .
          <source>In: Proceedings of the 43rd ACM Southeast Regional Conference</source>
          ,
          <year>2006</year>
          ,
          <fpage>222</fpage>
          -
          <lpage>226</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.T.</given-names>
            <surname>Özsu</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Valduriez</surname>
          </string-name>
          ,
          <source>Principles of Distributed Database Systems</source>
          , Springer, New York,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shekhar</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chawla</surname>
          </string-name>
          , Spatial Databases: a Tour, Prentice Hall, New Jersey,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>K.-L. Tan</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          <string-name>
            <surname>Ooi</surname>
            and
            <given-names>D.J.</given-names>
          </string-name>
          <string-name>
            <surname>Abel</surname>
          </string-name>
          ,
          <article-title>Exploiting spatial indexes for semijoin-based join processing in distributed spatial databases</article-title>
          ,
          <source>IEEE Transactions on Knowledge and Data Engineering</source>
          <volume>12</volume>
          (
          <year>2000</year>
          ),
          <fpage>920</fpage>
          -
          <lpage>937</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>