hyrise – in-memory storage engine - vldbhyrise – in-memory storage engine martin grund1, jens...

36
HYRISE – In-Memory Storage Engine Martin Grund 1 , Jens Krueger 1 , Philippe Cudre-Mauroux 3 , Samuel Madden 2 Alexander Zeier 1 , Hasso Plattner 1 1 Hasso-Plattner-Institute, Germany 2 MIT CSAIL, USA 3 University of Fribourg, Switzerland

Upload: others

Post on 25-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE – In-Memory Storage Engine

Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

1Hasso-Plattner-Institute, Germany 2MIT CSAIL, USA 3University of Fribourg, Switzerland

Page 2: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Motivation

■  Enterprise applications have evolved: not just OLAP vs. OLTP

□  Demand for real-time analytics on transactional data

□  High throughput analytics è completely in memory – Massive RAMs (>1TB/node) enable this for many apps

Example:

■  Available-To-Promise Check – Perform real-time ATP check directly on transactional data during order entry, without materialized aggregates of available stocks.

■  Dunning – Search for open invoices interactively instead of scheduled batch runs.

■  Operational Analytics – Instant customer sales analytics with always up-to-date data.

HYRISE | Martin Grund | VLDB 2011

2

Page 3: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Our System: HYRISE

■  High throughput on structured enterprise data

□  Completely in main memory

■  Efficiently executed both OLTP and OLAP requests

□  Key idea: Vertically partition tables

■  New algorithms to find the best partitioning for all tables

□  Based on a workload profile

□  Using a cache-miss based cost model

□  Scalable to huge number of tables, wide relations –  E.g., Many SAP apps have

10K+ tables w/ 100+ columns

HYRISE | Martin Grund | VLDB 2011

3

Page 4: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Memory Hierarchy - Recap

■  Memory hierarchy does not stop with main memory

■  Motivation for disk-based column stores, remains valid for main memory; Avoid loading data that is not accessed.

HYRISE | Martin Grund | VLDB 2011

4

■  Accessing memory with different strides introduces different latencies Sequential accesses

10x-100x faster 1

10

100

1000

8 64 512 4K 32K 256K 2M

CPU

Cyc

les

per V

alue

Stride in Bytes

CPU Registers

Main Memory

Flash

Hard Disk

Hig

her P

erfo

rman

ceLower Price / H

igher Latency

CPU Caches

Page 5: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

ENTERPRISE BACKGROUND

HYRISE | Martin Grund | VLDB 2011

5

Page 6: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Enterprise Application Characteristics

■  Identify: Why are enterprise applications so complex?

■  Detailed customer data analysis from SAP installations of 12 companies (~32 billion event records analyzed)

■  Enterprise applications have

□  Extremely wide schemas – up to 300 attributes on heavily used tables

□  Thousands of tables – every ERP installation ~ 70k

□  Changing workload

HYRISE | Martin Grund | VLDB 2011

6

Page 7: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

0 %10 %20 %30 %40 %50 %60 %70 %80 %90 %100%

Typical TranasactionalCustomer Database

TPC-C

Wor

kloa

d

Lookup / ReadTable ScanRange Select

InsertModificationDelete

Write:

Read:

Example Enterprise Workload

HYRISE | Martin Grund | VLDB 2011

7

■  Range selects occur often

■  Real world is more complicated than single tuple access

■  With new applications the “read”-gap will even increase

Page 8: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Summary

■  Traditional View

□  OLTP Systems for transactional scenarios

□  OLAP Systems for analytical scenarios

■  Our View: Single System

□  Main Memory

□  Vertically partitioned

□  Single copy of data (no redundancy) –  To reduce maintenance and overhead of multiple copies

Key challenge: How to perform vertical partitioning to optimize performance on a given hybrid workload

HYRISE | Martin Grund | VLDB 2011

8

Page 9: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYBRID IN-MEMORY STORAGE ENGINE DESIGN

HYRISE | Martin Grund | VLDB 2011

9

Page 10: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Architecture

■  Our focus is on three key aspects

□  In-Memory Data Storage –  Predicting access costs

□  Layout Decisions □  Optimizing Query Execution

■  Layout Engine integrates cost model and workload data

HYRISE | Martin Grund | VLDB 2011

10

Task Based Executor

Query Engine

Layout Engine

Main Memory Storage Layer

Cost Model

Workload Data

Page 11: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Partitioning Problem

■  Each table split into a set of non-overlapping containers (partitions)

□  Each container consists of one or more attributes

■  Uses workload as input to find best partitioning

■  The performance of each workload operator on a given layout is calculated based on cache misses

