data blocks: hybrid oltp and olap on compressed storage ... filedata blocks: hybrid oltp and olap on...

24
Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation Harald Lang 1 , Tobias Mühlbauer 1 , Florian Funke 2,* , Peter Boncz 3,* , Thomas Neumann 1 , Alfons Kemper 1 1 Technical University Munich, 2 Snowflake Computing, 3 Centrum Wiskunde & Informatica To appear at SIGMOD 2016. * Work done while at Technical University Munich.

Upload: ngotuong

Post on 08-Aug-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Data Blocks: Hybrid OLTP and OLAP on CompressedStorage using both Vectorization and Compilation †

Harald Lang1, Tobias Mühlbauer1, Florian Funke2,∗,Peter Boncz3,∗, Thomas Neumann1, Alfons Kemper1

1Technical University Munich, 2Snowflake Computing, 3Centrum Wiskunde & Informatica

†To appear at SIGMOD 2016. * Work done while at Technical University Munich.

Page 2: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Goals

I Primary goalI Reducing the memory-footprint in hybrid OLTP&OLAP database systemsI Retaining high query performance and transactional throughput

I Secondary goals / future workI Eviting cold data to secondary storageI Reducing costly disk I/O

I Out of scopeI Hot/cold clustering (see previous work of Funke et al.: “Compacting

Transactional Data in Hybrid OLTP&OLAP Databases”)

Page 3: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Compression in Hybrid OLTP&OLAP Database Systems

I SAP HANA (existing approach)I Compress entire relationsI Updates are performed in an uncompressed write-optimized partitionI Implicit hot/cold clusteringI Merge partitions

I HyPer (our approach)I Split relations in fixed size chunks (e.g., 64 K tuples)I Cold chunks are “frozen” into immutable Data Blocks

Page 4: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Data Blocks

I Compressed columnar storage formatI Designed for cold data (mostly read)I Immutable and self-containedI Fast scans and fast point-accessesI Novel index-structure to narrow scan ranges

Coldcompressed Data Blocks

Hotuncompressedmostly point acceses

through index;some on cold data

querypipeline

OLAPOLTP

Page 5: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Compression SchemesI Lightweight compression only

I Single value, byte-aligned truncation, ordered dictionary

I Efficient predicate evaluation, decompression and point-accessesI Optimal compression chosen based on the actual value distribution

I Improves compression ratio, amortizes light-weight compression schemes andredundancies caused by block-wise compression

A0chunk0 B0 C0

Uncompressed

A1 B1 C1chunk1

...

A B C

Data Blocks

...

dictionary (B)truncated (A) keys (B)

truncated (C)

single value (A)truncated (B)

dictionary (C)keys (C)

Page 6: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Positional SMAs

I Lightweight indexingI Extension of traditional SMAs (min/max-indexes)I Narrow scan ranges in a Data Block

Po

siti

on

al S

MA

(P

SMA

)compressed Data Block

range withpotential matches

σ SARGable

I Supported predicates:I column ◦ constant, where ◦ ∈ {=, is,<,≤,≥, >}I column between a and b

Page 7: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Positional SMAs - DetailsI Lookup table where each table entry contains a range with potential matchesI For n byte values, the table consists of n× 256 entriesI Only the most significant non-zero byte is considered

lookup table data

0x0200AA 0x0000AE 0x02FA42 ...

00 02 03 E4

...

0 1 2 3pos:

range: [0,3)

tail bytes

most significantnon-zero byte

...

leadingzero-bytes

256 range entries

256 range entries

256 range entries

...

...[0,3)...

max # of values sharing an entry

1

28

216

224

Page 8: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Positional SMAs - DetailsI Lookup table where each table entry contains a range with potential matchesI For n byte values, the table consists of n× 256 entriesI Only the most significant non-zero byte is considered

lookup table data

0x0200AA 0x0000AE 0x02FA42 ...

00 02 03 E4

...

0 1 2 3pos:

