1. Trang chủ
  2. » Công Nghệ Thông Tin

Column-Oriented Database Systems potx

161 243 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Column-Oriented Database Systems
Tác giả Stavros Harizopoulos, Daniel Abadi, Peter Boncz
Trường học Yale University
Chuyên ngành Database Systems
Thể loại tutorial
Năm xuất bản 2009
Thành phố Unknown
Định dạng
Số trang 161
Dung lượng 2,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Outline 1 Part 1: Basic concepts — Stavros 1 Introduction to key features 1 From DSM to column-stores and performance tradeoffs 1 Column-store architecture overview 1 Will rows and c

Trang 1

Column-Oriented

Database Systems

VLDB

2009 Tutorial

Part 1: Stavros Harizopoulos (HP Labs)

Part 2: Daniel Abadi (Yale)

Part 3: Peter Boncz (CW)

VLDB 2009 Tutorial Column-Oriented Database Systems

seee®&@®G@6 , eeeee®e6@G@

Trang 2

- might read in unnecessary data - tuple writes require multiple accesses

=> Suitable for read-mostly, read-intensive, large data repositories

% VLDB 2009 Tutorial Column-Oriented Database Systems 2

Trang 3

Are these two fundamentally different? | :2:°

1 The only fundamental difference is the storage layout

1 However: we need to look at the big picture

different storage layouts proposed

new applications

new bottleneck in hardware

How did we get here, and where we are heading ga

1 What are the column-specific optimizations? lê

1 How do we improve CPU efficiency when operating on “an

Wy VLDB 2009 Tutorial Column-Oriented Database Systems

Trang 4

Outline

1 Part 1: Basic concepts — Stavros

1 Introduction to key features

1 From DSM to column-stores and performance tradeoffs

1 Column-store architecture overview

1 Will rows and columns ever converge?

1 Part 2: Column-oriented execution — Daniel

1 Part 3: MonetDB/X100 and CPU efficiency — Peter

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 4

Trang 5

Telco Data Warehousing example

1 Typical DW installation —_ | dimension tables

account fact table

“One Size Fits All2 - Part 2: Benchmarking Ø@@@

Hesults” Stonebraker et al CIDR 2007 star schema

QUERY 2 SELECT account.account_number,

sum (usage.toll_ airtime),

sum (usage.toll_ price) Column-store Row-store

FROM usage, toll, source, account

WHERE usage.toll_id = toll.toll_id Query 1 2.06 300

AND usage.source_id = source.source_id Query 2 2.20 300

AND usage.account_id = account.account_id

AND toll.type_ind in (‘AE’ ‘AA’) Query 3 0.09 300

AND usage.toll_ price > 0 Query 4 5.24 300

AND source.type != ‘CIBER’ Query 5 2 88 300

AND toll.rating_method = ‘IS’

AND usage.invoice_date = 20051013

GROUP BY account.account_number Why? Three main factors (next slides)

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 5

Trang 6

read pages containing entire rows read only columns needed

one row = 212 columns! in this example: 7 columns

is this typical? (it depends) caveats:

“select * ” not any faster clever disk prefetching clever tuple reconstruction

What about vertical partitioning?

te does not work with ad-hoc

— VLDB 2009 Tutorial Column-Oriented Database Systems 6

Trang 7

compression efficiency

1 Columns compress better than rows

1 Typical row-store compression ratio 1:3

1 Column-store 1 : 10

1 Why?

1 Rows contain values from different domains

=> more entropy, difficult to dense-pack

1 Columns exhibit significantly less entropy

1998, 1998, 1999, 1999, 1999, 2000

1 Caveat: CPU cost (use lightweight compression)

%y VLDB 2009 Tutorial Column-Oriented Database Systems 7

Trang 8

sorting & indexing efficiency

1 Compression and dense-packing free up space

1 Use multiple overlapping column collections

1 Sorted columns compress better

1 Range queries are faster

1 Use sparse clustered indexes

