MonetDB: A column-oriented DBMS Ryan Johnson CSC2531.

Slides:



Advertisements
Similar presentations
Arjun Suresh S7, R College of Engineering Trivandrum.
Advertisements

Recent Progress In Embedded Memory Controller Design
C-Store: Self-Organizing Tuple Reconstruction Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY Apr. 17, 2009.
1 Memory Management Managing memory hierarchies. 2 Memory Management Ideally programmers want memory that is –large –fast –non volatile –transparent Memory.
1 HYRISE – A Main Memory Hybrid Storage Engine By: Martin Grund, Jens Krüger, Hasso Plattner, Alexander Zeier, Philippe Cudre-Mauroux, Samuel Madden, VLDB.
Thin Servers with Smart Pipes: Designing SoC Accelerators for Memcached Bohua Kou Jing gao.
Memory System Characterization of Big Data Workloads
Lecture 12: DRAM Basics Today: DRAM terminology and basics, energy innovations.
1 Chapter Seven Large and Fast: Exploiting Memory Hierarchy.
FAWN: A Fast Array of Wimpy Nodes Presented by: Aditi Bose & Hyma Chilukuri.
Last Time –Main memory indexing (T trees) and a real system. –Optimize for CPU, space, and logging. But things have changed drastically! Hardware trend:
1 Query Optimization In Compressed Database Systems Zhiyuan Chen and Johannes Gehrke Cornell University Flip Korn AT&T Labs.
Introduction to Database Systems 1 Join Algorithms Query Processing: Lecture 1.
1  2004 Morgan Kaufmann Publishers Chapter Seven.
Dutch-Belgium DataBase Day University of Antwerp, MonetDB/x100 Peter Boncz, Marcin Zukowski, Niels Nes.
Chapter 8 Physical Database Design. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Overview of Physical Database.
Layers of a DBMS Query optimization Execution engine Files and access methods Buffer management Disk space management Query Processor Query execution plan.
Cloud Computing Lecture Column Store – alternative organization for big relational data.
Lecture 11: DMBS Internals
Database Architecture Optimized for the New Bottleneck: Memory Access Peter Boncz Data Distilleries B.V. Amsterdam The Netherlands Stefan.
Breaking the Memory Wall in MonetDB
DANIEL J. ABADI, ADAM MARCUS, SAMUEL R. MADDEN, AND KATE HOLLENBACH THE VLDB JOURNAL. SW-Store: a vertically partitioned DBMS for Semantic Web data.
MonetDB/X100 hyper-pipelining query execution Peter Boncz, Marcin Zukowski, Niels Nes.
1 CPS216: Advanced Database Systems Notes 04: Operators for Data Access Shivnath Babu.
File System Implementation Chapter 12. File system Organization Application programs Application programs Logical file system Logical file system manages.
Applications hitting a wall today with SQL Server Locking/Latching Scale-up Throughput or latency SLA Applications which do not use SQL Server.
IT253: Computer Organization
Daniel J. Abadi · Adam Marcus · Samuel R. Madden ·Kate Hollenbach Presenter: Vishnu Prathish Date: Oct 1 st 2013 CS 848 – Information Integration on the.
C-Store: How Different are Column-Stores and Row-Stores? Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY May. 8, 2009.
Database Architecture Optimized for the new Bottleneck: Memory Access Chau Man Hau Wong Suet Fai.
Set Containment Joins: The Good, The Bad and The Ugly Karthikeyan Ramasamy Jointly With Jignesh Patel, Jeffrey F. Naughton and Raghav Kaushik.
Database Replication in Tashkent CSEP 545 Transaction Processing Sameh Elnikety.
DMBS Internals I. What Should a DBMS Do? Store large amounts of data Process queries efficiently Allow multiple users to access the database concurrently.
Indexes and Views Unit 7.
CS 257 Chapter – 15.9 Summary of Query Execution Database Systems: The Complete Book Krishna Vellanki 124.
Weaving Relations for Cache Performance Anastassia Ailamaki Carnegie Mellon David DeWitt, Mark Hill, and Marios Skounakis University of Wisconsin-Madison.
Variant Indexes. Specialized Indexes? Data warehouses are large databases with data integrated from many independent sources. Queries are often complex.
Bits Eugene Wu, Carlo Curino, Sam Madden
Chapter 8 Physical Database Design. Outline Overview of Physical Database Design Inputs of Physical Database Design File Structures Query Optimization.
Chapter 5 Index and Clustering
6340 DBMS Components. DBMS OS, application, middleware Components: storage, query optimizer, recovery manager, transaction processor, security.
Topics in Memory System Design 2016/2/5\course\cpeg323-07F\Topic7.ppt1.
1 Adapted from UC Berkeley CS252 S01 Lecture 18: Reducing Cache Hit Time and Main Memory Design Virtucal Cache, pipelined cache, cache summary, main memory.
DMBS Internals I February 24 th, What Should a DBMS Do? Store large amounts of data Process queries efficiently Allow multiple users to access the.
DMBS Internals I. What Should a DBMS Do? Store large amounts of data Process queries efficiently Allow multiple users to access the database concurrently.
DMBS Architecture May 15 th, Generic Architecture Query compiler/optimizer Execution engine Index/record mgr. Buffer manager Storage manager storage.
What Should a DBMS Do? Store large amounts of data Process queries efficiently Allow multiple users to access the database concurrently and safely. Provide.
Oracle Announced New In- Memory Database G1 Emre Eftelioglu, Fen Liu [09/27/13] 1 [1]
CMSC 611: Advanced Computer Architecture Memory & Virtual Memory Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material.
Decomposition Storage Model (DSM) An alternative way to store records on disk.
ESE532: System-on-a-Chip Architecture
Seth Pugsley, Jeffrey Jestes,
CPS216: Data-intensive Computing Systems
Physical Database Design
Lecture 16: Data Storage Wednesday, November 6, 2006.
Instructor: Junfeng Yang
BitWarp Energy Efficient Analytic Data Processing on Next Generation General Purpose GPUs Jason Power || Yinan Li || Mark D. Hill || Jignesh M. Patel.
Hustle and Bustle of SQL Pages
Lecture 11: DMBS Internals
ECE Dept., University of Toronto
Memory Hierarchy Memory: hierarchy of components of various speeds and capacities Hierarchy driven by cost and performance In early days Primary memory.
CPSC 457 Operating Systems
Lecture 24: Memory, VM, Multiproc
Chapter 9: Virtual Memory
(A Research Proposal for Optimizing DBMS on CMP)
File Storage and Indexing
Chapter 13: Data Storage Structures
File Storage and Indexing
CACHE-CONSCIOUS DATABASES
CS222/CS122C: Principles of Data Management UCI, Fall 2018 Notes #03 Row/Column Stores, Heap Files, Buffer Manager, Catalogs Instructor: Chen Li.
Presentation transcript:

