<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Ph.D. Workshop, August</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Vecstra: An Efficient and Scalable Geo-spatial In-Memory Cache</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Yiwen Wang supervised by Marcos Antonio Vaz Salles Database Management System Group University of Copenhagen</institution>
          ,
          <country country="DK">Denmark</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>27</volume>
      <issue>2018</issue>
      <abstract>
        <p>Nowadays a huge amount of geospatial data are generated and widely used in a variety of areas. In this way, there is an extensive range of database systems that support geospatial services but fall behind in coping with increasingly demanding high throughput, low latency and e cient resource usage requirements. Meanwhile, in-memory databases have become more prevalence due to increasing capability as well as decreasing price of the memory. To take advantage of the fast I/O speed and overhead reduction of memory-based storage, in-memory geospatial data management systems are created to overcome drawbacks of disk-based geospatial databases. However, to the best of our knowledge, current in-memory caches are not fully-featured and do not completely utilize the bene ts of widely used geospatial standards. To ll this gap, we specialize to the API of standard geospatial services and seek to achieve by this method a much higher performing in-memory geospatial cache implementation than possible by combining generic components such as a geospatial application server and SQL database. To that end, an e cient and scalable OGC standard-compliant in-memory geospatial cache Vecstra is built. Furthermore, we conduct experiments on Vecstra and analyze the preliminary results to formulate research opportunities.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        There has a considerable increasing of geospatial data