What about heavily-indexed row-stores?

(works well for single column access,

cross-column joins become increasingly expensive)

%y VLDB 2009 Tutorial Column-Oriented Database Systems 8

Trang 9

Additional opportunities for column-stores

1 Block-tuple / vectorized processing

1 Easier to build block-tuple operators

1 Amortizes function-call cost, improves CPU cache performance

1 Easier to apply vectorized primitives

1 Software-based: bitwise operations

1 Opportunities with compressed columns

1 Avoid decompression: operate directly on compressed

1 Delay decompression (and tuple reconstruction)

1 Also known as: /ate materialization

1 Exploit columnar storage in other DBMS components

Physical design (both static and dynamic) %¢e: Database

Cracking, from CWI

%y VLDB 2009 Tutorial Column-Oriented Database Systems 9

Trang 10

Effect on C-Store performance Feally?’ Abadi, Hachem, and

column-oriente enable materialization

join algorithm compression &

operate on compressed

%y VLDB 2009 Tutorial Column-Oriented Database Systems 10

Trang 11

Summary of column-store key features

late materialization

1 Execution engine

vectorized operations ha

1 Design tools, optimizer

My VLDB 2009 Tutorial Column-Oriented Database Systems 11

Trang 12

Outline

1 Part 1: Basic concepts — Stavros

1 Introduction to key features

EE From DSM to column-stores and performance tradeoffs

1 Column-store architecture overview

1 Will rows and columns ever converge?

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 12

Trang 13

From DSM to Column-stores

TOD: Time Oriented Database — Wiederhold et al

70s -1985: "A Modular, Self-Describing Clinical Databank

system," Computers and Biomedical Research, 1975 More 1970s: Transposed files, Lorie, Batory,

“An overview of cantor: a new system for data analysis”

Karasalo, Svensson, SSDBM 1983

1985: DSM Daper “A decomposition storage model”

Copeland and Khoshafian SIGMOD 1985

1990s: Commercialization through SybaselQ

Late 90s — 2000s: Focus on main-memory performance

DSM “on steroids” [1997 — now] CWI: MonetDB

Hybrid DSM/NSM [2001 — 2004] Wisconsin: PAX, Fractured Mirrors

Michigan: Data Morphing CMU: Clotho

2005 - : HRe-birth of read-optimized DSM as “column-store”

, MIT: C-Store CW1: MonetDB/X100 10+ startups

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 13

Trang 14

The original DSM paper

Trang 15

Memory wall and PAX

1 90s: Cache-conscious research

“Cache Conscious Algorithms for

from: Relational Query Processing.”

Shatdal, Kant, Naughton VLDB 1994

“Database Architecture Optimized for and: Where does time go?” Ailamaki,

PAGE HEADER | 0962] 7658

1 PAX: Partition Attributes Across 3859 | 5523

Optimizes cache-to-RAM communication "==

“Weaving Relations for Cache Performance.”

Ailamaki, DeWitt, Hill, Skounakis, VLDB 2001

Trang 16

More hybrid NSM/DSM schemes

1 Dynamic PAX: Data Morphing

“Data morphing: an adaptive, cache-conscious

storage technique.” Hankins, Patel, VLDB 2008

1 Clotho: custom layout using scatter-gather I/O

“Clotho: Decoupling Memory Page Layout from Storage Organization.”

shao, Schindler, Schlosser, Ailamaki, and Ganger VLDB 2004

Trang 17

MonetDB (more in Part 3)

1 Late 1990s, CWI: Boncz, Manegold, and Kersten

1 Motivation:

1 Main-memory

1 Improve computational efficiency by avoiding expression

interpreter

1 DSM with virtual IDs natural choice

1 Developed new query execution algebra

1 Initial contributions:

1 Pointed out memory-wall in DBMSs

1 Cache-conscious projections and joins

1

%y VLDB 2009 Tutorial Column-Oriented Database Systems 17

Trang 18