range: [0,3)

tail bytes

most significantnon-zero byte

...

leadingzero-bytes

256 range entries

256 range entries

256 range entries

...

...[0,3)...

max # of values sharing an entry

1

28

216

224

preferred rangeachieved by

using the deltavalue – SMAmin

Page 9: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Positional SMAs - Example

lookup table

10

23

...

259

...

25

5

...

5

...

0

[0,6)

[1,17)

[16,19)

[6,7)

[0,0)

SMA min: 2SMA max: 999

probe 7

delta = 5 (7-min)

bytes of delta

00 00 00 05

probe 998

delta = 996 (998-min)

bytes of delta

00 00 03 E4

5 (leading non-0 byte)

Page 10: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Challenge for JIT-compiling Query Engines

I HyPer compiles queries just-in-time (JIT) using the LLVM compiler frameworkI Generated code is data-centric and processes a tuple-at-a-time

for (const Chunk& c : relation.chunks) {for (unsigned row=0; row!=c.rows; ++row) {auto attr0 = c.column[0].data[row];auto attr3 = c.column[3].data[row];// check scan restrictionsif (tuple qualifies) {

// code of consuming operator...

} } }

I Data Blocks individually determine the best suitable compression scheme foreach column on a per-block basis

I The variety of physical representations either results inI multiple code paths => exploding compile-timeI or interpretation overhead => performance drop at runtime

Page 11: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Vectorization to the Rescue

I Vectorization greatly reduces the interpretation overheadI Spezialized vectorized scan functions for each compression schemeI Vectorized scan extracts matching tuples to temporary storage where tuples

are consumed by tuple-at-a-time JIT code

uncompressed chunk

A B C D

vectorB

compressedData Block

A

B

C

DA D

interpreted vectorized scanon Data Block

vectorized evaluation of SARGable predicates on compressed data and unpacking of matches

push matchestuple-at-a-time

vector

B

uncompressedchunk

A B C D

A D

interpreted vectorized scanon uncompressed chunk

vectorized evaluation of SARGable predicates and copying of matches

JIT-compiled tuple-at-a-time scanon uncompressed chunk

tuple-at-a-timeevaluation of scan predicates

vectors of e.g., 8192 records

JIT-compiledtuple-at-a-time query pipeline

coldscan

hotscan

tuple

sin

gle

inte

rfac

e

Ind

ex

PSMAs

Page 12: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Predicate Evaluation using SIMD InstructionsFind Initial Matches

data

read offset

aligned data

unaligned data11

remaining data

predicateevaluation

movemask

=15410

precomputed positions table

255

... 1

54 ..

. 1

0

0, 3, 4, 6

0

-

0, 1, 2, 3, 4, 5, 6, 7

lookup

match positions

1, 3, 5, 7, 9, 11, 14, 15, 17

+11

add global scan position and update match vector

write offset

Page 13: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Predicate Evaluation using SIMD InstructionsAdditional Restrictions

match positions

data

read offset

movemask

precomputed positions table

255

... 1

72 ..

. 1

0

0, 2, 4, 5

0

-

0, 1, 2, 3, 4, 5, 6, 7

write offset

gather

predicate evaluation

=17210

lookup

17, 20, 25, 26,-,-,-,-

shuffle match vector

store

1, 3, 14,-,-,-,-,-, 17, 18, 20, 21, 25, 26, 29, 31

Page 14: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Evaluation

Page 15: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Compression Ratio

Size of TPC-H, IMDB cast info, and a flight database in HyPer and Vectorwise:

TPC-H SF100 IMDB1 cast info Flights2

uncompressed

CSV 107 GB 1.4 GB 12 GBHyPer 126 GB 1.8 GB 21 GBVectorwise 105 GB 0.72 GB 11 GB

compressed

HyPer 66 GB (0.62×) 0.50 GB (0.36×) 4.2 GB (0.35×)Vectorwise 54 GB (0.50×) 0.24 GB (0.17×) 3.2 GB (0.27×)