■  Container overhead cost defines the cost of loading data that is not accessed by a query operator

HYRISE | Martin Grund | VLDB 2011

11

C1 (a1) C2 (a2 .. a6) C2 (a7 .. a8)

r = (a1 ... a8)

Page 12: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Cost Model – Projections

■  Goal is to predict cost of basic accesses to a container

□  Based on access to multiple attributes over all rows (projection) and access to all attributes of a container to a selection of rows (selectivity)

■  Cache misses are precisely calculated, using the offset and width of the columns projected from the container

□  Not enough to calculate #accessed bytes à understand how the accessed data is laid out

HYRISE | Martin Grund | VLDB 2011

12

Cache Line Width

Page 13: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Cost Model – Selection

■  Experimental validation shows the match of the model and reality

HYRISE | Martin Grund | VLDB 2011

13

0

0.5

1

1.5

2

2.5

0.001 0.101 0.201 0.301 0.401 0.501 0.601 0.701 0.801 0.901

Cac

he

Mis

ses

Mill

ion

s

Selectivity

Row Store

Row Cost (Model)

Column Store

Column Cost (Model)

Page 14: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Cost Model

■  HYRISE cost model provides means to calculate cache misses for

□  Full projections / partial projections

□  Selections – capturing both independent and overlapping selections

■  More complex operators can be composed out of the basic elements

■  Experiments show that cache misses are a good predictor for performance of in-memory database systems.

HYRISE | Martin Grund | VLDB 2011

14

Page 15: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Cost Model – Cache Miss vs. Cycles

HYRISE | Martin Grund | VLDB 2011

15

0

200

400

600

800

1000

1200

0

1

2

3

4

5

6

7

8

1 5 9 13

17

21

25

29

33

37

41

45

49

53

57

61

65

69

73

77

81

85

89

93

97

Mill

ion

s

Mill

ion

s

Column Store

Row Store

CPU Cycles Col

CPU Cycles Row

■  Cache misses are a good predictor for performance

Page 16: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

LAYOUT SELECTION HYRISE

HYRISE | Martin Grund | VLDB 2011

16

Page 17: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Layout Selection

■  For narrow tables, finding the optimal layout is easy and can be done through exhaustive enumeration

■  Enterprise applications have super-wide schemas

□  Up to 300 attributes in our study

■  è millions of possible layouts

HYRISE | Martin Grund | VLDB 2011

17

Page 18: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

First Approach

■  Exponential, but multiple pruning steps that reduce the number of possible layouts in practice

1.  Candidate Generation

□  Determine all primary partitions (the largest partitions that will not incur any container overhead cost)

2.  Candidate Merging

□  Inspect all permutations of primary partitions to generate partitions that minimize the overall cost

3.  Layout Generation

□  Generate all valid layouts by exhaustively exploring all possible combinations of partitions from the second phase

HYRISE | Martin Grund | VLDB 2011

18

Page 19: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Candidate Generation

■  Determining all primary partitions

□  Primary Partition: Largest partition that does not incur container overhead cost

■  Each operation on a table implicitly splits the attributes into two subsets

□  The order of the operations can be ignored

■  Recursively splitting each set of attributes of the workload into subsets for each operation

HYRISE | Martin Grund | VLDB 2011

19

Page 20: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Candidate Generation

HYRISE | Martin Grund | VLDB 2011

20

ORGPHONECOMPANYEMAILNAMEID

Table

Query 1 - Select ID,NAME from Table where ORG = 9

Query 2 - Select ID,COMPANY from Table where ORG = 9

ID NAME

ORG

ID COMPANY

ORG

OP 1

OP 2

OP 3

OP 4

Page 21: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

ORGPHONECOMPANYEMAILNAMEID

ID NAMEOP 1

ID NAME ORGPHONEEMAIL COMPANY

ORGOP 2

ID NAME PHONEEMAIL COMPANY ORG

ID COMPANY

OP 3

ORG

OP 4

ID EMAIL PHONE ORGNAME COMPANY

ID EMAIL PHONE ORGNAME COMPANY

Candidate Generation

HYRISE | Martin Grund | VLDB 2011

21

Page 22: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Candidate Merging

■  Generate possible permutations of primary partitions

■  Identify partitions that reduce the overall cost for the workload

□  Based on the assumption that the access cost for two partitions with the same attribute set can be independently computed

□  Calculation based on the cost model

HYRISE | Martin Grund | VLDB 2011

22

Page 23: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Candidate Merging

HYRISE | Martin Grund | VLDB 2011

23

Primary Permutation

Subset 1 12,000 ✔11,764

Subset 2 12,000 ✔11,764