MonetDB: A column-oriented DBMS Ryan Johnson CSC2531

The memory wall has arrived CPU performance +70%/year Memory performance latency: -50%/decade bandwidth: +20%/year (est.) Why? – DRAM focus on capacity (+70%/year) – Physical limitations (pin counts, etc.) – Assumption that caches "solve” latency problem DBMS spends 95% of time waiting for memory

The problem: data layouts Logical layout: 2-D relation => Unrealizable in linear address space! N-ary storage layout, aka “slotted pages” – Easy row updates, strided access to columns => Low cache locality for read-intensive workloads “NSM layouts considered harmful”...

Coping with The Wall Innovation: decompose all data vertically – Columns stored separately, rejoined at runtime Binary Association Table (BAT) replaces Relation – List of (recordID, columnValue) pairs – Compression and other tricks ==> 1 byte/entry BAT + clever algos => cache locality => Winner!

Exploring deeper Performance study (motivation) Physical data layouts Cache-optimized algorithms Evaluating MonetDB performance Implications and lingering questions

NSM: access latency over time Read one column (record size varies with x) Latency increases ~10x as accesses/cache line  1 (slope changes at L1/L2 line size)

Efficient physical BAT layout Idea #1: “virtual OID” – Optimizes common case – Dense, monotonic OIDs – All BATs sorted by OID Idea #2: compression – Exploits small domains – Boosts cache locality, effective mem BW How to handle gaps? Out-of-band values? Can’t we compress NSM also? Joining two BAT on OID has O(n) cost!

Cache-friendly hash join Hash partitioning: one pass but trashes L1/L2 – #clusters > #cache lines Radix-partitioning: limit active #partitions by making more passes Recall: CPU is cheap compared to memory access

Great, but how well does it work? Three metrics of interest – L1/L2 misses (= suffer latency of memory access) – TLB misses (even more expensive than cache miss) – Query throughput (higher is better) Should be able to explain throughput using other metrics – Given model makes very good predictions => Memory really is (and remains!) the bottleneck

A few graphs Big win: stability as cardinalities vary Radix clustering behavior as cardinality varies Radix-clustered HJ vs. other algorithms

Implications and discussion points Cache-friendly really matters (even w/ I/O) – Traditional DBMS memory-bound Vertically decomposed data: superior density – Data brought to cache only if actually needed – Compression gives further density boost Questions to consider... – Queries accessing many columns? – What about inserts/updates (touch many BAT)? – What about deletes/inserts (bad for compression)?

Implications and discussion points Cache-friendly really matters (even w/ I/O) – Traditional DBMS memory-bound Vertically decomposed data: superior density – Data brought to cache only if actually needed – Compression gives further density boost Questions to consider... – Queries accessing many columns? – How to make a good query optimizer? – Performance of transactional workloads? Update-intensive, concurrency control,... – What about inserts (bad for compression)?