Column Stores - The solution to TB disk drives? David J. DeWitt Computer Sciences Dept. University of Wisconsin

Similar documents
Weaving Relations for Cache Performance

Bridging the Processor/Memory Performance Gap in Database Applications

Weaving Relations for Cache Performance

Weaving Relations for Cache Performance

Architecture-Conscious Database Systems

Column Stores vs. Row Stores How Different Are They Really?

Walking Four Machines by the Shore

Data Page Layouts for Relational Databases on Deep Memory Hierarchies

C-Store: A column-oriented DBMS

COLUMN-STORES VS. ROW-STORES: HOW DIFFERENT ARE THEY REALLY? DANIEL J. ABADI (YALE) SAMUEL R. MADDEN (MIT) NABIL HACHEM (AVANTGARDE)

Column Store Internals

C-STORE: A COLUMN- ORIENTED DBMS

Column-Stores vs. Row-Stores: How Different Are They Really?

Architecture-Conscious Database Systems

Indexing. Jan Chomicki University at Buffalo. Jan Chomicki () Indexing 1 / 25

Cache-Aware Database Systems Internals. Chapter 7

Cache-Aware Database Systems Internals Chapter 7

Sandor Heman, Niels Nes, Peter Boncz. Dynamic Bandwidth Sharing. Cooperative Scans: Marcin Zukowski. CWI, Amsterdam VLDB 2007.

Column-Stores vs. Row-Stores. How Different are they Really? Arul Bharathi

Column-Stores vs. Row-Stores: How Different Are They Really?

In-Memory Data Management

Track Join. Distributed Joins with Minimal Network Traffic. Orestis Polychroniou! Rajkumar Sen! Kenneth A. Ross

System R and the Relational Model

COLUMN DATABASES A NDREW C ROTTY & ALEX G ALAKATOS

Anastasia Ailamaki. Performance and energy analysis using transactional workloads

Columnstore and B+ tree. Are Hybrid Physical. Designs Important?

STEPS Towards Cache-Resident Transaction Processing

Outlines. Chapter 2 Storage Structure. Structure of a DBMS (with some simplification) Structure of a DBMS (with some simplification)

Storage hierarchy. Textbook: chapters 11, 12, and 13

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

Kathleen Durant PhD Northeastern University CS Indexes

File Structures and Indexing

A Multi-resolution Block Storage Model for Database Design

A Comparison of Memory Usage and CPU Utilization in Column-Based Database Architecture vs. Row-Based Database Architecture

Storage. Holger Pirk

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact:

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Database Management Systems need to:

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Chapter 7

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes?

Physical Data Organization. Introduction to Databases CompSci 316 Fall 2018

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes?

PS2 out today. Lab 2 out today. Lab 1 due today - how was it?

Lecture S3: File system data layout, naming

Parallel DBMS. Prof. Yanlei Diao. University of Massachusetts Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Advanced Database Systems

CompSci 516: Database Systems. Lecture 20. Parallel DBMS. Instructor: Sudeepa Roy

Parser. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text.

Advanced Topics in Database Systems Performance. System R and the Relational Model

L9: Storage Manager Physical Data Organization

Database Architecture 2 & Storage. Instructor: Matei Zaharia cs245.stanford.edu

In-Memory Data Management Jens Krueger

User Perspective. Module III: System Perspective. Module III: Topics Covered. Module III Overview of Storage Structures, QP, and TM

Join Processing for Flash SSDs: Remembering Past Lessons

7. Query Processing and Optimization

PARALLEL & DISTRIBUTED DATABASES CS561-SPRING 2012 WPI, MOHAMED ELTABAKH

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

Column-Oriented Database Systems. Liliya Rudko University of Helsinki

RAID in Practice, Overview of Indexing

CMSC424: Database Design. Instructor: Amol Deshpande

CSE 190D Database System Implementation

Materialization Strategies in a Column-Oriented DBMS Daniel J. Abadi, Daniel S. Myers, David J. DeWitt, and Samuel R. Madden

CS 405G: Introduction to Database Systems. Storage

Outline. Parallel Database Systems. Information explosion. Parallelism in DBMSs. Relational DBMS parallelism. Relational DBMSs.

