Packed-Memory Quadtree: a Cache-Oblivious Data Structure for Visual Exploration of Streaming Spatiotemporal Big Data Julio Toss, Cicero A

Total Page:16

File Type:pdf, Size:1020Kb

Packed-Memory Quadtree: a Cache-Oblivious Data Structure for Visual Exploration of Streaming Spatiotemporal Big Data Julio Toss, Cicero A Packed-Memory Quadtree: a cache-oblivious data structure for visual exploration of streaming spatiotemporal big data Julio Toss, Cicero A. L. Pahins, Bruno Raffin, João Luiz Dihl Comba To cite this version: Julio Toss, Cicero A. L. Pahins, Bruno Raffin, João Luiz Dihl Comba. Packed-Memory Quadtree: a cache-oblivious data structure for visual exploration of streaming spatiotemporal big data. Computers and Graphics, Elsevier, 2018, 76, pp.117-128. 10.1016/j.cag.2018.09.005. hal-01876579 HAL Id: hal-01876579 https://hal.archives-ouvertes.fr/hal-01876579 Submitted on 18 Sep 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Packed-Memory Quadtree: a cache-oblivious data structure for visual exploration of streaming spatiotemporal big data Julio Toss1,2,C´ıcero A. L. Pahins1, Bruno Raffin2, and Joao˜ L. D. Comba1 1Instituto de Informatica´ - UFRGS, Porto Alegre, Brazil 2Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG, 38000 Grenoble September 18, 2018 Abstract 1 Introduction Advanced visualization tools are essential for big data analysis. Most approaches focus on large static datasets, but there is a growing interest in analyzing and visual- izing data streams upon generation. Twitter is a typical The visual analysis of large multidimensional spatiotem- example. The stream of tweets is continuous, and users poral datasets poses challenging questions regarding stor- want to be aware of the latest trends. This need is ex- age requirements and query performance. Several data pected to grow with the Internet of things (IoT) and mas- structures have recently been proposed to address these sive deployment of sensors that generate large and het- problems that rely on indexes that pre-compute differ- erogeneous data streams. Over the past years, several ent aggregations from a known-a-priori dataset. Con- in-memory big-data management systems have appeared sider now the problem of handling streaming datasets, in in academia and industry. In-memory databases systems which data arrive as one or more continuous data streams. avoid the overheads related to traditional I/O disk-based Such datasets introduce challenges to the data structure, systems and have made possible to perform interactive which now has to support dynamic updates (insertion- data-analysis over large amounts of data. A vast literature s/deletions) and rebalancing operations to perform self- of systems and research strategies deals with different as- reorganizations. In this work, we present the Packed- pects, such as the limited storage size and a multi-level Memory Quadtree (PMQ), a novel data structure designed memory-hierarchy of caches [42]. Maintaining the right to support visual exploration of streaming spatiotemporal data layout that favors locality of accesses is a determi- datasets. PMQ is cache-oblivious to perform well under nant factor for the performance of in-memory processing different cache configurations. We store streaming data systems. in an internal index that keeps a spatiotemporal ordering Stream processing engines like Spark [41] or Flink [1] over the data following a quadtree representation, with support the concept of window, which collects the latest support for real-time insertions and deletions. We validate events without a specific data organization. It is possi- our data structure under different dynamic scenarios and ble to trigger the analysis upon the occurrence of a given compare to competing strategies. We demonstrate how criterion (time, volume, specific event occurrence). Af- PMQ could be used to answer different types of visual ter a window is updated, the system shifts the process- spatiotemporal range queries of streaming datasets. ing to the next batch of events. There is a need to go 1 b a c d Figure 1: A Twitter stream is consumed in real-time, indexed and stored in the Packed-Memory Quadtree. (a) : live heat-map displays tweets in the current time window. (b) : alerts indicate regions with high activity of Twitter posts at the moment. (c) : the interface allows to drill-down into any region and query the current data. (d) : the actual data can be retrieved from the Packed-Memory Quadtree to analyze the tweets in the region of interest. one step further to keep a live window continuously up- ton index [17], thus ensuring spatial locality in the ar- dated while having a fine grain data replacement policy ray while defining an implicit, recursive quadtree, which to control the memory footprint. The challenge is the de- leads to efficient spatiotemporal queries. We validate sign of dynamic data structures to absorb high rate data PMQ for consuming a stream of tweets to answer visual streams, stash away the oldest data to stay in the allowed and range queries. Figure 1 shows the user interface pro- memory budget while enabling fast queries executions to totype built to support the data analysis process. PMQ update visual representations. A possible solution is the significantly outperforms the widely adopted spatial in- extension of database structures like R-trees [20] used dexing data structure R-tree, typically used by relational in SpatiaLite [37] or PostGis [34], or to develop dedi- databases, as well as the conjunction of Geohash and B+- cated frameworks like Kite [26] based on a pyramid struc- tree, typically used by NoSQL databases [15]. In sum- ture [27, 28]. mary, we contribute (1) a self-organized cache-oblivious In this paper, we propose a novel self-organized cache- data structure for storing and indexing large streaming oblivious data structure, called Packed-Memory Quadtree spatiotemporal datasets; (2) algorithms to support real- (PMQ), for in-memory storage and indexing of fixed time visual and range queries over streaming data; (3) length records tagged with a spatiotemporal index. We performance comparison against tried and trusted index- store the data in an array with a controlled density of ing data structures used by relational and non-relational gaps (i.e., empty slots) that benefits from the properties databases. of the Packed Memory Arrays [3]. The empty slots guar- antee that insertions can be performed with a low amor- 2 Related Work tized number of data movements (O(log2(N))) while en- abling efficient spatiotemporal queries. During insertions, In building an efficient system to enable interactive explo- we rebalance parts of the array when required to respect ration of data streams, we must deal with challenges com- density constraints, and the oldest data is stashed away mon to areas like in-memory big-data, stream processing, when reaching the memory budget. To spatially subdi- geospatial processing, and information visualization. vide the data, we sort the records according to their Mor- Data Structures. Data structures need to dynamically 2 process streams of geospatial data while enabling the fast rameters. Such data structures are interesting today since execution of spatiotemporal queries, such as the top-k the memory hierarchy is getting deeper and more complex query that ranks and returns only the k most relevant with different block sizes. Cache-oblivious data struc- data matching predefined spatiotemporal criteria. One tures are seamlessly efficient in this context. Bender et approach is to store data continuously in a dense array al. [3, 4] also proposed to store a B-tree on a PMA using following the order given by a space-filling curve, which a van Emde Boas layout, leading to a cache-oblivious B- leads to desirable data locality. Inserting an element takes tree. However, it leads to a complex data structure with- on average O(n) data movements, i.e., the number of el- out a known practical implementation. Still, PMA has ements to move to make room for the newly inserted el- few known applications. Mali et al. [29] used PMA for ement. The cost of memory allocations can be reduced dynamics graphs. Durand et al. [12] relied on PMA to using an amortized scheme that doubles the size of the ar- search for neighbors in particle-based numerical simula- ray every time it gets full. However, elements are often tions. They indexed particles in PMA based on the Mor- inserted in batches in an already sorted array. In that case, ton index computed from their 3D coordinates. They pro- one approach is to use adaptive sorting algorithms to take posed an efficient scheme for batch insertion of elements, advantage of already sorted sequences [13, 11, 31]. Tim- while Bender relied on single element insertions. In this sort [33] is an example of an adaptive sorting algorithm paper, we propose to extend PMA for in-memory storage with efficient implementations. We show experiments of streamed geospatial data. that compare our data structure to Timsort. Another pos- sibility is to rely on trees of linked arrays. The B-tree [2] Stream Processing and Datacubes Structures. Stream and its variations [10] are probably the most common data processing engines, like GeoInsight for MS SQL structure for databases. The UB-Tree is a B-tree for mul- StreamInsight [22], are tailored for single-pass processing tidimensional data using space-filling curves [35]. These of the incoming data without the need to keep in memory structures are seldom used for in-memory storage with a a large window of events that require an advanced data high insertion rate. They are competitive when data ac- structure. The emergence of geospatial databases led to cess time is large enough compared to management over- the development of a specialized tree, called R-Tree [20], heads, often the case for on-disk storage.
Recommended publications
  • L11: Quadtrees CSE373, Winter 2020
    L11: Quadtrees CSE373, Winter 2020 Quadtrees CSE 373 Winter 2020 Instructor: Hannah C. Tang Teaching Assistants: Aaron Johnston Ethan Knutson Nathan Lipiarski Amanda Park Farrell Fileas Sam Long Anish Velagapudi Howard Xiao Yifan Bai Brian Chan Jade Watkins Yuma Tou Elena Spasova Lea Quan L11: Quadtrees CSE373, Winter 2020 Announcements ❖ Homework 4: Heap is released and due Wednesday ▪ Hint: you will need an additional data structure to improve the runtime for changePriority(). It does not affect the correctness of your PQ at all. Please use a built-in Java collection instead of implementing your own. ▪ Hint: If you implemented a unittest that tested the exact thing the autograder described, you could run the autograder’s test in the debugger (and also not have to use your tokens). ❖ Please look at posted QuickCheck; we had a few corrections! 2 L11: Quadtrees CSE373, Winter 2020 Lecture Outline ❖ Heaps, cont.: Floyd’s buildHeap ❖ Review: Set/Map data structures and logarithmic runtimes ❖ Multi-dimensional Data ❖ Uniform and Recursive Partitioning ❖ Quadtrees 3 L11: Quadtrees CSE373, Winter 2020 Other Priority Queue Operations ❖ The two “primary” PQ operations are: ▪ removeMax() ▪ add() ❖ However, because PQs are used in so many algorithms there are three common-but-nonstandard operations: ▪ merge(): merge two PQs into a single PQ ▪ buildHeap(): reorder the elements of an array so that its contents can be interpreted as a valid binary heap ▪ changePriority(): change the priority of an item already in the heap 4 L11: Quadtrees CSE373,
    [Show full text]
  • Search Trees
    Lecture III Page 1 “Trees are the earth’s endless effort to speak to the listening heaven.” – Rabindranath Tagore, Fireflies, 1928 Alice was walking beside the White Knight in Looking Glass Land. ”You are sad.” the Knight said in an anxious tone: ”let me sing you a song to comfort you.” ”Is it very long?” Alice asked, for she had heard a good deal of poetry that day. ”It’s long.” said the Knight, ”but it’s very, very beautiful. Everybody that hears me sing it - either it brings tears to their eyes, or else -” ”Or else what?” said Alice, for the Knight had made a sudden pause. ”Or else it doesn’t, you know. The name of the song is called ’Haddocks’ Eyes.’” ”Oh, that’s the name of the song, is it?” Alice said, trying to feel interested. ”No, you don’t understand,” the Knight said, looking a little vexed. ”That’s what the name is called. The name really is ’The Aged, Aged Man.’” ”Then I ought to have said ’That’s what the song is called’?” Alice corrected herself. ”No you oughtn’t: that’s another thing. The song is called ’Ways and Means’ but that’s only what it’s called, you know!” ”Well, what is the song then?” said Alice, who was by this time completely bewildered. ”I was coming to that,” the Knight said. ”The song really is ’A-sitting On a Gate’: and the tune’s my own invention.” So saying, he stopped his horse and let the reins fall on its neck: then slowly beating time with one hand, and with a faint smile lighting up his gentle, foolish face, he began..
    [Show full text]
  • The Skip Quadtree: a Simple Dynamic Data Structure for Multidimensional Data
    The Skip Quadtree: A Simple Dynamic Data Structure for Multidimensional Data David Eppstein† Michael T. Goodrich† Jonathan Z. Sun† Abstract We present a new multi-dimensional data structure, which we call the skip quadtree (for point data in R2) or the skip octree (for point data in Rd , with constant d > 2). Our data structure combines the best features of two well-known data structures, in that it has the well-defined “box”-shaped regions of region quadtrees and the logarithmic-height search and update hierarchical structure of skip lists. Indeed, the bottom level of our structure is exactly a region quadtree (or octree for higher dimensional data). We describe efficient algorithms for inserting and deleting points in a skip quadtree, as well as fast methods for performing point location and approximate range queries. 1 Introduction Data structures for multidimensional point data are of significant interest in the computational geometry, computer graphics, and scientific data visualization literatures. They allow point data to be stored and searched efficiently, for example to perform range queries to report (possibly approximately) the points that are contained in a given query region. We are interested in this paper in data structures for multidimensional point sets that are dynamic, in that they allow for fast point insertion and deletion, as well as efficient, in that they use linear space and allow for fast query times. Related Previous Work. Linear-space multidimensional data structures typically are defined by hierar- chical subdivisions of space, which give rise to tree-based search structures. That is, a hierarchy is defined by associating with each node v in a tree T a region R(v) in Rd such that the children of v are associated with subregions of R(v) defined by some kind of “cutting” action on R(v).
    [Show full text]
  • CS 240 – Data Structures and Data Management Module 8
    CS 240 – Data Structures and Data Management Module 8: Range-Searching in Dictionaries for Points Mark Petrick Based on lecture notes by many previous cs240 instructors David R. Cheriton School of Computer Science, University of Waterloo Fall 2020 References: Goodrich & Tamassia 21.1, 21.3 version 2020-10-27 11:48 Petrick (SCS, UW) CS240 – Module 8 Fall 2020 1 / 38 Outline 1 Range-Searching in Dictionaries for Points Range Searches Multi-Dimensional Data Quadtrees kd-Trees Range Trees Conclusion Petrick (SCS, UW) CS240 – Module 8 Fall 2020 Outline 1 Range-Searching in Dictionaries for Points Range Searches Multi-Dimensional Data Quadtrees kd-Trees Range Trees Conclusion Petrick (SCS, UW) CS240 – Module 8 Fall 2020 Range searches So far: search(k) looks for one specific item. New operation RangeSearch: look for all items that fall within a given range. 0 I Input: A range, i.e., an interval I = (x, x ) It may be open or closed at the ends. I Want: Report all KVPs in the dictionary whose key k satisfies k ∈ I Example: 5 10 11 17 19 33 45 51 55 59 RangeSerach( (18,45] ) should return {19, 33, 45} Let s be the output-size, i.e., the number of items in the range. We need Ω(s) time simply to report the items. Note that sometimes s = 0 and sometimes s = n; we therefore keep it as a separate parameter when analyzing the run-time. Petrick (SCS, UW) CS240 – Module 8 Fall 2020 2 / 38 Range searches in existing dictionary realizations Unsorted list/array/hash table: Range search requires Ω(n) time: We have to check for each item explicitly whether it is in the range.
    [Show full text]
  • CS106X Handout
    CS106X Autumn 2015 Cynthia Lee Section 6 (Week 7) Handout Problem and solution authors include Jerry Cain and Cynthia Lee. Problem 1: Tree Rotations Recall in class we saw the video of the insertions to a red-black tree, which first followed the usual insert algorithm (go left if key being inserted is less than current, go right if greater than current), and then did additional “rotations” that rebalanced the tree. Now is your chance to explore the code that makes the rebalancing happen. Rotations have other uses; for example, in Splay trees, they can be used to migrate more commonly-used elements towards the root. Suppose that a binary search tree has grown to store the first seven integers, as has the tree drawn to the right. Suppose that a program then searches for the 5. Clearly the search would succeed, but the standard implementation would leave the node in the same position, and later searches for the same element would take the same amount of time. A cleverer implementation would anticipate another search for 5 is likely, and would change the pointer structure in the vicinity of the 5 by performing what is called a left-rotation. A left rotation pivots around the link between a node and its parent, so that the child of the link rotates counterclockwise to become the parent of its parent. In our example above, a left- rotation would change the structure according to the figure on the right. Note that the restructuring is a local operation, in that only a constant number of pointers need to be updated.
    [Show full text]
  • Geometric Search
    Geometric Search range search quad- and kD-trees • range search • quad and kd trees intersection search • intersection search VLSI rules checking • VLSI rules check References: Algorithms 2nd edition, Chapter 26-27 Intro to Algs and Data Structs, Section Copyright © 2007 by Robert Sedgewick and Kevin Wayne. 3 Overview 1D Range Search Types of data. Points, lines, planes, polygons, circles, ... Extension to symbol-table ADT with comparable keys. This lecture. Sets of N objects. ! Insert key-value pair. ! Search for key k. ! Geometric problems extend to higher dimensions. How many records have keys between k1 and k2? ! ! Good algorithms also extend to higher dimensions. Iterate over all records with keys between k1 and k2. ! Curse of dimensionality. Application: database queries. Basic problems. ! Range searching. insert B B ! Nearest neighbor. insert D B D insert A A B D ! Finding intersections of geometric objects. Geometric intuition. insert I A B D I ! Keys are point on a line. insert H A B D H I ! How many points in a given interval? insert F A B D F H I insert P A B D F H I P count G to K 2 search G to K H I 2 4 1D Range search: implementations 2D Orthogonal range Ssearch: Grid implementation Range search. How many records have keys between k1 and k2? Grid implementation. [Sedgewick 3.18] ! Divide space into M-by-M grid of squares. ! Ordered array. Slow insert, binary search for k1 and k2 to find range. Create linked list for each square. Hash table. No reasonable algorithm (key order lost in hash).
    [Show full text]
  • A Dynamic Data Structure for Approximate Range Searching
    A Dynamic Data Structure for Approximate Range Searching Eunhui Park Department of Computer Science University of Maryland College Park, Maryland [email protected] Abstract In this paper, we introduce a simple, randomized dynamic data structure for storing multidimensional point sets. Our particular focus is on answering approximate geometric retrieval problems, such as approximate range searching. Our data structure is essentially a partition tree, which is based on a balanced variant of the quadtree data structure. As such it has the desirable properties that it forms a hierarchical decomposition of space into cells, which are based on hyperrectangles of bounded aspect ratio, each of constant combinatorial complexity. In any fixed dimension d, we show that after O(n log n) preprocessing, our data structure can store a set of n points in Rd in space O(n) and height O(log n). It supports insertion in time O(log n) and deletion in time O(log2 n). It also supports ε-approximate spherical range (counting) queries in time 1 d−1 O log n +( ε ) , which is optimal for partition-tree based methods. All running times hold with high probability. Our data structure can be viewed as a multidimensional generalization of the treap data structure of Seidel and Aragon. Keywords: Geometric data structures, dynamic data structures, quadtrees, range searching, approxi- mation algorithms. 1 Introduction Recent decades have witnessed the development of many data structures for efficient geometric search and retrieval. A fundamental issue in the design of these data structures is the balance between efficiency, generality, and simplicity. One of the most successful domains in terms of simple, practical approaches has been the development of linear-sized data structures for approximate geometric retrieval problems involving points sets in low dimensional spaces.
    [Show full text]
  • Space-Partitioning Trees in Postgresql: Realization and Performance ∗
    Space-partitioning Trees in PostgreSQL: Realization and Performance ∗ Mohamed Y. Eltabakh Ramy Eltarras Walid G. Aref Computer Science Department, Purdue University fmeltabak, rhassan, [email protected] Abstract balanced trees (B+-tree-like trees), e.g., R-trees [7, 20, 34], SR-trees [25], and RD-trees [22], while SP-GiST supports Many evolving database applications warrant the use the class of space-partitioning trees, e.g., tries [10, 16], of non-traditional indexing mechanisms beyond B+-trees quadtrees [15, 18, 26, 30], and kd-trees [8]. Both frame- and hash tables. SP-GiST is an extensible indexing frame- works have internal methods that furnish general database work that broadens the class of supported indexes to include functionalities, e.g., generalized search and insert algo- disk-based versions of a wide variety of space-partitioning rithms, as well as user-defined external methods and pa- trees, e.g., disk-based trie variants, quadtree variants, and rameters that tailor the generalized index into one instance kd-trees. This paper presents a serious attempt at imple- index from the corresponding index class. GiST has been menting and realizing SP-GiST-based indexes inside Post- tested in prototype systems, e.g., in Predator [36] and in greSQL. Several index types are realized inside PostgreSQL PostgreSQL [39], and is not the focus of this study. facilitated by rapid SP-GiST instantiations. Challenges, ex- The purpose of this study is to demonstrate feasibility periences, and performance issues are addressed in the pa- and performance issues of SP-GiST-based indexes. Us- per. Performance comparisons are conducted from within ing SP-GiST instantiations, several index types are realized PostgreSQL to compare update and search performances of rapidly inside PostgreSQL that index string, point, and line SP-GiST-based indexes against the B+-tree and the R-tree segment data types.
    [Show full text]
  • An Overview of Quadtrees, Octrees, and Related Hierarchical Data Structures•
    AN OVERVIEW OF QUADTREES, OCTREES, AND RELATED HIERARCHICAL DATA STRUCTURES• Hanan Samet Computer Science Department University of Maryland College Park, Maryland 207 42 ABSTRACT An overview of hierarchical data structures for representing images, such as the quadtree and octree, is presented. They are based on the principle of recursive decomposition. The emphasis is on the representation of data used in applications in computer graphics, computer-aided design, robotics, computer vision, and cartography. There is a greater emphasis on region data (i.e., 2-dimensional shapes) and to a lesser extent on point, lin.e, and 3-dimension-al data. Keywords: quadtrees, octrees1 hierarchical data structures, computer graphics 1. INTRODUCTION """""'" · Hierarchical data structures are becoming increasingly important representation techniques in the domains of computer graphics, computer-aided design, robotics, computer vision, and cartography. They are based on the principle of recursive decomposition (similar to divide and conquer methods). One such data structure is the quadtree. As we shall see, the term quadtree has taken on a generic meaning. In this overview it is. our goal to show how a number of data structures used in different domains are related to each other and to quadtrees. Our presentation concentrates on these different representations and illustrates how some basic operations which use them are performed. Whenever possible, we give examples from the domain of .computer graphics. For a more extensive treatment of this subject, including a comprehensive set of references, see [Same84a, Same87]. This overview is organized as follows. Section 2 discusses the historical background of hierarchical data structures. Section 3 points out the key properties of hierarchical space decompositions.
    [Show full text]
  • Section Handout
    CS106B Handout 37 Autumn 2012 November 26th, 2012 Section Handout Discussion Problem 1: Quadtrees A quadtree is a rooted tree structure where each internal node has precisely four children. Every node in the tree represents a square, and if a node has children, each encodes one of that square’s four quadrants. Quadtrees have many applications in computer graphics, because they can be used as in- memory models of images. That they can be used as in-memory versions of black and white images is easily demonstrated via the following (borrowed from Wikipedia.org): The 8 by 8 pixel image on the left is modeled by the quadtree on the right. Note that all leaf nodes are either black or white, and all internal nodes are shaded gray. The internal nodes are gray to reflect the fact that they contain both black and white pixels. When the pixels covered by a particular node are all the same color, the color is stored in the form of a Boolean and all four children are set to NULL. Otherwise, the node’s sub-region is recursively subdivided into four sub-quadrants, each represented by one of four children. Given a Grid<bool> representation of a black and white image, implement the gridToQuadtree function, which reads the image data, constructs the corresponding quadtree, and returns its root. Frame your implementation around the following data structure: struct quadtree { int lowx, highx; // smallest and largest x value covered by node int lowy, highy; // smallest and largest y value covered by node bool isBlack; // entirely black? true.
    [Show full text]
  • Node
    Representation of multidimensional point data • How can we store multidimensional data, such as points in the plane, to also allow fast retrieval, updates and queries? • Quadtrees • k-d trees • Range trees and priority search trees Queries to point databases • Point query - determine if a specific point is in the database (rarely used) • Range query - identify the set of data points whose coordinate values fall within a certain range - e.g., all points within distance k of a given point, all points within a rectangular region, etc. • Nearest neighbor query - find the nearest neighbor(s) to a given point independent of how far away they might be. Range searching • Find all records whose key values fall between two limiting values • Easy to do for one-dimensional data using binary search trees • Let L and U specify the lower and upper bounds for the search • Start at the root of the BST holding key K • 1) If L <= K <= U, include K in the answer set • 2) If L <= K, then search the left subtree • 3) If K <= U, search the right subtree Range searching procedure BSTRangeSearch (L, U, P, f Op); b {Perform Op on each node, n, in BST s pointed at by P if L <= key(n)<= U} a e n v If P = nil return; K <-- Key(P); m q y If L <=K <= U then Op(P); if L <= K then BSTRange Search (L,U, r Left(P), Op); If K <= U then Range search from e to p BSTRangeSearch(L,U,Right(P), Op) Sets of points • Goal is to develop data structures for representing sets of points in the plane.
    [Show full text]
  • Algorithms for Joining R-Trees and Linear Region Quadtrees
    Algorithms for Joining R-Trees and Linear Region Quadtrees Antonio Corral?, Michael Vassilakopoulos??, and Yannis Manolopoulos Data Engineering Lab Department of Informatics Aristotle University 54006 Thessaloniki, Greece [email protected], [email protected], [email protected] Abstract. The family of R-trees is suitable for storing various kinds of multidimensional objects and is considered an excellent choice for indexing a spatial database. Region Quadtrees are suitable for storing 2-dimensional regional data and their linear variant is used in many Geographical Information Systems for this purpose. In this report, we present five algorithms suitable for processing join queries between these two successful, although very different, access methods. Two of the al- gorithms are based on heuristics that aim at minimizing I/O cost with a limited amount of main memory. We also present the results of exper- iments performed with real data that compare the I/O performance of these algorithms. Index terms: Spatial databases, access methods, R-trees, linear quad- trees, query processing, joins. 1 Introduction Several spatial access methods have been proposed in the literature for storing multi-dimensional objects (e.g. points, line segments, areas, volumes, and hyper- volumes). These methods are classified in one of the following two categories according to the principle guiding the hierarchical decomposition of data regions in each method. – Data space hierarchy: a region containing data is split (when, for example, a maximum capacity is exceeded) to sub-regions which depend on these data only (for example, each of two sub-regions contains half of the data) – Embedding space hierarchy: a region containing data is split (when a certain criterion holds) to sub-regions in a regular fashion (for example, a square region is always split in four quadrant sub-regions) ? Research performed under the European Union’s TMR Chorochronos project, con- tract number ERBFMRX-CT96-0056 (DG12-BDCN), while on leave from the Uni- versity of Almeria, Spain.
    [Show full text]