data blocks: hybrid oltp and olap on compressed storage ... filedata blocks: hybrid oltp and olap on...
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022020319/5d4b203388c993576b8b7762/html5/thumbnails/24.jpg)
Thank you!