Reducing Hit Times. Critical Influence on cycle-time or CPI. small is always faster and can be put on chip

In-Memory Data Structures and Databases Jens Krueger

STORING DATA: DISK AND FILES

CMSC 424 Database design Lecture 12 Storage. Mihai Pop

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11

Why Is This Important? Overview of Storage and Indexing. Components of a Disk. Data on External Storage. Accessing a Disk Page. Records on a Disk Page

CMSC424: Database Design. Instructor: Amol Deshpande

Resource Optimization

Database Architectures

Main-Memory Databases 1 / 25

Analyzing Memory Access Patterns and Optimizing Through Spatial Memory Streaming. Ogün HEPER CmpE 511 Computer Architecture December 24th, 2009

Information Systems (Informationssysteme)

Chapter 12: Query Processing. Chapter 12: Query Processing

Adapted from instructor s supplementary material from Computer. Patterson & Hennessy, 2008, MK]

CMPS 181, Database Systems II, Final Exam, Spring 2016 Instructor: Shel Finkelstein. Student ID: UCSC

- SLED: single large expensive disk - RAID: redundant array of (independent, inexpensive) disks

ZBD: Using Transparent Compression at the Block Level to Increase Storage Space Efficiency

Database Systems. November 2, 2011 Lecture #7. topobo (mit)

Design of Flash-Based DBMS: An In-Page Logging Approach

Administração e Optimização de Bases de Dados 2012/2013 Index Tuning

will incur a disk seek. Updates have similar problems: each attribute value that is modified will require a seek.

Announcement. Reading Material. Overview of Query Evaluation. Overview of Query Evaluation. Overview of Query Evaluation 9/26/17

Huge market -- essentially all high performance databases work this way

(Storage System) Access Methods Buffer Manager

Evaluation of Relational Operations

HYRISE In-Memory Storage Engine

Parallel DBMS. Parallel Database Systems. PDBS vs Distributed DBS. Types of Parallelism. Goals and Metrics Speedup. Types of Parallelism

GLADE: A Scalable Framework for Efficient Analytics. Florin Rusu University of California, Merced

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

Oracle Advanced Compression: Reduce Storage, Reduce Costs, Increase Performance Bill Hodak Principal Product Manager

Index Tuning. Index. An index is a data structure that supports efficient access to data. Matching records. Condition on attribute value

Advanced Database Systems

data parallelism Chris Olston Yahoo! Research

CMSC424: Database Design. Instructor: Amol Deshpande

External Sorting Implementing Relational Operators

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

Transcription:

Column Stores - The solution to TB disk drives? David J. DeWitt Computer Sciences Dept. University of Wisconsin

Problem Statement TB disks are coming! Superwide, frequently sparse tables are common DB performance is very sensitive to L2 cache performance For data warehouses, row stores are no longer the best way of mapping tuples to secondary storage Need techniques to make DB systems CPU bound

Over the last 3 years DBMS architectures: Query engine Buffer pool NO significant changes (except for the use of parallel db techniques) Hardware has changed dramatically CPUs: MIP GIP Memory sizes: 2MB/CPU 2GB/CPU Caches: K MB Disks: 8 MB 3 GB Network speeds: Mbit/sec -> Gbit/sec Disk transfer rates: MB/sec 6 MB/sec

Assertion: A radical redesign of DB system architectures is needed to deal with disk and CPU trends Conventional database systems (row stores) optimized for write intensive (e.g. OLTP) workloads and not read intensive workloads (e.g. Warehouse and CRM applications) Column Stores are the most promising alternative out there

Row Stores vs. Column Stores Row Store - all attributes in a row (tuple) stored contiguously on disk Column Store - all attributes of in a column stored contiguously on disk

Outline Technology trends working against Row Stores Transposed files - the birthplace of column stores From Transposed Files to C-Store Performance Results

Technology trends working against row stores Supersized disk drives Superwide, frequently sparse tables CPU/Memory Hierarchy trends

Disk trends over the last 25 years 98 99 2 25 Model CDC 976 Seagate 4384 IBM Ultrastar Seagate Cheetah Capacity (MB) 8 33 73,4 3, RPM 36 36,, Transfer rate (MB/sec).29.25 3-58 39-8 # of drives to hold a GB table 235 34 2 Aggregate bandwidth (Mbytes/sec) 493 38 9 6 Time to scan a GB table. min 4.3 min 8.5 min 27.8 min Effective disk speed is actually dropping Wide, sparse tuples make the situation worse Many queries touch only a small subset of the attributes