Subset 3 12,000 ✖36,764

Will be inserted into the global candidate list

Only an excerpt, 5 attributes Generate 31 permutations.

ID COMPANY

ID NAME

Primary Partitions Merged Permutation

ORG

ID COMPANY

ID ID ORG

ID NAME

ID COMPANYvs

ID NAME

Page 24: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Candidate Merging

HYRISE | Martin Grund | VLDB 2011

24 Result of Phase 2

ID

NAME ID NAME

EMAIL PHONE

ORG

COMPANY ID COMPANY

IDNAME COMPANY

Page 25: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Layout Generation

■  Generate all possible valid layouts from the result of phase 2

■  Exhaustively explore all combinations

■  A valid layout contains all attributes exactly once

HYRISE | Martin Grund | VLDB 2011

25

Page 26: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Layout Generation

HYRISE | Martin Grund | VLDB 2011

26

✔ EMAIL PHONE

COMPANY

ORG IDNAME COMPANY

EMAIL PHONEORG NAME ID

ORG EMAIL PHONENAME COMPANY ID

ORG COMPANYNAME EMAIL PHONEID

27.7

28.2

28.2

28.5

Cost in 1000

Page 27: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Divide and Conquer Partitioning

■  With huge numbers of attributes the scalability of the original algorithm degrades

■  Proposal: approximation that clusters frequently used attributes, by generating optimal sub-layouts for each cluster of primary partitions

HYRISE | Martin Grund | VLDB 2011

27

Page 28: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

EVALUATION

HYRISE | Martin Grund | VLDB 2011

28

Page 29: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Sample Workload

■  Mixed workload that is loosely based on the SAP Sales and Distribution scenario

□  Total benchmark size of 28 GB data

■  13 Queries

□  9 OLTP Queries with typical CRUD operations

□  3 OLAP-like Queries with high selectivity

□  1 Planning like query with incrementally decreasing selectivity

HYRISE | Martin Grund | VLDB 2011

29

Page 30: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Workload Evaluation

■  Layout Example – Input table are sales order headers

□  3 containers: VBELN (id) is used by many different queries; (KUNNR, AEDAT) are evaluated as predicates together; third partition is accessed by “SELECT *” operators

HYRISE | Martin Grund | VLDB 2011

30

...AEDAT......KUNNR...VBELN

VBELN AEDATKUNNR ...

Page 31: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Workload Evaluation

Total Cycles 0 50 100 150 200 250 300 350 400 450 500

Thou

san

ds

Row Column HYRISE

HYRISE | Martin Grund | VLDB 2011

31 ■  HYRISE uses 4x less cycles than

the all row layout, and is about 1.6 times faster than the all column layout

■  Depending on the query weight HYRISE’s advantage can vary

Page 32: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Workload Evaluation

■  Strong tension between the layouts, since most of the times the hybrid layout can only be as good as one of them

■  The mixed workload increases the benefit of a hybrid layout

■  Hybrid layout is usually better than the comparable layout

HYRISE | Martin Grund | VLDB 2011

32

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 TotalR 56770 24030 27050 15250 96780 90 13890.3 52301.5 5431.5 32297.6 29687.8 117471.1 4899.2 475949

C 9050 3510 11220 11930 30940 260 2154.8 9416.0 795.5 6032.4 6744.1 45468.6 2939.8 140461.2

H 9290 2910 4010 12810 11660 100 1795.3 7114.8 723.2 6243.5 6852.6 45751.1 2517.7 111778.2

Figure 5: Benchmark Results; graphs at the top show normalized (slowest system=1.0) CPU cycles (left) and normalized L2 cachemisses (right); table shows absolute CPU cycles / 100k

Each item represents one vertical partition in the table. Whilethere is no particular order for the partitions, all attributes inside thepartition are stored in order. We chose this table as an example sinceit is accessed by most of the queries and is partitioned to optimize forthe competing needs of several queries. Since the sales order num-ber (VBELN) and the related material (MATNR) columns are oftenscanned in their entirety (e.g., by Q6 and Q8) the layouter choosesto store them as single columns. The amount KWENG and the deliv-ery data AEDAT columns are always accessed together (Q11,Q12)and thus are stored as a group of two attributes. The rest of the at-tributes are merged by the layout algorithm to achieve best possibleperformance on SELECT* queries.

5.2 PerformanceFor each of the all-rows, all-columns, and optimal HYRISE de-