1http://www.imdb.com2http://stat-computing.org/dataexpo/2009/

Page 16: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Query Performance

Runtimes of TPC-H queries (scale factor 100) using different scan types onuncompressed and compressed databases in HyPer and Vectorwise.

scan type geometric mean sum

HyPer

JIT (uncomressed) 0.586s 21.7sVectorized (uncompressed) 0.583s (1.01×) 21.6s

+ SARG 0.577s (1.02×) 21.8sData Blocks (compressed) 0.555s (1.06×) 21.5s

+ SARG/SMA 0.466s (1.26×) 20.3s+ PSMA 0.463s (1.27×) 20.2s

Vectorwise

uncompressed storage 2.336s 74.4scompressed storage 2.527s (0.92×) 78.5s

Page 17: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Query Performance (cont’d)

Speedup of TPC-H Q6 (scale factor 100) on block-wise sorted3 data (+SORT).

JIT VEC Data Blocks(+PSMA)

+SORT(-PSMA)

+PSMA02468

101214

gain by PSMA

spee

dup

over

JIT

3sorted by l_shipdate

Page 18: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

OLTP Performance - Point Access

Throughput (in lookups per second) of random point access queriesselect * from customer where c_custkey = randomCustKey()on TPC-H scale factor 100 with a primary key index on c_custkey.

Throughput [lookups/sec]

Uncompressed 545,554

Data Blocks 294,291 (0.54×)

Page 19: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

OLTP Performance - TPC-CTPC-C transaction throughput (5 warehouses), old neworder recordscompressed into Data Blocks:

Throughput [Tx/sec]

Uncompressed 89,229

Data Blocks 88,699 (0.99×)

Only read-only TPC-C transactions order status and stock level; allrelations frozen into Data Blocks:

Throughput [Tx/sec]

Uncompressed 119,889

Data Blocks 109,649 (0.91×)

Page 20: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Performance of SIMD Predicate Evaluation

Speedup of SIMD predicate evaluation of type l ≤ A ≤ r with selectivity 20%:

8-bit 16-bit 32-bit 64-bit012345

data type bit-width

spee

dup

over

sequ

entia

lx86

code x86 SSE AVX2

Page 21: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Performance of SIMD Predicate Evaluation (cont’d)

Costs of applying an additional restriction with varying selectivities of the firstpredicate and the selectivity of the second predicate set to 40%:

x86 AVX2

0 50 1000

1

2

cycl

espe

rele

men

t

8-bit

0 50 1000

1

216-bit

0 50 1000

1

2

cycl

espe

rele

men

t

32-bit

0 50 1000

1

264-bit

selectivity of first predicate [%]

Page 22: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Advantages of Byte-AddressabilityPredicate Evaluation

Cost of evaluating a SARGable predicate of type l ≤ A ≤ r with varyingselectivities:

0 25 50 75 1000

4

8

12

selectivity [%]

cycl

espe

rtup

leData BlocksHorizontal bit-packingHorizontal bit-packing + positions table

I dom(A) = [0, 216]

I Intentionally, the domain exceeds the 2-byte truncation by one bitI 17-bit codes with bit-packing, 32-bit codes with Data Blocks

Page 23: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Advantages of Byte-AddressabilityUnpacking matching tuples

Cost of unpacking matching tuples:

1 25 50 75 100

10

100

selectivity [%]

cycl

espe

rmat

chin

gtu

ple

(log

scal

e)

Data BlocksBit-packed (positional access)Bit-packed (unpack all and filter)

I 3 attributes, dom(A) = dom(B) = [0, 216] and dom(C) = [0, 28])I Intentionally, the domains exceed 1-byte and 2-byte truncation by one bitI The compression ratio of bit-packing is almost two times higher in this

scenario

Page 24: Data Blocks: Hybrid OLTP and OLAP on Compressed Storage ... fileData Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilationy Harald Lang1, Tobias

Thank you!