usage in today's society in many areas, such as precision
agriculture [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and social media streams querying [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ].
Meanwhile, an explosion of the Internet of Things (IoT) has
recently helped increase the generation of geospatial data [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
In the agriculture eld, there is a huge amount of data from
satellites and sensors that can provide massive geospatial
information about terrain and crop status. By integrating
a range of data and providing the information, that enables
Work performed in the context of the Future Cropping
partnership, supported by Innovation Fund Denmark.
farmers to tailor their management according to the local
and actual conditions in the eld. Since the importance and
wide societal relevance of spatial data, many platforms
provide geospatial services, necessitating specialized data
management solutions. GeoServer [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], for example, is the
backend of a number of such services and builds its geospatial
database on PostGIS [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        On the other hand, due to the increasing capability and
the decreasing price of memory, there is higher possible to
cache substantial amounts of geospatial data in-memory.
Storing data in memory is especially valuable for running
concurrent workloads as it eliminates the inevitable
bottlenecks caused by disk-centric architectures [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. To take
advantage of the bene ts of object caching systems, there are
widely used web services caches such as Memcached [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and
Redis [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Now more and more classic databases providers
have developed their in-memory features and systems. For
instance, in-memory database TimesTen [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] owned by
Oracle and memory-optimized OLTP engine Hekaton [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] in
SQL Server. Moreover, multi-core servers also help to achieve
performance bene ts and can yield signi cant gains.
Multicore processors can simultaneously handle multiple requests
that can help reduce latency when amounts of concurrent
requests occur, which is a very likely situation with skew in
geospatial services [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Despite the popularity of geospatial databases such as
PostGIS, however, their design has bene ted little from
recent developments in in-memory databases. PostGIS still
utilizes disk as its primary storage, which raises the
problem to reduce expensive geospatial data querying cost due
to disk I/O and system overheads. Since geospatial services
are experiencing growing popularity, this problem is made
worse by large numbers of concurrent requests. In-memory
database techniques and multi-core hardware hold promise
to o er a solution to this problem, while at the same time
increasing throughput and resource utilization.</p>
      <p>
        Existing Systems. Currently, there are many geospatial
databases that provide services to clients, as shown in
Figure 1. There are disk storage databases for batch processing
and multiple types of spatial queries such as SpatialHadoop
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and Hadoop-GIS [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. With the availability of larger
and cheaper main memory, to take the advantage of that,
data management systems such as MemSQL [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] are built
based on main memory to improve response times.
MemSQL is a in-memory database that stores data and allows
for quickly analyzing and processing data. And there are
transactions for the small interactive requests, to support
such requests, a number of specialized systems have been
developed. For example, GeoServer that based on PostGIS
we discussed above, and GeoMesa [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], a spatio-temporal
distributed database, also for GeoWave [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and H2GIS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
There are also disk-based caches such as GeoWebCache [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]
integrated with GeoServer that can store di erent types of
map. MapCache [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is also a disk cache that similar with
GeoWebCache. As we can see, even though many such
geospatial systems exist, only a few are based on main memory. To
the best of our knowledge, two systems stand out in this
category. One is HyperSpace [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], a geospatial main-memory
database system that can fastly process geospatial queries.
The other one is SpaceBase [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], a system that allows
handling concurrent geospatial queries with low latency based
on R-Tree indexing. But those two described in-memory
caches fail to support widespread geospatial data such as
raster data. Also, these caches also have limited support
spatial data structures, which can substantially a ect
processing e ciency in main memory. Meanwhile, latency and
e ciency in resource usage of modern multi-core machines
are not discussed in these caches. For the temporally skewed
geospatial query, keep scalability of systems when large
numbers of users and request volumes happen which is a highly
possible scenario should be taken into consideration as well.
Contribution. To ll the gap as described above, inspired
by the criticism of "One size ts all" in [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], we specialize the
design of our cache to the particular geospatial standards.
We build OGC standards [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] compliant in-memory cache
Vecstra that support spatial data structures to achieve high
performance in geospatial services. There are many
standards developed by OGC. Web Feature Service (WFS) [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]
and Web Coverage Service (WCS) [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ] are two of the most
widely used standards. WFS is used to serve geographic
feature information that mostly used in web-based client
applications for GIS data editing. WCS is used to provide
information on coverages. Known WFS/WCS
implementations include open-source systems such as rasdaman [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
MapServer [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and GeoServer. Commercial
implementations include Envitia1, Pyxis WorldView Studio2, ESRI
ArcGIS, among others. Most current disk-based geospatial
systems implement these two standards; however, in-memory
storage systems such as HyperSpace and SpaceBase fail to
implement complete services. Given the popularity of these
OGC standards, it would be ideal if a cache can provide
support to them and that can help the cache directly integrated
into existing disk-based geospatial systems. One approach
to build the cache could be to build or extend existing SQL
based systems such as HyPer or SpaceBase that provides
features for SQL require for data. However, since providing
1https://www.envitia.com/
2https://www.pyxisglobe.com/
a specialized interface, we have opportunities to provide a
much better implementation. Targeted advantages of
Vecstra are:
1. Use of tuned in-memory data structures for geospatial
data, leading to lower latency;
2. Thread management that is optimized for the
interface of a geospatial cache supporting operations over
geospatial layers, leading to lower overhead and better
scalability;
3. Open-source system that is standards-compliant, o
ering integrated WFS and WCS interfaces. And in the
future, it is possible to extend Vectra with standard
WPS as well.
      </p>
      <p>The remainder of this paper is organized as follows. In
Section 2 we illustrate our solution to build Vecstra and
present preliminary experiment results. In Section 3, based
on these results, we discuss research challenges and conclude
in Section 4.</p>
    </sec>
    <sec id="sec-2">
      <title>2. SOLUTION</title>
      <p>To explore a solution to the problems in Section 1, we
build a scalable, fully functional in-memory geospatial cache
called Vecstra that can provide high e cient services and low
latency response to geospatial data requests, operating on
a multi-core computer for the interest of high performance.
This section focus on how we build Vecstra, including API
design, architecture, and experiments.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>API design</title>
      <p>Vesctra is an in-memory storage cache that provides
services to clients to obtain geospatial data for calculations and
analysis goals. Vecstra implements the standard WFS and
WCS interfaces, which we analyzed to collect the functions
that Vecstra should support. Abiding by these APIs is
advantageous as this allow us to specialize the whole system
to particular operations as opposed to providing a generic
implementation.</p>
      <p>Every API method in Vecstra is invoked by user requests
to an instance v of Vecstra and the design of them are as
follows. The v.wfs/wcs::Add(l) and v.wfs/wcs::Remove(l)
add and remove vector or raster layers in v, respectively.
The method v.wfs/wcs::GetCapabilities provides basic
information of all vector or raster layers and services in v,
while v.wfs::GetFeature(l, bbox) and v.wcs::GetCoverage(l,
bbox), respectively, provide full information in the
intersection area of vector or raster layers l and
bounding box bbox in v. Finally, v.wfs::DescribeFeatureType(l)
and v.wcs::DescribeCoverage(l) obtain description and
geoinformation of vector or raster layers in v.</p>
      <p>The API opens up opportunities for specialization of the
implementation. For example, updates are always at layer
granularities, but queries typically read small parts of a few
layers that are intersecting with a window in space. We
observe that services often rely on PostGIS, which allows them
to satisfy linearizability, so to keep consistent semantics we
end up with the requirement to maintain linearizability for
concurrent operations in Vecstra. As we will see in the next
section, we can exploit these characteristics in the design of
Vecstra to support the API above more e ciently than
alternative generic designs based on an SQL geospatial database.</p>
      <p>
        Figure 2 illustrates the architecture of Vecstra. Vecstra
contains both vector and raster data which are two primary
types of spatial data in GIS that most commonly used in
geospatial services [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Based on the results in [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], we
choose R-Tree indices for the spatial intersection of vector
data and currently we use multi-dimensional array indices
for raster data. Essentially, query windows are for a number
of layers and initially update operations are coarse-grained
at layer granularities. Because the query operations usually
do not read all layers and also in order to support the
layerlevel update operations, the design of indices is partitioned
by layers, i.e., every index corresponds to one layer.
      </p>
      <p>
        To exploit multi-core bene ts, multi-threading is used to
gain performance. Concurrent request threads are assigned
to di erent cores. The multiple threads running in Vecstra
are executing both queries and updates. Index structures
such as the high-concurrency locking R-Tree proposed by
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] can be exploited to utilize concurrent threads.
However, as shown in Section 2.1, modi cation requests in
Vecstra are coarse-grained at layer granularities, so ne-grained
concurrency in indices has been unnecessary so far. We can
explore other possibilities where several particular layers are
combined into one single index as future work. Currently,
we utilize a concurrent hash map [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] to store the indices of
layers, which supports full concurrency of query operations
and high expected concurrency for update operations. In
addition, to minimize synchronization costs, a thread
performs indexing on a given layer without synchronization,
and then uses the concurrent hash map to synchronously
store the built index in a single operation. Based on the
OGC standards and to integrate with the current systems
such as GeoServer, there is an HTTP communication
interface that is provided to users. Users provide GET requests
to obtain WCS and WFS services from Vecstra.
2.3
      </p>
    </sec>
    <sec id="sec-4">
      <title>Preliminary Results</title>
      <p>
        Prototype and Workload. Vecstra prototype implement
architecture of Figure 2 based on C++11 and is compiled by
gcc 5.4.0. Realistic data are used for experiments. Raster
data we used are Field polygons, Soil, Rain distribution
layers and a topographic layer of Denmark, DTK/Kort25,
for raster data. Used workload designed based on precision
farming scenario [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Queries are generated for elds and
update requests are for layers. Currently, all queries and
requests are uniform random generated but in the future,
we can design a skew request mechanism based on the real
request log. We conduct our experiments on an AWS EC2
r4.4xlarge instance of Ubuntu server 16.04 LTS.
Results. At presesent, we use single read-write lock to
achieve automicity of Vecstra which is expected to be not
scalable. Therefore, we do our experiment only focus on
queries. We analysis the time in server side to show which
parts the latency located that can be improved in future
work. Now for vector data, most part of latency is located
in geometry intersection (around 50%-64%) and for raster
data, the highest portion of latency is located in data
extraction (around 89%-95%).
3.
      </p>
    </sec>
    <sec id="sec-5">
      <title>RESEARCH CHALLENGES</title>
      <p>
        The work presented so far was done in the rst 9 months as
a Ph.D. candidate. Based on the preliminary results from
the evaluation of Vecstra, we describe the future research
directions to overcome shortcomings described in Section 3.
Optimization for Geospatial Window Queries. A
geospatial range query is a very common database
operation that retrieves geospatial information located between
an upper and lower boundary[
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. The re ne step in
geometric intersection time is the biggest part of WFS range query
latency and data extraction use the majority of WCS range
query processing time, that can be seen from the server side
evaluation results. Spatial indexing is used to support
spatial selection [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Now, the minimum bounding rectangle is
used as the geometric key of our vector data and the most
time of vector range query is located in intersection
calculation, [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] implemented non-leaf and leaf MBR optimizations
techniques in Oracle Spatial. A new optimization approach
adds on top of this technique to reduce the intersection time
is one of our goals.
      </p>
      <p>
        Now our raster data is continuously and linearly stored in
an array from left to right and from top to bottom. We
calculate the intersected cells by decomposing the range query
to a set of range sections, then extracting data
block-byblock. Now we can see the latency of processing of raster
data extract is relatively high. In order to make this process
faster, a better data partitioning method should be used[
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
Now Q-Tree and R-Tree are two most common indexes in
commercial database systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Due to most geo range
queries are rectangle shape, we consider exploring a better
range indexing for raster data. [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] use space- lling curves
to index the data, but this proposed curve-design method
is heuristic. Therefore, an e cient curve-exploration
approach and valuating the best combination of curves in an
in-memory cache are challenges that we will pursue as an
avenue for future work.
      </p>
      <p>
        E cient Updates in Multi-Core Cache. Concurrency
control should be used to manage requests to ensure the
semantics of Vecstra. However, the current scalability of our
shared everything implementation is still limited by
potential synchronization bottlenecks in the presence of update
skew towards certain layers of geospatial data [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. A
composable thread management approach [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] will be explored
in future work. Also, in the future, we can utilize lock-free
mechanisms to tackle this problem. Unlike work in
conventional updates to spatial data structures [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], this
mechanism will exploit the concurrent updates of Vecstra and
recent work on [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] for the maximal performance.
Design of Integration Language for Geospatial Web
services. Now Vecstra provides WCS and WFS to users;
however, queries are only for raster or vector data, which
is the same with the current geospatial service databases.
We want to go further in this aspect, that is, to design an
integration language to combine geospatial data. For
example, to stay standards-compliant, we can implement Web
Processing Service (WPS) [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] that can help users de ne the
execution way of a process and also handle the output of the
process. Widely used standard Web Map Service (WMS)
[
        <xref ref-type="bibr" rid="ref43">43</xref>
        ] is also a solution. By doing that, a user can get
geospatial information such as both raster and vector data from
one single query which can provide them a better view in a
convenient way. Further research can be done on the basis
of this to achieve a better balance expressivity and
performance; for instance, we can provide specialized support for
a subset of scripts such as support adapting data to scale in
zoomable maps.
      </p>
    </sec>
    <sec id="sec-6">
      <title>4. CONCLUSION</title>
      <p>In this paper, we investigated current geospatial data
management systems and discussed challenges. To address these
challenges, our goal is to build an e cient and scalable OGC
standard-compliant in-memory geospatial cache. We
specialized API of standard geospatial services and sought to
achieve by this method a much higher performing in-memory
geospatial cache implementation than possible by combining
generic components such as a geospatial application server
and SQL database. To achieve that, we started by building
our initial version of Vecstra and obtained preliminary
results on it. We described the problems that need to be solved
in our future research and proposed possible methods. First,
nd an optimized window query approach. Second, exploit
the e cient updates in the multi-core cache. Third, design
an integration language for geospatial services.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Siyal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Najam</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Najam</surname>
          </string-name>
          .
          <article-title>Challenges and Issues in Modern Computer Architectures. In Fuzzy Logic Based Power-E cient Real-Time Multi-Core System</article-title>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Aji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Saltz</surname>
          </string-name>
          .
          <article-title>Hadoop-GIS: A High Performance Spatial Data Warehousing System over MapReduce</article-title>
          .
          <source>Proc. VLDB</source>
          ,
          <volume>6</volume>
          <fpage>11</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Annex</surname>
          </string-name>
          .
          <article-title>Geowave provides geospatial and temporal indexing on top of Accumulo and</article-title>
          HBase,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Baumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dehmel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Furtado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ritsch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Widmann</surname>
          </string-name>
          .
          <article-title>The multidimensional database system RasDaMan</article-title>
          .
          <source>In Acm Sigmod Record</source>
          , volume
          <volume>27</volume>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N.</given-names>
            <surname>Black</surname>
          </string-name>
          .
          <article-title>Geo-location custom indexes</article-title>
          ,
          <year>2018</year>
          .
          <source>US Patent 9</source>
          ,
          <issue>875</issue>
          ,
          <fpage>321</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bocher</surname>
          </string-name>
          , G. Petit,
          <string-name>
            <given-names>N.</given-names>
            <surname>Fortin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Palominos</surname>
          </string-name>
          .
          <article-title>H2gis a spatial database to feed urban climate issues</article-title>
          .
          <source>In ICUC9</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bonfort</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Bonfort. MapCache: The Fast Tiling Server From The MapServer Project</surname>
          </string-name>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Botts</surname>
          </string-name>
          , G. Percivall,
          <string-name>
            <given-names>C.</given-names>
            <surname>Reed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Davidson</surname>
          </string-name>
          .
          <article-title>Ogc R sensor web enablement: Overview and high level architecture</article-title>
          .
          <source>In GeoSensor networks</source>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Carlson</surname>
          </string-name>
          . Redis in action.
          <source>Manning Publications Co.</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>K.-T. Chang</surname>
          </string-name>
          .
          <article-title>Introduction to geographic information systems</article-title>
          .
          <string-name>
            <surname>McGraw-Hill</surname>
            <given-names>Science</given-names>
          </string-name>
          /Engineering/Math,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A. T.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. F.</given-names>
            <surname>Kaashoek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zeldovich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Morris</surname>
          </string-name>
          , and
          <string-name>
            <surname>E. Kohler.</surname>
          </string-name>
          <article-title>The scalable commutativity rule: Designing scalable software for multicore processors</article-title>
          .
          <source>ACM TOCS</source>
          ,
          <volume>32</volume>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.</given-names>
            <surname>Deoliveira</surname>
          </string-name>
          .
          <article-title>Geoserver: uniting the GeoWeb and spatial data infrastructures</article-title>
          .
          <source>In Proc. GSDI-10</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Diaconu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Freedman</surname>
          </string-name>
          , E. Ismert,
          <string-name>
            <given-names>P.-A.</given-names>
            <surname>Larson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mittal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Stonecipher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Verma</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Zwilling</surname>
          </string-name>
          .
          <article-title>Hekaton: SQL server's memory-optimized OLTP engine</article-title>
          .
          <source>In Proc. 2013 ACM SIGMOD.</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Eldawy</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. F.</given-names>
            <surname>Mokbel</surname>
          </string-name>
          .
          <article-title>Spatialhadoop: A mapreduce framework for spatial data</article-title>
          .
          <source>In ICDE, IEEE</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Fitzpatrick</surname>
          </string-name>
          .
          <article-title>Distributed caching with memcached</article-title>
          .
          <source>Linux journal</source>
          ,
          <year>2004</year>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Gu</surname>
          </string-name>
          <article-title>ting. An introduction to spatial database systems</article-title>
          .
          <source>VLDB</source>
          ,
          <volume>3</volume>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Holl</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Plum</surname>
          </string-name>
          . Postgis. GeoInformatics,
          <volume>3</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ravada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Anderson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bamba</surname>
          </string-name>
          .
          <article-title>Topological relationship query processing for complex regions in Oracle Spatial</article-title>
          .
          <source>In Proceedings of the 20th International Conference on Advances in Geographic Information Systems. ACM</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Hughes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Annex</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. N.</given-names>
            <surname>Eichelberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fox</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hulbert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ronquest</surname>
          </string-name>
          .
          <article-title>Geomesa: a distributed architecture for spatio-temporal fusion</article-title>
          .
          <source>In SPIE: Geospatial Informatics</source>
          , Fusion, and
          <string-name>
            <surname>Motion Video Analytics</surname>
            <given-names>V</given-names>
          </string-name>
          , volume
          <volume>9473</volume>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Iyer</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Stoica.</surname>
          </string-name>
          <article-title>A scalable distributed spatial index for the internet-of-things</article-title>
          .
          <source>In Proc. ACM SoCC</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. E.</given-names>
            <surname>Jacobsen</surname>
          </string-name>
          .
          <article-title>A Scalable Geospatial System for Range Queries in Data-Driven Precision Agriculture</article-title>
          .
          <source>Master's thesis</source>
          , University of Copenhagen, Denmark,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Jeppesen</surname>
          </string-name>
          , E. Ebeid,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Jacobsen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T. S.</given-names>
            <surname>Toftegaard</surname>
          </string-name>
          .
          <article-title>Open geospatial infrastructure for data management and analytics in interdisciplinary research</article-title>
          . Computers and Electronics in Agriculture,
          <volume>145</volume>
          :
          <fpage>130</fpage>
          {
          <fpage>141</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Jeppesen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Jacobsen</surname>
          </string-name>
          ,
          <string-name>
            <surname>R. N.</surname>
          </string-name>
          <article-title>J rgensen, and</article-title>
          <string-name>
            <given-names>T. S.</given-names>
            <surname>Toftegaard</surname>
          </string-name>
          .
          <article-title>Towards data-driven precision agriculture using open data and open source software</article-title>
          .
          <source>In International Conference on Agricultural Engineering</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , I. Pandis,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ailamaki</surname>
          </string-name>
          .
          <article-title>Eliminating unscalable communication in transaction processing</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>23</volume>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kornacker</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Banks</surname>
          </string-name>
          .
          <article-title>High-concurrency locking in R-trees</article-title>
          .
          <source>In VLDB</source>
          , volume
          <volume>95</volume>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kropla</surname>
          </string-name>
          .
          <article-title>Beginning MapServer: open source GIS development</article-title>
          .
          <source>Apress</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lahiri</surname>
          </string-name>
          , M.
          <article-title>-</article-title>
          <string-name>
            <surname>A. Neimat</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Folkman</surname>
          </string-name>
          .
          <article-title>Oracle TimesTen: An In-Memory Database for Enterprise Applications</article-title>
          .
          <article-title>IEEE Data Eng</article-title>
          . Bull.,
          <volume>36</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>Y.-F.</given-names>
            <surname>Nie</surname>
          </string-name>
          , H.-L. Liu, and
          <string-name>
            <surname>H. Xu.</surname>
          </string-name>
          <article-title>Research on GeoWebCache tile map service middleware</article-title>
          .
          <source>Science of Surveying and Mapping</source>
          ,
          <volume>36</volume>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nishimura</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Yokota</surname>
          </string-name>
          . Quilts:
          <article-title>Multidimensional Data Partitioning Framework Based on Query-Aware and Skew-Tolerant Space-Filling Curves</article-title>
          .
          <source>In Proc. ACM SIGMOD</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>M.</given-names>
            <surname>Orru</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paolillo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Detti</surname>
          </string-name>
          , G. Rossi, and
          <string-name>
            <given-names>N. B.</given-names>
            <surname>Melazzi</surname>
          </string-name>
          .
          <article-title>Demonstration of OpenGeoBase: The ICN NoSQL spatio-temporal database</article-title>
          .
          <source>In IEEE LANMAN</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>B.-U.</given-names>
            <surname>Pagel</surname>
          </string-name>
          , H.-W. Six,
          <string-name>
            <given-names>H.</given-names>
            <surname>Toben</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Widmayer</surname>
          </string-name>
          .
          <article-title>Towards an analysis of range query performance in spatial data structures</article-title>
          .
          <source>In Proc. PODS</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>V.</given-names>
            <surname>Pandey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kipf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vorona</surname>
          </string-name>
          , T. Muhlbauer, T. Neumann,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kemper</surname>
          </string-name>
          .
          <article-title>High-performance geospatial analytics in hyperspace</article-title>
          .
          <source>In Proc. ACM SIGMOD</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>J.</given-names>
            <surname>Reinders</surname>
          </string-name>
          .
          <article-title>Intel threading building blocks: out tting C++ for multi-core processor parallelism. "</article-title>
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          ,
          <source>Inc."</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>P.</given-names>
            <surname>Schut</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Whiteside</surname>
          </string-name>
          .
          <article-title>Opengis web processing service</article-title>
          .
          <source>OGC project document</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>N.</given-names>
            <surname>Shamgunov</surname>
          </string-name>
          .
          <article-title>The MemSQL In-Memory Database System</article-title>
          .
          <source>In IMDM@ VLDB</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>D.</given-names>
            <surname>Sidlauskas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Saltenis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C. S.</given-names>
            <surname>Jensen</surname>
          </string-name>
          .
          <article-title>Processing of extreme moving-object update and query workloads in main memory</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>23</volume>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>B.</given-names>
            <surname>Sowell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Salles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Demers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gehrke</surname>
          </string-name>
          .
          <article-title>An experimental analysis of iterated spatial joins in main memory</article-title>
          .
          <source>Proc. VLDB</source>
          ,
          <volume>6</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>A.</given-names>
            <surname>Stefanidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Crooks</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Radzikowski</surname>
          </string-name>
          .
          <article-title>Harvesting ambient geospatial information from social media feeds</article-title>
          .
          <source>GeoJournal</source>
          ,
          <volume>78</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>M.</given-names>
            <surname>Stonebraker</surname>
          </string-name>
          and
          <string-name>
            <given-names>U.</given-names>
            <surname>Cetintemel</surname>
          </string-name>
          .
          <article-title>" one size ts all": an idea whose time has come and gone</article-title>
          .
          <source>In Proc. IEEE ICDE</source>
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>T. P.</given-names>
            <surname>Universe</surname>
          </string-name>
          .
          <source>Introducing Spacebase: a New Realtime Spatial Data Store, 21 March</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>O.</given-names>
            <surname>WCS. Web Coverage Service</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>O.</given-names>
            <surname>WFS</surname>
          </string-name>
          .
          <article-title>Web Feature Service</article-title>
          . OGC. URL: http://www. opengeospatial. org/standards/wfs,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>O.</given-names>
            <surname>WMS. Web Map Service</surname>
          </string-name>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>