Efficient Processing of Range Queries in Main Memory

Efficient Processing of Range Queries in Main Memory

Efficient Processing of Range Queries in Main Memory DISSERTATION zur Erlangung des akademischen Grades Dr. rer. nat. im Fach Informatik eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät der Humboldt-Universität zu Berlin von M.Sc. Stefan Sprenger Präsidentin der Humboldt-Universität zu Berlin: Prof. Dr.-Ing. Dr. Sabine Kunst Dekan der Mathematisch-Naturwissenschaftlichen Fakultät: Prof. Dr. Elmar Kulke Gutachter: 1. Prof. Dr.-Ing. Ulf Leser 2. Prof. Dr. Odej Kao 3. Prof. Dr.-Ing. Kai-Uwe Sattler Tag der mündlichen Prüfung: 15. Februar 2019 Abstract Over the last two decades, the hardware landscape has fundamentally changed, shaping the architecture of modern database systems. First, main memory becomes a popular choice for primary data storage, since current server machines can feature up to several terabytes of main memory. Second, modern CPUs get tremendously parallel providing both data- and task-level parallelism. They support SIMD instructions, which can simultaneously process multiple data elements. Moreover, stand-alone CPUs host an ever increasing number of cores, which can be considered as independent processing units. Recent many-core CPUs install up to 72 cores on one chip. Database systems employ index structures as means to accelerate search queries. Over the last years, the research community has proposed many different in-memory approaches that optimize cache misses instead of disk I/O, as opposed to disk-based systems, and make use of the grown parallel capabilities of modern CPUs. However, these techniques mainly focus on single-key lookups, but neglect equally important range queries. Range queries are an ubiquitous operator in data management commonly used in numerous domains, such as genomic analysis, sensor networks, or online analytical processing. The main goal of this dissertation is thus to improve the capabilities of main-memory database systems with regard to executing range queries. To this end, we first propose a cache-optimized, updateable main-memory index structure, the cache-sensitive skip list, which targets the ex- ecution of range queries on single database columns. Second, we study the performance of multidimensional range queries on modern hardware, where data are stored in main memory and processors support SIMD instructions and multi-threading. We re-evaluate a previous rule of thumb suggesting that, on disk-based systems, scans outperform index structures for selec- tivities of approximately 15-20% or more. To increase the practical relevance of our analysis, we also contribute a novel benchmark consisting of several realistic multidimensional range queries applied to real-world genomic data. Third, based on the outcomes of our experimental analysis, we devise a novel, fast and space-efficient, main-memory based index structure, the BB-Tree, which supports multidimensional range and point queries and provides a parallel search operator that leverages the multi-threading capabilities of modern CPUs. iii Zusammenfassung Innerhalb der letzten zwanzig Jahre haben sich die Hardwarekomponenten von Serversystemen stark weiterentwickelt, wodurch die Architektur von modernen Datenbanksystemen entscheidend geprägt wurde. Zum einen wird der Hauptspeicher als primärer Speicherort für Datenbanksys- teme verwendet. Aktuelle Serversysteme sind mit bis zu einigen Terabytes an Hauptspeicher ausgestattet, was durch steigende Kapazitäten und fallende Preise ermöglicht wird. Zum anderen sind aktuelle Prozessoren höchst parallel. Sie unterstützen datenparallele SIMD-Instruktionen, mit denen mehrere Werte mit einer Instruktion verarbeitet werden können, und installieren eine immer größere Anzahl an Prozessorkernen auf einen Chip. Datenbanksysteme verwenden Indexstrukturen, um Suchanfragen zu beschleunigen. Im Laufe der letzten Jahre haben Forscher verschiedene Ansätze zur Indexierung von Datenbanktabellen im Hauptspeicher entworfen. Hauptspeicherindexstrukturen versuchen möglichst häufig Daten zu verwenden, die bereits im Zwischenspeicher der CPU vorrätig sind, anstatt, wie bei tra- ditionellen Datenbanksystemen, die Zugriffe auf den externen Speicher zu optimieren. Die meisten vorgeschlagenen Indexstrukturen für den Hauptspeicher beschränken sich jedoch auf Punktabfragen und vernachlässigen die ebenso wichtigen Bereichsabfragen, die in zahlreichen Anwendungen, wie in der Analyse von Genomdaten, Sensornetzwerken, oder analytischen Daten- banksystemen, zum Einsatz kommen. Diese Dissertation verfolgt als Hauptziel die Fähigkeiten von modernen Hauptspeicherdaten- banksystemen im Ausführen von Bereichsabfragen zu verbessern. Dazu schlagen wir zunächst die Cache-Sensitive Skip List, eine neue aktualisierbare Hauptspeicherindexstruktur, vor, die für die Zwischenspeicher moderner Prozessoren optimiert ist und das Ausführen von Bereichsabfra- gen auf einzelnen Datenbankspalten ermöglicht. Im zweiten Abschnitt analysieren wir die Per- formanz von multidimensionalen Bereichsabfragen auf modernen Serverarchitekturen, bei de- nen Daten im Hauptspeicher hinterlegt sind und Prozessoren über SIMD-Instruktionen und Multithreading verfügen. Um die Relevanz unserer Experimente für praktische Anwendungen zu erhöhen, schlagen wir zudem einen realistischen Benchmark für multidimensionale Bere- ichsabfragen vor, der auf echten Genomdaten ausgeführt wird. Im letzten Abschnitt der Disser- tation präsentieren wir den BB-Tree als neue, hochperformante und speichereffiziente Hauptspe- icherindexstruktur. Der BB-Tree ermöglicht das Ausführen von multidimensionalen Bereichs- und Punktabfragen und verfügt über einen parallelen Suchoperator, der mehrere Threads ver- wenden kann, um die Performanz von Suchanfragen zu erhöhen. v Contents 1 Introduction 1 1.1 Motivation.......................................1 1.2 Problem Definition and Contributions........................3 1.3 Outline.........................................5 1.4 Prior Publications...................................6 2 Fundamentals 7 2.1 Terminology.......................................7 2.2 Multidimensional Access Methods..........................8 2.2.1 Sequential Scan.................................9 2.2.2 Point Access Methods (PAM)......................... 11 2.2.3 Spatial Access Methods (SAM)........................ 17 2.3 Index Structures on Modern Hardware........................ 23 2.3.1 Modern Memory Hierarchy.......................... 23 2.3.2 Single Instruction Multiple Data (SIMD).................. 25 2.3.3 Multi-Core CPUs and Simultaneous Multithreading (SMT)........ 26 2.4 Genomic Multidimensional Range Query Benchmark (GMRQB)......... 28 2.4.1 Range Queries on Genomic Variant Data.................. 29 2.4.2 Real-World Data Set.............................. 30 2.4.3 Realistic Range Query Templates....................... 33 3 CSSL: Processing One-Dimensional Range Queries in Main Memory 35 3.1 Related Work...................................... 36 3.2 Conventional Skip Lists................................ 37 3.3 Cache-Sensitive Skip Lists (CSSL).......................... 40 3.3.1 Memory Layout................................. 40 3.3.2 Search Algorithms and Updates........................ 42 3.4 Evaluation........................................ 47 3.4.1 Experimental Setup.............................. 47 3.4.2 Experimental Data and Workloads...................... 48 3.4.3 Range Queries................................. 49 3.4.4 Lookups..................................... 52 3.4.5 Mixed Workloads................................ 53 3.4.6 Space Consumption.............................. 53 3.5 Discussion........................................ 54 3.6 Summary........................................ 55 vii Contents 4 An Analysis of Multidimensional Range Queries on Modern Hardware 57 4.1 Partitioning for Parallelization............................ 58 4.2 Vectorizing Range Queries............................... 61 4.3 Conservative Adaptation of Multidimensional Index Structures.......... 63 4.4 Evaluation........................................ 66 4.4.1 Experimental Setup.............................. 67 4.4.2 Experimental Data and Workloads...................... 68 4.4.3 Impact of Multithreading and Vectorization................. 69 4.4.4 Synthetic Data................................. 71 4.4.5 Sensor Data from Hi-Tech Manufacturing Equipment............ 75 4.4.6 Genomic Variant Data............................. 75 4.4.7 Scalability.................................... 76 4.4.8 Space Consumption.............................. 77 4.4.9 Other Evaluation Platform.......................... 78 4.5 Discussion........................................ 79 4.6 Summary........................................ 82 5 BB-Trees: Processing Multidimensional Range Queries in Main Memory 83 5.1 Data Organization................................... 85 5.2 Bubble Buckets..................................... 90 5.3 Building and Reorganizing BB-Trees......................... 92 5.4 Low-Cardinality Dimensions.............................. 94 5.5 Search Algorithms................................... 94 5.6 Parallel BB-Trees.................................... 96 5.7 Evaluation........................................ 98 5.7.1 Experimental Setup.............................. 98 5.7.2 Experimental Data and Workloads...................... 99 5.7.3 Impact of Bubble Bucket Capacities..................... 101 5.7.4 Point Queries.................................. 101 5.7.5 Range Queries................................. 102 5.7.6 Impact of Dimensionality........................... 106 5.7.7

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    153 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us