Factors Working Against Row Stores Supersized disk drives Superwide, frequently sparse tables e.g. product catalog CPU/Memory hierarchy trends

Row Store Breakdown % Sequential Scan % 2ary index selection Join (no index) Query execution time (%) % 8% 6% 4% 2% % A B C D DBMS % 8% 6% 4% 2% % B C D DBMS % 8% 6% 4% 2% % A B C D DBMS Computation Memory Branch mispredictions Resource 64 PII Xeon, NT 4., 8Kbyte pages Memory stalls are a huge performance hit!

Breakdown of Memory Stalls % Sequential Scan % 2ary index selection Join (no index) % % % Memory stall time (%) 8% 6% 4% 2% 8% 6% 4% 2% 8% 6% 4% 2% % A B C D DBMS % B C D DBMS % A B C D DBMS L Data L Instruction L2 Data L2 Instruction L instruction and L2 data cache stalls dominate Surprising differences between different systems Why so bad????

Standard record layout for row stores Employee Table RID SSN Name Age 237 Jane 3 PAGE HEADER RH 237 Jane 3 RH2 4322 John 2 4322 John 45 3 563 Jim 2 4 7658 Susan 52 5 2534 Leon 43 45 RH3 563 Jim 2 7658 Susan 52 RH4 6 879 Dan 37 Records are stored sequentially Offsets to start of each record at end of page

Row Store Cache Behavior PAGE HEADER RH 237 Jane 3 RH2 4322 John select name from Emp where age > 4 45 RH3 563 Jim 2 RH4 7658 Susan 52 2534 Leon Jane 3 RH block 45 RH3 563 block 2 Jim 2 RH4 block 3 MAIN MEMORY 52 2534 Leon block 4 CACHE Result: one L2D fault per comparison

Summarizing Effective disk bandwidth when disk capacity is factored in is actually decreasing Wider tuples ==> fewer tuples per page ==> increased I/O cost Row stores have very bad L2 data cache behavior

