Vertica Column-vs-Row
Vertica Column-vs-Row
Row-Stores
How Different are they Really?
Daniel J. Abadi, Samuel Madden, and Nabil Hachem,
SIGMOD 2008
Presented By,
Paresh
Modak(09305060)
Souman
Mandal(09305066)
Contents
Column-store introduction
Column-store data model
Emulation of Column Store in Row store
Column store optimization
Experiment and Results
Conclusion
Column Store
Join Indexes
10
Compression
Schemes
11
Null Suppression
Dictionary encoding
Run Length encoding
Bit-Vector encoding
Heavyweight schemes
12
13
14
15
Vertically partitioning
Using index-only plans
Using materialized views
Vertical Partitioning
Process:
Problems:
16
17
Index-only plans
Process:
Problem:
18
19
Materialized Views
Process:
Problems:
20
Select F.custID
from Facts as F
where F.price>20
21
22
Compression
Late Materialization
Block Iteration
Invisible Join
Compression
23
Compression
Late Materialization
25
Late Materialization
26
Late Materialization
Advantages
27
28
High degree of
spatial locality for
sequential access
of single attribute
Performance
deteriorates
significantly for
queries that
involve multiple
attributes
29
PAX Model
Block Iteration
32
CUSTOMER
PART
SUPPLIER
DATE
33
34
Figure taken
form [1]
Invisible Join
35
Invisible Join
36
Invisible Join
37
Invisible Join
38
Invisible Join
Phase 1
39
Invisible Join
40
Phase
2
Invisible Join
41
Phase
3
Invisible Join
Between-Predicate rewriting
42
Between-predicate rewriting
Experiments
Goal
44
Experiment setup
Environment
45
System
X= Commercial
CS (Row-MV): Column store constructed from
RS(MV)
row oriented database
46
47
48
32 KB disk pages
1.5 GB maximum memory for sort joins, intermediate
result
500 MB buffer pool
49
50
51
T(B)
Traditional(bitmap)
MV materialized
views
VP vertical
partitioning
Better
AI Allperformance
indexes
of
traditional system is
because of
partitioning.
Partitioning on
52
53
Tuple overheads:
Whole table
RS
0.7-1.1 GB
4 GB
CS
240 MB
2.3 GB
55
Method
Time
Traditional
43
Vertical partitioning
65
Index-only plans
360
Traditional
Vertical Partitioning
Index-Only plans
56
57
Row Store
Column Store
58
59
Conclusion
Vertical portioning
Index only plan
Late materialization
Compression
Block iteration
Invisible join
Conclusion
62
Virtual record-ids
Reduced tuple over head
Fast merge join
Run length encoding across multiple tuples
Operating directly on compressed data
Block processing
Invisible join
Late materialization
References
1.
2.
63
Thank
You!
64