signs, we used our cost model to estimate the total cost and alsoexecuted them in the HYRISE query executor. For all queries wecaptured the complete query execution time both in CPU cycles andlast level cache misses (in our case L2 cache misses). For this bench-mark we choose late materializing plan operators (e.g., joins andaggregates that compute final results by going back to underlyingphysical representation) so that the performance of all plan oper-ators is directly affected by the physical representation. We triedother (early materialization) plans and found them to be slower forthese queries. Of course, in some settings early materialization-based operators may perform better than late materialization, but inthese cases the performance of the operators will be unaffected byour choice of storage layouts.

The results for all of the queries are shown in Figure 5. The ta-ble shows the absolute number of CPU cycles for each of the threedesigns. The graphs compare the normalized performance of eachsystem in terms of the number of CPU cycles (left), actual number ofL2 cache misses (middle), and number of L2 cache misses predictedby our model (right). Here “normalized” means that for a givenquery, the worst-performing system (in terms of CPU cycles or cachemisses) was assigned a score of 1.0, and the other systems were as-signed a score representing the fraction of cycles/misses relative tothe worst-performing system. For example, on Q1, all-columns andHYRISE used about 16% of the cycles as all-rows.

There are several things to note from these results. First, in termsof actual cache misses and CPU cycles, HYRISE almost always doesas well as or outperforms the best of all-rows and all-columns. Forthose queries where HYRISE does not outperform the other layouts,our designer determines it is preferable to sacrifice the performance

of a few queries to improve overall workload performance.The second observation is that cache misses are a good predictor

of performance. In general, the differences in cache misses tend to bemore pronounced than the differences in CPU times, but in all cases,the best performing query is the one with the fewest cache misses.Third, the model is a good predictor of the actual cache misses.Though there are absolute differences between the normalized andpredicted cache misses, the relative orderings of the schemes are al-ways the same. In general, the differences are caused by very hard tomodel differences, such as the gcc optimizer (which we ran at -O3),which can affect the number of cache misses.

In summary, HYRISE uses 4x less cycles than the all-row layout.HYRISE is about 1.6x faster than the all-column layout on OLTPqueries (1–9), with essentially identical performance on the analyt-ical queries (10–13). For some OLTP queries it can be up to 2.5xfaster than the all-column layout. Of course, in a hybrid databasesystem, the actual speedup depends on the mix of these queries – inpractice that many OLTP queries will be run for every OLAP query,suggesting that our hybrid designs are highly preferable.

5.3 Data Morphing LayoutsIn this section, we describe the differences between the behavior

and performance of our layout algorithm and the Hill-Climb DataMorphing algorithm proposed by Hankins and Patel [12] (the paperproposes two algorithms; Hill-Climb is the optimized version.) Wecould not run Hill-Climb on our entire benchmark because (as notedin the Introduction) the algorithm scales exponentially in both timeand space with the number of attributes (see Appendix D), and thuscan only be used on relatively simple databases.

Instead, we ran a simplified version of our benchmark, focusing onthe smallest relation (MATH) — the only one Hill-Climb could han-dle — and query 13 which runs over it. Here, Data Morphing sug-gests a complete vertical partitioning, which performs 60% worse interms of cache misses and 16% worse in terms of CPU cycles com-pared to the layout used by HYRISE. The reason for this differenceis mainly due to the lack of partial projections in the Data Morphingcost model. We would expect to see similar performance differencesfor other queries if Data Morphing could scale to them, since theData Morphing model is missing several key concepts (e.g. partialprojections, data alignment, and query plans—see Appendix D).

6. RELATED WORKAs mentioned in Section 5.3, the approach most related to

Page 33: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

HYRISE Layout Tension

■  Q6 (Insert) – HYRISE has to update multiple containers, row must be better

■  Q5 (Select) – HYRISE clearly outperforms both approaches

HYRISE | Martin Grund | VLDB 2011

33

0

0.2

0.4

0.6

0.8

1

1.2

Q6 Q5

Row Column HYRISE

Page 34: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

CONCLUSIONS

HYRISE | Martin Grund | VLDB 2011

34

Page 35: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

Conclusions

■  Presented HYRISE

□  Main memory hybrid database for mixed (OLTP + OLAP) workloads

□  Novel algorithms to find optimal workload aware vertical partitioning

–  Using a highly accurate cache-miss based model

□  On SAP-based benchmark, 4x better than all rows and 60% better than all columns

■  Come see HYRISE live at our Demo booth

HYRISE | Martin Grund | VLDB 2011

35

Page 36: HYRISE – In-Memory Storage Engine - VLDBHYRISE – In-Memory Storage Engine Martin Grund1, Jens Krueger1, Philippe Cudre-Mauroux3, Samuel Madden2 Alexander Zeier1, Hasso Plattner1

THANK YOU

HYRISE | Martin Grund | VLDB 2011

36