Time line of relational storage alternatives NSM (Row Store) PAX Transposed Files DSM Fractured Mirrors C-Store SuperRows + Column Abstraction 968 97 (Lorie, IBM) 985 (Copeland & Hoshafian, MCC 2 (Ailamaki, DeWitt & Hill) 23 (Ramamuthy & DeWitt) 25 (MIT, Brown, Brandeis) 26 (Halverson, Beckmann, Naughton)

NSM, Transposed, & DSM Table Organizations TA TB TC T A B C A B C A2 B2 C2 A A A2 A3 A4 A5 B B B2 B3 B4 B5 C C C2 C3 C4 C5 Fully Transposed (Lorie, 97) A3 B3 C3 A4 B4 C4 A5 B5 C5 (NSM) TA ID A A 2 A2 3 A3 TB ID B B 2 B2 3 B3 TC ID C C 2 C2 3 C3 DSM (Copeland & Koshafian, 985) 4 A4 4 B4 4 C4 5 A5 5 B5 5 C5 Each vertical partition is stored as a separate file

DSM Implementation TA ID A Physical realization A 2 A2 3 A3 4 A4 5 A5 Logical View Dense B-tree on A A A2 2 A3 3 A4 4 A5 5 Dense B-tree on ID A 2 A2 3 A3 4 A4 5 A5 Two copies of each column, one sorted on attribute value and one sorted on id value IDs need to glue columns back together again for NSM representation B-tree on ID could be sparse in which case IDs do not have to be stored in leaf entries

DSM Pros and Cons Pros: Better I/O performance Read only columns needed Better L2 data cache performance than NSM Cons: Space overhead for Ids Cost of reassembling NSM tuples IDs hinder compression Not ideal for all query types. Indexed selections with low selectivity factors Scans involving all attributes Used by: Bubba (MCC) Sybase IQ Monet DB X/

DSM Reassembly Algorithms Naïve, attribute-at-a-time (standard approach) Chunk-based, k-way merge Scan of GB TPC-H Lineitem table, varying k, # of attributes returned 8 6 4 2 8 6 4 2 NSM Attr-at-a-time Chunk-Merge 2 3 4 6 8 2 4 No. of Attributes

Time line of relational storage alternatives NSM (Row Store) PAX Transposed Files DSM Fractured Mirrors C-Store SuperRows + Column Abstraction 968 97 (Lorie, IBM) 985 (Copeland & Hoshafian, MCC 2 (Ailamaki, DeWitt & Hill) 23 (Ramamuthy & DeWitt) 25 (MIT, Brown, Brandeis) 26 (Halverson, Beckmann, Naughton)

PAX Apply concept of transposed files as the internal layout strategy for each NSM page NSM PAGE PAX PAGE PAGE HEADER RH 237 PAGE HEADER 237 4322 Jane 3 RH2 4322 John 563 7658 45 RH3 563 Jim 2 RH4 7658 Susan 52 Jane John Jim Susan 3 52 45 2

PAX: Mapping to Cache PAGE HEADER 237 4322 563 7658 3 52 45 2 block Jane John Jim Susan CACHE 3 52 45 2 MAIN MEMORY select name from R where age > 4 Fewer cache misses, low reconstruction cost

Effect on Accessing Cache Data stall cycles / record Cache data stalls breakdown 6 4 2 L Data stalls L2 Data stalls 8 6 4 2 NSM PAX stall cycles / record 6 4 2 8 6 4 2 Sensitivity to Selectivity NSM L2 PAX L2 % 5% % 2% 5% % PAX incurs 7% less data cache penalty than NSM PAX reduces cache misses at both L and L2 Selectivity doesn t matter for PAX data stalls

Time and Sensitivity Analysis 8 Execution time breakdown 6 Sensitivity to # of attributes 5 5 clock cycles per record 2 9 6 3 NSM PAX Resource Branch Mispred. Memory Comp. elapsed time (sec) 4 3 2 NSM PAX 2 4 8 6 32 64 PAX: 75% less memory penalty than NSM (% of time) Execution times converge as number of attrs increases

Pros PAX: Summary Significantly improved L2D cache performance compared to both NSM and DSM More opportunities for compression than DSM since no IDs on each row Avoids extra I/Os of DSM to merge columns Faster than NSM for DSS queries Transparent to upper layers of DBMS Cons Has same I/O performance as NSM (must read all columns)

Time line of relational storage alternatives NSM (Row Store) PAX Transposed Files DSM Fractured Mirrors C-Store SuperRows + Column Abstraction 968 97 (Lorie, IBM) 985 (Copeland & Hoshafian, MCC 2 (Ailamaki, DeWitt & Hill) 23 (Ramamuthy & DeWitt) 25 (MIT, Brown, Brandeis) 26 (Halverson, Beckmann, Naughton)

Fractured mirrors Variant of RAID- with mirror being used for a DSM copy of each table NSM Copy of T TA TB TC TD DSM Copy of T Naïve implementation (load may not be balanced) Bubba hinted about this idea (but cannot find the reference) Use which ever copy is best for query being executed

Balanced Fractured Mirrors T TA TB TC TD TA TB TC TD T Balancing distributes random seeks Tuples partitioned across mirrors using round robin partitioning

Time line of relational storage alternatives NSM (Row Store) Transposed Files DSM PAX Fractured Mirrors C-Store SuperRows + Column Abstraction 968 97 (Lorie, IBM) 985 (Copeland & Hoshafian, MCC 2 (Ailamaki, DeWitt & Hill) 23 (Ramamuthy & DeWitt) 25 (MIT, Brown, Brandeis) 26 (Halverson, Beckmann, Naughton)

C-Store/Vertica Features Hybrid, 2 level architecture ROS - disk-resident column store based on transposed files WOS - memory-resident row store Extensive use of compression to improve I/O performance Data replicated for performance and reliability Shared-nothing parallel architecture Targeted toward read-mostly environments Warehouses CRM Environments

C-Store Architecture Inserted tuples WOS Tuple Mover ROS WOS - write optimized store Main-memory resident row store Holds uncommitted and recently committed data ROS - read optimized store Disk-resident column store implemented as transposed files (and not DSM) Tuple Mover Periodically moves committed data from WOS to ROS Shared Nothing Architecture Recovery via k-safety No logging No 2phase commit

C-Store Data Models Logical: relational tables Physical: projections join indices (to glue projections together) B-tree indices on primary keys only No secondary indices Projection: Materialized view (from possibly multiple tables) stored as one transposed file per column in ROS Storage key for a row is its ordinal position (implied, not stored) Horizontally partitioned across multiple nodes

Examples Given tables: Emp (name, age, deptname, salary) Dept (deptname, floor) Possible projections: Emp (name, age age) Emp2 (name, deptname, dept.floor dept.floor) Emp3 (name, salary salary) Dept (deptname, floor floor) Projections selected automatically using a workloaddriven design wizard Join Indices/Permutations needed to glue projections together in some cases

ROS compression schemes Sorted # distinct values Few Many Yes {(val, pos, cnt)} Delta encoded at block level No {(val, bitmap)} Bitmap compressed using RLE NOT Encoded

Compression Example Quarter Product ID Price Quarter Product ID Price Q Q Q Q Q Q Q 2 2 5 7 2 9 6 8 5 (Q,, 3) (,, 5) (2, 6, 2) (Q2, 3, 35) (Q3, 65, 5) (, 3, 3) (Q4, 5, 6) (2, 34, ) 5 7 2 9 6 8 5 Q2 Q2 Q2 Q2 2 3 8 4 3 8 4

Other Techniques: Dictionary Quarter Quarter Q Q2 Q4 Q Q3 Q Q Q Q2 Q4 Q3 Q3 + Dictionary : Q : Q2 : Q3 : Q4

Operating Directly On Compressed Data Improves Performance 2 8 6 No Compression RLE Compression Bit-vector compression Dictionary single-value Dictionary multi-value QUERY: Time (in seconds) 4 2 8 6 SELECT colx, SUM(colX) FROM tablex GROUP BY colx 4 2 5 5 2 25 3 35 4 No. of Distinct Values

Performance results Constrained Space Unconstrained Space Oracle 64x 6.4x Sybase IQ 2x 6.5x Pretty much a benchmark special But, Alpha version of Vertica has better performance Apples-to-oranges comparison So, where does the performance boost come from?

An Apples-to-Apples Comparison SIGMOD 6 submission by Halverson, Beckmann, and Naughton Implementation of both column and row stores using SHORE storage manager Three key factors at play: Use of SuperRows I/O savings due to use of transposed files Use of compression Proposes a new storage layout for row stores termed a Column Abstraction

SuperRows Observation: record overhead of standard slotted page format can be significant 8 bytes is probably typical (2 bytes of offset, 2 bytes of length, 4 byte tuple header) Solution: SuperRows Array of fixed-length tuples stored as a single record on a slotted page Variable-length tuples require a length field Can be used for both column stores and row stores PAX, Fractured Mirrors, & C-Store all use a form of this mechanism Saves overhead and iterator costs (as we will see)

Experimental Setup P4 2.4 Ghz Xeon, GB memory, Raid- Volume using 6 25GB disk drives 32Kbyte SHORE pages 52 MB buffer pool /2 of buffer pool allocated for read-ahead Focus on sequential scans only

6 5 4 Scan 8M 32-Col Tuples Std Row Super Col Super Row 3 2 8 6 24 32 Columns Scanned

Scan 4 columns of a 8M row, 6 column table 8 6 4 2 8 6 4 2 Prototype Tuple Reconstruct Iterator Cost Disk I/O Std Row Super Col Super Row Page Layout

Time line of relational storage alternatives NSM (Row Store) PAX Transposed Files DSM Fractured Mirrors C-Store SuperRows + Column Abstraction 968 97 (Lorie, IBM) 985 (Copeland & Hoshafian, MCC 2 (Ailamaki, DeWitt & Hill) 23 (Ramamuthy & DeWitt) 25 (MIT, Brown, Brandeis) 26 (Halverson, Beckmann, Naughton)

Column Abstraction Table View Physical Realization L-Returnflag C-Nationkey L-ExtendPrice L-Returnflag C-Nationkey L-ExtendPrice A 3 23 A 3 34 A 9 64 N 3 88 N 4 49 R 9 6 R 9 53 R 9 7 R 63 R 2 72 R 2 72 A 3 23 A 3 34 A 9 64 N 3 88 N 4 49 R 9 6 R 9 53 R 9 7 R 63 R 2 72 R 2 72 Only shaded data actually gets stored Page level compression Scan interface reconstructs NSM record on the fly Similar idea in Peterlee relational engine (early 97s)!!!!

Impact of Column Abstraction 8 6 4 2 8 6 4 2 Scan 8M Rows With Abstraction Gen_8 Gen_2 4 Gen 4_2 Table Scanned Std Row Super Col Super Row

Summary Disks keep getting bigger and slower Disks have become tapes [Gray] Column storage appears to be the best alternative For read-intensive environments exploit huge disks to store multiple copies of the same data in different representations Surrogates (ie. rowids) in DSM are: Not really necessary Consume I/O bandwidth Pollute the L2 data cache Hurt compression Compress everything CPU cycles are cheap Disks are slow Operate on compressed data whenever possible

Some Interesting Open Problems Workload driven DB designer Materialization alternatives for column stores (early vs. late) C-Store compression techniques applied to PAX What does the DB designer selecting a particular projection imply about a pure column store vs. SuperRows with column abstraction? Other implementation strategies for column abstractions PAX vs. SuperColumns vs. SuperRows with abstraction

Acks Many thanks to Daniel Abadi (MIT), Natassa Ailamaki (CMU), Alan Halverson (Wisconsin), Ravi Ramamurthy (MS), and for letting me borrow slides from some of their talks

Effect of Record Size % Sequential Scan 8 L2 data misses / record 25 L instruction misses / record 6 2 4 2 5 5 2 48 2 record size 2 48 2 record size System A System B System C System D L2D increase due to locality + page crossing (except System D) LI increase due to page boundary crossing costs

Disk trends over the last 25 years 98 99 2 25 Model CDC 976 Seagate 4384 IBM Ultrastar Seagate Cheetah Capacity (MB) 8 33 73,4 3, RPM 36 36,, Transfer rate (MB/sec).29.25 3-58 39-8 Normalized transfer rate.49.38.6.2 (Transfer Rate/Capacity) Average Seek (ms) 3 4.5 4.9 5 Accesses/sec 33.33 68.97 24.8 2 Normalized access rate.42.29.3.7 (Accesses per second/capacity) Effective disk speed is actually dropping Wide, sparse tuples make the situation worse Many queries touch only a small subset of the attributes

Role of Tuple Mover Operates as background batch process Periodically moves large batches of tuples from the WOS to the ROS Combines multiple ROS segments of a column into a single larger ROS segment WOS Tuple Mover ROS

Other Techniques: Bit-vector 2 2 2 3 Product ID ID: ID: 2 ID: 3

6 5 4 Scan 8M rows (Cold) Std Row Super Col Super Row 3 2 4 8 6 32 Tuple Width (columns)

Scan all columns of a 6 column table with 8M rows 25 2 Prototype Tuple Reconstruct Iterator Cost Disk I/O 5 5 Std Row Super Col Super Row Page Layout

Evaluation Using a DSS Benchmark 5M TPC-H DB Ran Queries: Range Selections w/ variable parameters (RS) TPC-H Q and Q6 sequential scans lots of aggregates (sum, avg, count) grouping/ordering of results TPC-H Q2 and Q4 (Adaptive Hybrid) Hash Join complex where clause, conditional aggregates PII Xeon running Windows NT 4 Used processor counters

Elapsed Execution Time TPC-H 5M 8 6 4 88 64 572 536 2 42 36 42 36 Q Q6 Q2 Q4 PAX improves performance up to 42% even with I/O

Column Abstraction L-Returnflag C-Nationkey L-ExtendPrice Consider view D4 from C-Store Paper: Create View D4 as Select L_Returnflag, C_Nationkey, L_ExtendPrice From Customer, Orders, LineItem Where C_CustId = O_CustId and O_OrderId = L_OrderId Order by L_Returnflag, C_NationKey A 3 23 A 3 34 A 9 64 N 3 88 N 4 49 R 9 6 R 9 53 R 9 7 R 63 R 2 72 R 2 72