2005: the (re)birth of column-stores

1 New hardware and application realities

1 Faster CPUs, larger memories, disk bandwidth limit

1 Multi-terabyte Data Warehouses

1 New approach: combine several techniques

1 Read-optimized, fast multi-column access,

disk/CPU efficiency, light-weight compression

1 G-store paper:

1 First comprehensive design description of a column-store

1 MonetDB/X100

1 “proper” disk-based column store

1 Explosion of new products

%y VLDB 2009 Tutorial Column-Oriented Database Systems 18

Trang 19

Performance tradeoffs: columns vs rows

DSM traditionally was not favored by technology trends

How has this changed?

1 Optimized DSM in “Fractured Mirrors,” 2002

1 “Apples-to-apples” comparison “Performance Tradeoffs in Read-

Optimized Databases”

Harizopoulos, Liang, Abadi, Madden, VLDB’06

Follow-up study “Read-Optimized Databases, In-

Depth” Holloway, DeWitt, VLDB’08

1 Main-memory DSM vs NSM

“DSM vs NSM: CPU performance tradeoffs in block-oriented query processing” Boncz, Zukowski, Nes, DaMoN’08

:_ Flash-disks: a come-back for PAX: “Query Processing Techniques

“Fast Scans and Joins Using Flash for Solid State Drives”

_ Drives” Shah, Harizopoulos, Tsirogiannis, Harizopoulos,

Wy Wiener, Graefe DaMoN’08 Shah, Wiener, Graefe,

C©I/SR//^m”aAa

1-Oriented Databa

Trang 20

Fractured mirrors: a closer look

1 Store DSM relations inside a B-tree "A Case For Fractured

Mirrors” Ramamurthy,

1 Leaf nodes contain values DeWitt, Su, VLDB 2002

i Eliminate IDs, amortize header overhead

1 Custom implementation on Shore

Similar: storage density “Efficient columnar comparable storage in B-trees” Graefe

to column stores sigmod Record 03/2007

Trang 21

Fractured mirrors: performance

From PAX paper:

1 Read in segments of M pages g 120

1 Merge segments in memory gS

Trang 23

1 Large prefetch hides disk seeks in columns

1 Column-CPU efficiency with lower selectivity

1 Row-CPU suffers from memory stalls noi shown,

1 Memory stalls disappear in narrow tuples details in the paper

1 Compression: similar to narrow J

Trang 24

(s)

Even more results

Same engine as before

Non-selective queries, narrow tuples, favor well-compressed rows

Materialized views are a win

scan times determine early materialized joins

Trang 25

Speedup of columns over rows

1 Rows favored by narrow tuples and low codb

1 Disk-bound workloads have higher codb

Ws VLDB 2009 Tutorial Column-Oriented Database Systems 25

Trang 26

Varying prefetch size

no competin

