## 2 Related Work
### Distributed and Parallel Spatiotemporal Data Processing Methods  
Reference [1] proposes ST-Hadoop. ST-Hadoop is an extension of Apache Hadoop that injects spatiotemporal recognition in four layers of code bases such as language, indexing, MapReduce, and the operating layer. A key point that underpins ST-Hadoop's performance improvement is the idea of indexing data being loaded and divided over time through compute nodes. Hadoop-GIS [2] extends Hadoop for handling large spatial data using the MapReduce framework. It separates the data and store it in HDFS and adds the global index to each tile that is stored in HDFS and shared among the cluster nodes. Its query engine can index data quickly if needed and is stored in memory for faster query processing. Its basic indexing method uses Hilbert Tree and R *-tree for global and local data indexing. Advanced indexing methods support several partitioning and indexing strategies such as fixed grid, binary partitioning, Hilbert curve, strip, optimized strip, and R-tree. Optimal strategies can be selected during spatial data processing. Spatial Hadoop [3] consists of multiple layers of Hadoop such as storage, MapReduce, operational, and language layers. At the storage layer, it has added a two-level index structure (global and local indexes). The global index is created for each data partition in the cluster, and the local index constitutes the data within each node. Consequently, while processing a query operation, it can take advantage of information about which nodes are mapped to which nodes and which blocks of that node are relevant. This can speed up query processing. Parallel SECONDO [4] is a parallel and distributed version of SECONDO [20] database system based on a cluster of computers. It integrates Hadoop with SECONDO databases and provides almost all existing SECONDO data types and operators. SECONDO, which is a base system of Parallel SECONDO, is a database management system to support spatial and spatiotemporal data management. SECONDO provides data types and operators to represent and process the queries of moving objects such as vehicles, animals, and trajectories. Parallel SECONDO becomes possible to process spatiotemporal queries and analyses on the large amount of moving object data and sets of trajectory data in the cloud. Like Hadoop GIS [2], Parallel SECONDO uses HDFS as the communication way between data and tasks. GeoSpark [7] is an in-memory cluster computing framework for processing large spatial data. It extends Apache Spark to support spatial data types and operations. It uses Quad-Tree, R-Tree, Voronoi diagrams, and Fixed-Grid to efficiently partition spatial data among cluster nodes. Quad tree and R-tree indexing techniques are used to index the data on each node. SpatialSpark [8] implements several spatial operations on Apache Spark to analyze large-scale spatial data. A broadcast join is used to join a large data set to a small data set and supports two spatial join operations where partition joins are used to join two large data sets. Spatial data can be segmented using FixedGrid, BinarySplit, and SortTile partitioning techniques and indexing using R-trees. LocationSpark [9] is an efficient spatial data processing system based on Apache Spark. Its query scheduler includes an efficient cost model and a query execution plan that can mitigate and handle data partition and query skew. Global indexes (grid and local quadtrees) partition spatial data between the various nodes and local indexes (R-tree, Quadtree transform, or IRtree) that are used to index the data on each node. LocationSpark also uses a spatial bloom filter to reduce the cost of communication for global spatial indexes, which can determine whether a spatial point is within a spatial extent. Finally,to efficiently manage main memory, frequently accessed data is dynamically cached in memory and less frequently used data is stored on disk, greatly reducing the number of IO operations.