disk traffic`

Column 2 Column 8

Column 16

8 12 16 20 24 28 32 selected bytes per tuple

1 No prefetching hurts columns in single scans

%y VLDB 2009 Tutorial Column-Oriented Database Systems 26

Trang 27

Varying prefetch size

with competing disk traffic

selected bytes per tuple

1 No prefetching hurts columns in single scans

1 Under competing traffic, columns outperform rows for

—_ any prefetch size

VLDB 2009 Tutorial Column-Oriented Database Systems 27

Trang 28

CPU Performance of in block-oriented query processing’

Boncz, Zukowski, Nes, DaMoN’08

1 Benefit in on-the-fly conversion between NSM and DSM

1 DSM: sequential access (block fits in L2), random in L1

1 NSM: random access, SIMD for grouped Aggregation

Aggregation keys (log scale)

of keys and different data organizations (ht — hash table)

Trang 29

New storage technology: Flash SSDs

Sy VLDB 2009 Tutorial Column-Oriented Database Systems

29

Trang 30

Even faster column scans on flash SSDs

30K Read !Ops, 3K Write lops

1 New-generation SSDs 250MB/s Read BW, 200MB/s Write

1 Very fast random reads, slower random writes

1 Fast sequential RW, comparable to HDD arrays

1 No expensive seeks across columns

1 FlashScan and Flashjoin: PAX on SSDs, inside Postgres

Solid State Drives” Tsirogiannis, -ïÄfflcan liiEHi Harizopoulos, Shah, Wiener, Graefe,

48-FlashScan 100% SEL SIGMOD’09

Trang 31

Selected bytes per tuple

Trang 32

Outline

1 Part 1: Basic concepts — Stavros

1 Introduction to key features

1 From DSM to column-stores and performance tradeoffs

EEE) Column-store architecture overview

1 Will rows and columns ever converge?

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 32

Trang 33

Architecture of a column-store

1 read-optimized: dense-packed, compressed

1 Organize in extends, batch updates

multiple sort orders

Trang 34

DBMS.” Stonebraker et al

C Store VLDB 2005

Compress columns

No alignment

Big disk blocks

Only materialized views (perhaps many)

Focus on Sorting not indexing

Data ordered on anything, not just time

Automatic physical DBMS design

Optimize for grid computing

Innovative redundancy

Xacts — but no need for Mohan

Column optimizer and executor

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 34

Trang 35

C-Store: only materialized views (MVs)

1

1

Projection (MV) is some number of columns from a fact table Plus columns in a dimension table — with a 1-n join between Fact and Dimension table

Stored in order of a storage key(s)

several may be stored!

With a permutation, if necessary, to map between them

Table (as the user specified it and sees it) is not stored!

No secondary indexes (they are a one column sorted MV plus

a permutation, if you really want one)

_ VLDB 2009 Tutorial Column-Oriented Database Systems 35

Trang 36

Continuous Load and Query (Vertica)

Trang 37

Loading Data (Vertica)

> INSERT, UPDATE, DELETE ‘— Write-Optimized

> Bulk and Trickle Loads = ee Store (WOS) in-memory

SCOPY

Automatic V

SCOPY DIRECT Tuple Mover

> User loads data into logical Tables

On-disk

Trang 38

Applications for column-stores

1 High end (clustering)

1 Mid end/Mass Market

1 SLOAN Digital Sky Survey on MonetDB

%y VLDB 2009 Tutorial Column-Oriented Database Systems 38

Trang 39

List of column-store systems

Cantor (history) Sybase IQ

oensage (former Addamark Technologies)

Kdb 1010data MonetDB C-Store/Vertica X100/VectorWise KickFire

SAP Business Accelerator

Infobright

ParAccel Exasol

Trang 40

Outline

1 Part 1: Basic concepts — Stavros

1 Introduction to key features

1 From DSM to column-stores and performance tradeoffs

1 Column-store architecture overview

=)›wi rows and columns ever converge?

Wy VLDB 2009 Tutorial Column-Oriented Database Systems 40

Trang 41

Simulate a Column-Store inside a Row-Store

Trang 42

Simulate a Column-Store inside a Row-Store

Can explicitly run-

length encode date

Trang 43

Experiments

1 Star Schema Benchmark (SSBM)

1 Implemented by professional DBA

1 Original row-store plus 2 column-store

simulations on same row-store product

Adjoined Dimension Column Index (ADC Index)

to Improve Star Schema Query Performance”

O'Neil et al IOCDE 2008

a Abadi, Hachem, and Madden

Trang 44

1 Vertical partitions in row-stores:

1 Work well when workload is known

1 and queries access disjoint sets of columns

1 See automated physical design

1 Do not work well as full-columns

1 TuplelD overhead significant

Queries touch 3-4 foreign keys in fact table,

1-2 numeric columns

Column-stores vs Row-stores: Complete fact table takes up ~4 GB

How Different Are They Really? (compressed)

Abadi, Madden, and Hachem | `

Vertically partitioned tables take up 0.7-1.1

Ngày đăng: 23/03/2014, 16:20