class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc ›...

214
auto-tuning database kernels prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ class 19

Upload: others

Post on 28-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

auto-tuning database kernelsprof. Stratos Idreos

HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/

class 19

Page 2: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

now you know the basics!

and it is time for research

next: design a full adaptive data system kernel from scratch

Page 3: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

soon everyone will need to be a “data scientist”hmm,

my data is too big :(

1

new applications/requirements

how far away are we from a future where a data system sits in the critical path of everything we do?

Stratos’ theory #1

Page 4: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

years

daily

dat

a

[IBMbigdata]years

daily

dat

a

[Stratos’Guess]

data

* ski

llsdata system design,

set-up, tune, use

2Stratos’ theory #2

Page 5: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

design & build

data systems that are easy to:

(years)

set-up & tune

(months)

use

(hours/days)

Page 6: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

+ of course make things fast

Page 7: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

not always sure what we are looking for (until we find it)

data exploration

data has always been bigvolume velocity variety veracity

3

Page 8: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

today and Wednesday

adaptive indexing,adaptive loading, adaptive storage,dbTouch+ more

since 2005

Martin Kersten Stefan Manegold Goetz Graefe Harumi Kuno Anastasia Ailamaki Eleni Petraki

Ioannis Alagiannis Miguel Branco Renata Borovica Felix Halim Ronald Yap Panos Karras

joint work with:

Page 9: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

storage indexing query

expert users - idle time - workload knowledge

too many preparation options lead to complex installation

schema load

Page 10: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

users/applicationsdeclarative interface

ask what you want

db system

DBA

Page 11: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

users/applications

data system 1 data system 2

need to choose the proper system

& workloads/

applications change rapidly

DBA2DBA1

Page 12: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

storage indexing queryschema loadX X X

be able to query the data immediately & with good performance

Page 13: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

storage indexing queryschema loadX X X

be able to query the data immediately & with good performance

raw data explore data and gain knowledge “immediately”

Page 14: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

tune= create proper indices offlineperformance 10-100X

load indexing query

indexingstorage

Page 15: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

tune= create proper indices offlineperformance 10-100X

but it depends on workload!which indices to build? on which data parts? and when to build them?

load indexing query

indexingstorage

Page 16: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

queryload indexingstorage

Page 17: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

queryload indexingstorage

Page 18: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload

queryload indexingstorage

Page 19: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload analyze

queryload indexingstorage

Page 20: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload analyze create indices

queryload indexingstorage

Page 21: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload analyze create indices query

queryload indexingstorage

Page 22: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload analyze create indices query

complex and time consuming process

queryload indexingstorage

Page 23: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

timeline

sample workload analyze create indices query

complex and time consuming process

queryload indexingstoragehuman administrators + auto-tuning tools

Page 24: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

what can go wrong?

not enough idle time to finish proper tuning

by the time we finish tuning, the workload changes

big data V’s volume velocity variety veracity

not enough space to index all data

not enough money - energy - resources

Page 25: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

what can go wrong?

not enough idle time to finish proper tuning

by the time we finish tuning, the workload changes

big data V’s volume velocity variety veracity

not enough space to index all data

not enough money - energy - resources

Page 26: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database cracking

Page 27: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database cracking

idle timeworkload knowledge

external tools

human control

Page 28: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

idle timeworkload knowledge

external tools

human control

Page 29: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

indexing

initialization querying

idle timeworkload knowledge

external tools

human control

Page 30: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

indexing

initialization querying

idle timeworkload knowledge

external tools

human control

Page 31: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

indexing

initialization querying

idle timeworkload knowledge

external tools

human control

every query is treated as an advice on how data should be stored

Page 32: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

...

...

relation1/table1

column-store databasea fixed-width and dense array per attribute

Database Cracking CIDR 2007

Page 33: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

Database Cracking CIDR 2007

Page 34: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

Database Cracking CIDR 2007

Page 35: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

sort

1 2 3 4 6 7 8 9

11 12 13 14 16 19

Database Cracking CIDR 2007

Page 36: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

sort

1 2 3 4 6 7 8 9

11 12 13 14 16 19

binary search

Database Cracking CIDR 2007

Page 37: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

sort

1 2 3 4 6 7 8 9

11 12 13 14 16 19

binary search re

sult

Database Cracking CIDR 2007

Page 38: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2

12 7 1

19 3

14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

sort

1 2 3 4 6 7 8 9

11 12 13 14 16 19

binary search re

sult

time+

knowledge

Database Cracking CIDR 2007

Page 39: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

Database Cracking CIDR 2007

Page 40: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

Database Cracking CIDR 2007

Page 41: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

Database Cracking CIDR 2007

Page 42: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

Database Cracking CIDR 2007

Page 43: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

resu

lt

Database Cracking CIDR 2007

Page 44: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

resu

lt

gain knowledge on how data is organized

Database Cracking CIDR 2007

Page 45: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

dynamically/on-the-fly within the select-operator

resu

lt

gain knowledge on how data is organized

Database Cracking CIDR 2007

Page 46: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operatorDatabase Cracking CIDR 2007

Page 47: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operatorDatabase Cracking CIDR 2007

Page 48: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

4 2 1 3 6 7 9 8 13 12 11 14 16 19

piece1: A<=7

piece2: 7<A<=10Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operatorDatabase Cracking CIDR 2007

Page 49: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

4 2 1 3 6 7 9 8 13 12 11 14 16 19

piece1: A<=7

piece2: 7<A<=10

piece3: 10<A<14Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operatorDatabase Cracking CIDR 2007

Page 50: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

4 2 1 3 6 7 9 8 13 12 11 14 16 19

piece1: A<=7

piece2: 7<A<=10

piece3: 10<A<14

piece4: 14<=A<=16

piece5: A>16

Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operatorDatabase Cracking CIDR 2007

Page 51: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

4 2 1 3 6 7 9 8 13 12 11 14 16 19

piece1: A<=7

piece2: 7<A<=10

piece3: 10<A<14

piece4: 14<=A<=16

piece5: A>16

Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operator

resu

lt

Database Cracking CIDR 2007

Page 52: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

13 16 4 9 2 12 7 1 19 3 14 11 8 6

column AQ1: select R.A from R where R.A>10 and R.A<14

4 9 2 7 1 3 8 6 13 12 11 16 19 14

piece1: A<=10

piece2: 10<A<14

piece3: A>=14

4 2 1 3 6 7 9 8 13 12 11 14 16 19

piece1: A<=7

piece2: 7<A<=10

piece3: 10<A<14

piece4: 14<=A<=16

piece5: A>16

Q2: select R.A from R where R.A>7 and R.A<=16

dynamically/on-the-fly within the select-operator

resu

lt

the more we crack, the more we learn

Database Cracking CIDR 2007

Page 53: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

select [15,55]

Database Cracking CIDR 2007

Page 54: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

select [15,55]

Database Cracking CIDR 2007

Page 55: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

Page 56: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

Page 57: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

Page 58: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]pieces become smaller and smaller

touch at most two pieces at a time

Database Cracking CIDR 2007

Page 59: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

but requires time, workload knowledge & stability

Page 60: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

adaptive

but requires time, workload knowledge & stability

Page 61: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

adaptive

but requires time, workload knowledge & stability

Page 62: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

100K random selections random selectivity random value ranges in a 10 million integer column

set-upScan

Full Index

Crack

0.001

0.01

0.1

1

10

100

1000

1 10 100 1000 10000 100000

Resp

onse

tim

e (

secs

)

Query sequence (x1000)

continuous adaptation

Database Cracking CIDR 2007

Page 63: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

100K random selections random selectivity random value ranges in a 10 million integer column

almost no initialization overhead

set-upScan

Full Index

Crack

0.001

0.01

0.1

1

10

100

1000

1 10 100 1000 10000 100000

Resp

onse

tim

e (

secs

)

Query sequence (x1000)

continuous adaptation

Database Cracking CIDR 2007

Page 64: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

100K random selections random selectivity random value ranges in a 10 million integer column

almost no initialization overhead

continuous improvement

set-upScan

Full Index

Crack

0.001

0.01

0.1

1

10

100

1000

1 10 100 1000 10000 100000

Resp

onse

tim

e (

secs

)

Query sequence (x1000)

continuous adaptation

Database Cracking CIDR 2007

Page 65: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

100K random selections random selectivity random value ranges in a 10 million integer column

almost no initialization overhead

continuous improvement

set-upScan

Full Index

Crack

0.001

0.01

0.1

1

10

100

1000

1 10 100 1000 10000 100000

Resp

onse

tim

e (

secs

)

Query sequence (x1000)

continuous adaptation

Database Cracking CIDR 2007

Page 66: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10K random selections selectivity 10% random value ranges in a 30 million integer column

Database Cracking CIDR 2007

set-up

0.004

200

0.001

0.01

0.1

1

10

100

1 10 100 1000 10000

Cum

ula

tive a

vera

ge r

esp

onse

tim

e (

secs

)

Query sequence

Scan

Full Index

Crack

continuous adaptation

Page 67: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

10K random selections selectivity 10% random value ranges in a 30 million integer column

10K queries later, Full Index still has not

amortized the initialization costs

Database Cracking CIDR 2007

set-up

0.004

200

0.001

0.01

0.1

1

10

100

1 10 100 1000 10000

Cum

ula

tive a

vera

ge r

esp

onse

tim

e (

secs

)

Query sequence

Scan

Full Index

Crack

continuous adaptation

Page 68: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

Atable1

Page 69: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

...

...

table1

Page 70: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

...

...

table1

select R.A from R where R.A>10 and R.A<14

Page 71: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

...

...

table1

select R.A from R where R.A>10 and R.A<14select max(R.A),max(R.B),max(S.A),max(S.B) from R,S where v1 <R.C<v2 and v3 <R.D<v4 and v5 <R.E<v6 and k1 <S.C<k2 and k3 <S.D<k4 and k5 <S.E<k6 and R.F = S.F

Page 72: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

...

...

table1

select R.A from R where R.A>10 and R.A<14select max(R.A),max(R.B),max(S.A),max(S.B) from R,S where v1 <R.C<v2 and v3 <R.D<v4 and v5 <R.E<v6 and k1 <S.C<k2 and k3 <S.D<k4 and k5 <S.E<k6 and R.F = S.F

updatesjoins

concurrency control

...

Page 73: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

cracking databases

updates (SIGMOD07)

storage-restrictions (SIGMOD09)

benchmarking (TPCTC10)

concurrency control

(PVLDB12)

algorithms (PVLDB11)

basics (CIDR07)

multi-cores (SIGMOD15)

hadoop (Yale/Saarland)

b-trees (HP Labs)

>1 columns (SIGMOD09)

robustness (PVLDB12)

adaptive storage

(SIGMOD14)

time-series (SIGMOD14)

encryption (SIGMOD16)

Page 74: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

updates

Updates SIGMOD 2007

Page 75: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

cracking indices are auxiliary data structurescan be dropped any time

Page 76: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

crack (forget) scan

forgettingwhen updates arrive, drop the index

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

queries (x1000) queries (x1000)

crack (forget) scan

we do not exploit past cracking

forgettingwhen updates arrive, drop the index

Page 77: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

crack (forget) scan

we do not exploit past cracking

forgettingwhen updates arrive, drop the index

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

queries (x1000) queries (x1000)

crack (forget) scan

we do not exploit past cracking

forgettingwhen updates arrive, drop the index

Page 78: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

log updates and apply on-line and on-demand during cracking

cracking updates

maintain

updates query

Page 79: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

log updates and apply on-line and on-demand during cracking

cracking updates

maintain

updates query

Page 80: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

Page 81: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 82: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 83: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 84: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 85: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 86: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 87: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pieces are ordered

values in a piece are not ordered

goal: minimize physical actions

arrays are dense3

column

pending inserts

pending deletes

1

9

17

12

16

25

22

29

33

39

31

10

20

30

11

Page 88: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

merge all updates merge only qualifying updates

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

queries (x1000) queries (x1000)

merge all updates merge only qualifying updates

gradual merging avoids high picks

Page 89: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

merge all updates merge only qualifying updates

gradual merging avoids high picks

Stratos Idreos

column of 10M tuples, random queries 1000 random insertions every 1000 queries

queries (x1000) queries (x1000)

merge all updates merge only qualifying updates

gradual merging avoids high picks

Page 90: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

Page 91: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Page 92: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Page 93: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Page 94: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Page 95: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

Page 96: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 97: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 98: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 99: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 100: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 101: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 102: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 103: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 104: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Page 105: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

update only the hot tuples

Page 106: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

forget ripple

Stratos Idreos

queries (x1000) queries (x1000)

merge all updates merge only qualifying updates

forget ripple

maintains adaptive behavior

Page 107: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways crackinghow to process >1 columns

Sideways Cracking, SIGMOD 09

Page 108: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

column-stores

a1a2a3a4a5a6

b1b2b3b4b5b6

c1c2c3c4c5c6

positional alignment

positional lookupsA(i) = A + i * width(A)

Tuple 1Tuple 2Tuple 3Tuple 4Tuple 5Tuple 6

A B C

Sideways Cracking, SIGMOD 09

Page 109: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

select min(C) from R where A<10 & B<20

B<20 minCA<10A B C D IDs B CIDsdisk memory

Sideways Cracking, SIGMOD 09

Page 110: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

pos1 pos2

1 0 1 0

A

sort

edselect max(D),min(E) from R where (A>10 and A<40) and (B>20 and B<60)

binary search for 10 & 40

B

for all B values between pos1 & 2: if B>20 and B<60 mark bit vector at pos i

maxD

D

for each marked position max(D)

avoid scan of A avoid TR on B work on a restricted area across all columns good for memory hierarchy

Page 111: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

a1 a2 a3 a4 a5 a6

1 3 6

RowIDs

a1 a2 a3 a4 a5 a6

6 1 3

RowIDs

ordered

unordered

sequential access

random access

without cracking

with cracking

Sideways Cracking, SIGMOD 09

Page 112: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A

sideways cracking

Sideways Cracking, SIGMOD 09

Page 113: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A

sideways cracking

Sideways Cracking, SIGMOD 09

Page 114: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

sideways cracking

Sideways Cracking, SIGMOD 09

Page 115: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Page 116: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Page 117: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Page 118: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Page 119: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Page 120: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Page 121: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Page 122: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Page 123: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Page 124: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

A B C D

log crack actions and replay to align columns dynamically

sideways cracking

replace tuple reconstruction with cracking actions Sideways Cracking, SIGMOD 09

Page 125: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Sideways Cracking, SIGMOD 09

Page 126: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Sideways Cracking, SIGMOD 09

Page 127: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Sideways Cracking, SIGMOD 09

Page 128: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Cracker MapHead Tail

Sideways Cracking, SIGMOD 09

Page 129: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Cracker MapHead Tail

crack based on head, carry tail

Sideways Cracking, SIGMOD 09

Page 130: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Cracking knowledge

Cracker MapHead Tail

crack based on head, carry tail

Sideways Cracking, SIGMOD 09

Page 131: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Cracking knowledge No tuple reconstruction

Cracker MapHead Tail

crack based on head, carry tail

Sideways Cracking, SIGMOD 09

Page 132: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Dynamically/on-the-fly within the select-operatorCracking knowledge No tuple reconstruction

Cracker MapHead Tail

crack based on head, carry tail

Sideways Cracking, SIGMOD 09

Page 133: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

sideways cracking

12

3

5

9

15

22

7

26

4

2

24

11

16

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

A B

select B from R where 10<A<15

4

3

5

9

2

7

12

11

15

22

24

26

16

b9

b2

b3

b4

b10

b7

b1

b12

b5

b6

b11

b8

b13

AB

Position 1

value <=10Piece 1

Position 7

value >10Piece 2

Position 9

value >=15Piece 3

select B from R where 5=<A<17

4

3

2

9

5

7

12

11

15

16

24

26

22

b9

b2

b10

b4

b3

b7

b1

b12

b5

b13

b11

b8

b6

Position 1

value <5Piece 1

Position 7

value >10Piece 3

Position 9

value >=15Piece 4

Position 4

value >=5Piece 2

Position 11

value >=17Piece 5

Cracker index Cracker indexM ABMInitial state

Dynamically/on-the-fly within the select-operatorCracking knowledge No tuple reconstruction

Cracker MapHead Tail

crack based on head, carry tail

Sideways Cracking, SIGMOD 09

Page 134: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 135: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 136: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 137: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 138: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

perform the same cracks and in the same order on all maps with the same head

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 139: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

perform the same cracks and in the same order on all maps with the same head

on-line alignment touch/load everything, always

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 140: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

perform the same cracks and in the same order on all maps with the same head

on-line alignment Xtouch/load everything, always

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 141: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

perform the same cracks and in the same order on all maps with the same head

remember and replay cracks across columns

on-line alignment Xtouch/load everything, always

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 142: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 143: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

Align

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 144: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

Align

Align

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 145: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

Align

AlignCorrect

alignment

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 146: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

7

4

1

2

8

3

6

B

b1

b2

b3

b4

b5

b6

b7

A

c1

c2

c3

c4

c5

c6

c7

C

select B from R where A<3 select C from R where A<5 select B,C from R where A<4

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

3

4

1

2

8

7

6

c6

c2

c3

c4

c5

c1

c7

v<5

v>=5

2

1

3

7

8

4

6

M

b4

b3

b6

b1

b5

b2

b7

v<3

v>=4

v>=3

3

2

1

4

8

7

6

c6

c4

c3

c2

c5

c1

c7

v<4

v>=5

v>=4

Result

b4

b3

Result

c6

c2

c3

c4

Result

b4

b3

b6

c6

c4

c3

Initial state

Without Alignment

2

1

4

7

8

3

6

b4

b3

b2

b1

b5

b6

b7

v<3

v>=3

b4

b3

Result

WithAlignment

2

1

4

3

8

7

6

c4

c3

c2

c6

c5

c1

c7

v<3

v>=5

Result

c4

c3

c2

c6

2

1

4

7

8

3

6

c4

c3

c2

c1

c5

c6

c7

v<3

v>=3

Crack A<5

v>=3

2

1

4

3

8

7

6

b4

b3

b2

b6

b5

b1

b7

v<3

v>=5

v>=3

2

1

3

4

8

7

6

b4

b3

b6

b2

b5

b1

b7

v<3

v>=5

v>=3

v>=4

2

1

3

4

8

7

6

c4

c3

c6

c2

c5

c1

c7

v<3

v>=5

v>=3

v>=4

Result

b4

b3

b6

c4

c3

c6

Wrong

allignment

Correct

allignment

Crack A<3

Crack A<5Crack A<3

Crack A<3 Crack A<4Crack A<5

Crack A<4

AB

MAC

MAB

MAC

MAC MAC MAC

MABMABMAB

Wrong alignment

Align

AlignCorrect

alignment

replace tuple reconstruction with cracking

adaptive alignment

Sideways Cracking, SIGMOD 09

Page 147: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

select D from R where 3<A<10 and 4<B<8 and 1<C<7

wider maps...but too many combinations maps of different maps sets lead to alignment problems

Sideways Cracking, SIGMOD 09

Page 148: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

use a single map set and exploit bit-vectors

select D from R where 3<A<10 and 4<B<8 and 1<C<7

wider maps...but too many combinations maps of different maps sets lead to alignment problems

Sideways Cracking, SIGMOD 09

Page 149: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

12

3

5

9

8

22

7

26

4

2

7

9

2

6

10

7

11

16

2

5

8

3

A B

select_create_bv(A,3,10,B,4,8)

2

3

5

9

8

7

7

4

26

12

22

8

2

6

10

7

3

16

5

2

9

11

MAB

v<=3

v>3

v>=10

1

0

1

0

0

1

Bit

vector bv

3

6

2

1

6

9

12

2

11

17

3

C

select_refine_bv(A,3,10,C,1,7,bv)

2

3

5

9

8

7

7

4

26

12

22

17

6

2

1

6

3

12

11

2

3

9

v<=3

v>3

v>=10

1

0

1

0

0

0

Bit

vector bv

9

4

2

10

12

19

3

6

5

8

1

D

reconstruct(A,3,10,D,bv)

2

3

5

9

8

7

7

4

26

12

22

8

4

2

10

12

1

3

5

6

9

19

v<=3

v>3

v>=10

2

12

Result

MAC MAD

select D from R

where 3<A<10 and

4<B<8 and 1<C<7

Initial stateQuery

1

0

1

0

0

0

Bit

vector bv

select D from R where 3<A<10 and 4<B<8 and 1<C<7

Sideways Cracking, SIGMOD 09

Page 150: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

12

3

5

9

8

22

7

26

4

2

7

9

2

6

10

7

11

16

2

5

8

3

A B

select_create_bv(A,3,10,B,4,8)

2

3

5

9

8

7

7

4

26

12

22

8

2

6

10

7

3

16

5

2

9

11

MAB

v<=3

v>3

v>=10

1

0

1

0

0

1

Bit

vector bv

3

6

2

1

6

9

12

2

11

17

3

C

select_refine_bv(A,3,10,C,1,7,bv)

2

3

5

9

8

7

7

4

26

12

22

17

6

2

1

6

3

12

11

2

3

9

v<=3

v>3

v>=10

1

0

1

0

0

0

Bit

vector bv

9

4

2

10

12

19

3

6

5

8

1

D

reconstruct(A,3,10,D,bv)

2

3

5

9

8

7

7

4

26

12

22

8

4

2

10

12

1

3

5

6

9

19

v<=3

v>3

v>=10

2

12

Result

MAC MAD

select D from R

where 3<A<10 and

4<B<8 and 1<C<7

Initial stateQuery

1

0

1

0

0

0

Bit

vector bv

select D from R where 3<A<10 and 4<B<8 and 1<C<7

Crack 3<A<10 Analyze tail 4<B<8 Create bit vector

Sideways Cracking, SIGMOD 09

Page 151: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

12

3

5

9

8

22

7

26

4

2

7

9

2

6

10

7

11

16

2

5

8

3

A B

select_create_bv(A,3,10,B,4,8)

2

3

5

9

8

7

7

4

26

12

22

8

2

6

10

7

3

16

5

2

9

11

MAB

v<=3

v>3

v>=10

1

0

1

0

0

1

Bit

vector bv

3

6

2

1

6

9

12

2

11

17

3

C

select_refine_bv(A,3,10,C,1,7,bv)

2

3

5

9

8

7

7

4

26

12

22

17

6

2

1

6

3

12

11

2

3

9

v<=3

v>3

v>=10

1

0

1

0

0

0

Bit

vector bv

9

4

2

10

12

19

3

6

5

8

1

D

reconstruct(A,3,10,D,bv)

2

3

5

9

8

7

7

4

26

12

22

8

4

2

10

12

1

3

5

6

9

19

v<=3

v>3

v>=10

2

12

Result

MAC MAD

select D from R

where 3<A<10 and

4<B<8 and 1<C<7

Initial stateQuery

1

0

1

0

0

0

Bit

vector bv

select D from R where 3<A<10 and 4<B<8 and 1<C<7

Crack 3<A<10 Analyze tail 4<B<8 Create bit vector

Align 3<A<10 Analyze tail 1<C<7 Refine bit vector

Sideways Cracking, SIGMOD 09

Page 152: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

12

3

5

9

8

22

7

26

4

2

7

9

2

6

10

7

11

16

2

5

8

3

A B

select_create_bv(A,3,10,B,4,8)

2

3

5

9

8

7

7

4

26

12

22

8

2

6

10

7

3

16

5

2

9

11

MAB

v<=3

v>3

v>=10

1

0

1

0

0

1

Bit

vector bv

3

6

2

1

6

9

12

2

11

17

3

C

select_refine_bv(A,3,10,C,1,7,bv)

2

3

5

9

8

7

7

4

26

12

22

17

6

2

1

6

3

12

11

2

3

9

v<=3

v>3

v>=10

1

0

1

0

0

0

Bit

vector bv

9

4

2

10

12

19

3

6

5

8

1

D

reconstruct(A,3,10,D,bv)

2

3

5

9

8

7

7

4

26

12

22

8

4

2

10

12

1

3

5

6

9

19

v<=3

v>3

v>=10

2

12

Result

MAC MAD

select D from R

where 3<A<10 and

4<B<8 and 1<C<7

Initial stateQuery

1

0

1

0

0

0

Bit

vector bv

select D from R where 3<A<10 and 4<B<8 and 1<C<7

Crack 3<A<10 Analyze tail 4<B<8 Create bit vector

Align 3<A<10 Analyze tail 1<C<7 Refine bit vector

Align 3<A<10 Grab tail values

Sideways Cracking, SIGMOD 09

Page 153: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

multi-selections

12

3

5

9

8

22

7

26

4

2

7

9

2

6

10

7

11

16

2

5

8

3

A B

select_create_bv(A,3,10,B,4,8)

2

3

5

9

8

7

7

4

26

12

22

8

2

6

10

7

3

16

5

2

9

11

MAB

v<=3

v>3

v>=10

1

0

1

0

0

1

Bit

vector bv

3

6

2

1

6

9

12

2

11

17

3

C

select_refine_bv(A,3,10,C,1,7,bv)

2

3

5

9

8

7

7

4

26

12

22

17

6

2

1

6

3

12

11

2

3

9

v<=3

v>3

v>=10

1

0

1

0

0

0

Bit

vector bv

9

4

2

10

12

19

3

6

5

8

1

D

reconstruct(A,3,10,D,bv)

2

3

5

9

8

7

7

4

26

12

22

8

4

2

10

12

1

3

5

6

9

19

v<=3

v>3

v>=10

2

12

Result

MAC MAD

select D from R

where 3<A<10 and

4<B<8 and 1<C<7

Initial stateQuery

1

0

1

0

0

0

Bit

vector bv

select D from R where 3<A<10 and 4<B<8 and 1<C<7

Crack 3<A<10 Analyze tail 4<B<8 Create bit vector

Align 3<A<10 Analyze tail 1<C<7 Refine bit vector

Align 3<A<10 Grab tail values

Use histogram-like info from maps to choose map set

Sideways Cracking, SIGMOD 09

Page 154: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

Resp

onse

tim

e (m

illi s

ecs)

Sideways Cracking, SIGMOD 09

Page 155: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

Resp

onse

tim

e (m

illi s

ecs)

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 156: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

preparation cost 3-14 minutes

per query

Resp

onse

tim

e (m

illi s

ecs)

presorted MonetDB

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 157: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

preparation cost 3-14 minutes

per query

Resp

onse

tim

e (m

illi s

ecs)

presorted MonetDBMonetDB with

sideways cracking

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 158: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

preparation cost 3-14 minutes

per query

Resp

onse

tim

e (m

illi s

ecs)

presorted MonetDBMonetDB with

sideways cracking

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 159: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

preparation cost 3-14 minutes

per query

Resp

onse

tim

e (m

illi s

ecs)

presorted MonetDBMonetDB with

sideways cracking

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 160: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

70

330

100

150

200

250

300

0 5 10 15 20 25 30Query sequence

TPC-H Query 15764420

1000

10000

Sel. Crack

Sid. Crack

MonetDB

PresortedMySQL

Presorted

preparation cost 3-14 minutes

per query

Resp

onse

tim

e (m

illi s

ecs)

presorted MonetDBMonetDB with

sideways cracking

normal MonetDB

selection cracking

Sideways Cracking, SIGMOD 09

Page 161: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

Partial Sideways Cracking

15

8

19

6

11

2

14

5

12

18

4

9

13

7

b1

b2

b3

b4

b5

b6

b7

b8

b9

b10

b11

b12

b13

b14

A B

Select B from R where 9<A<=15Initial state

Chunk map H (A,id)

v<=9

U

v>9

F

v>15

U

v<=9

E

v>9

M,C=1

v>15

E

Partial map M

Select B from R where 9<A<13

v<=9

E

v>9

M,C=1

v>15

E

v>=13

M,C=1

Select B from R where 5<=A<8

v<5

U

v>9

F

v>15

Uv>15, E

v>9

M,C=1

v>=13

M,C=1

v>=5

F

v>=8

U

v<5, E

v>=5

M,C=2

v>=8, E

7

8

9

6

4

2

5

14

12

13

15

11

19

18

14

2

12

4

11

6

8

7

9

13

1

5

3

10

14

12

13

15

11

b7

b9

b13

b1

b5

11

12

13

15

14

b5

b9

b13

b1

b7

4

2

7

6

5

9

8

14

12

13

15

11

19

18

11

6

14

11

8

12

2

7

9

13

1

5

3

10

11

12

13

15

14

b5

b9

b13

b1

b7

7

6

5

b14

b11

b8

c1

c2

c3

c4

c5

c6

c7

c8

c9

c10

c11

c12

c13

c14

C

Select C from R where 8<=A<15

v<5

U

v>9

F

v>15

U v>15, E

v>9

M,C=1

v>=13

M,C=1

v>=5

F

v>=8

F

v<8, E

v>=8

M,C=3

4

2

7

6

5

9

8

14

12

13

15

11

19

18

11

6

14

11

8

12

2

7

9

13

1

5

3

10

11

12

13

14

15

c5

c9

c13

c7

c1

9

8

c12

c2

v>15

M,C=1

A

Chunk map H (A,id)A Chunk map H (A,id)A

AB Partial map MAB

Partial map MAB Partial map MAC

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Keys

Page 162: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

Page 163: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack

crack

Page 164: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack

crack

Page 165: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack

crack

no alignment

no alignment

Page 166: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack

crack

full alignment

full alignment

no alignment

no alignment

Page 167: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack

crack

full alignment

full alignment

partial alignment

partial alignment

no alignment

no alignment

Page 168: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

concurrency control

Concurrency Control, PVLDB 12

problem: read queries become write queries! (?)

goal: be able to crack for multiple queries in parallel

Page 169: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

Concurrency Control, PVLDB 12

Page 170: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexingwrite queries read queries

Concurrency Control, PVLDB 12

Page 171: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

change index contents and structure

only index structure changes

write queries read queries

Concurrency Control, PVLDB 12

Page 172: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

change index contents and structure

only index structure changes

no need for traditional locks = too heavy

short term latches = fast and release quickly

write queries read queries

Concurrency Control, PVLDB 12

Page 173: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

write queries read queries

Concurrency Control, PVLDB 12

Page 174: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3

write queries read queries

Concurrency Control, PVLDB 12

Page 175: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3

a b

write queries read queries

Concurrency Control, PVLDB 12

Page 176: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3 v1 v2 v3

a b

a b

write queries read queries

Concurrency Control, PVLDB 12

Page 177: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3 v1 v2 v3

a b

a b

write queries read queries

Concurrency Control, PVLDB 12

Page 178: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3 v1 v2 v3

a b

a b

v1 v2 v3a

write queries read queries

Concurrency Control, PVLDB 12

Page 179: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

change index contents and structure

only index structure changes

v1 v2 v3 v1 v2 v3

a b

a b

v1 v2 v3a

write queries read queries

Concurrency Control, PVLDB 12

Page 180: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

impact stable storage stable storage optional

change index contents and structure

only index structure changes

write queries read queries

Concurrency Control, PVLDB 12

Page 181: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

impact stable storage stable storage optional

change index contents and structure

only index structure changes

v1 v2 v3 v1 v2 v3a b

write queries read queries

a b

Concurrency Control, PVLDB 12

Page 182: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

traditional indexing adaptive indexing

all or nothing incremental and optional

impact stable storage stable storage optional

change index contents and structure

only index structure changes

need to serialize can execute in any order

write queries read queries

Concurrency Control, PVLDB 12

Page 183: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

fewer conflicts as we adapt

query sequence

confl

icts

Scan

Full Index

Crack

0.001

0.01

0.1

1

10

100

1000

1 10 100 1000 10000 100000

Resp

onse

tim

e (

secs

)

Query sequence (x1000)

Concurrency Control, PVLDB 12

Page 184: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

diskA B C D

Concurrency Control, PVLDB 12

Page 185: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

A<10disk memory

A B C D

Concurrency Control, PVLDB 12

Page 186: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

A<10disk memory

A B C D IDs

Concurrency Control, PVLDB 12

Page 187: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

A<10disk memory

A B C D IDs B

Concurrency Control, PVLDB 12

Page 188: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

B<20A<10disk memory

A B C D IDs B

Concurrency Control, PVLDB 12

Page 189: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

B<20A<10disk memory

A B C D IDs B CIDs

Concurrency Control, PVLDB 12

Page 190: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

B<20 minCA<10disk memory

A B C D IDs B CIDs

Concurrency Control, PVLDB 12

Page 191: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

late reconstruction

select min(C) from R where A<10 & B<20

B<20 minCA<10disk memory

A B C D IDs B CIDs

column lock and release as soon as an operator completes

Concurrency Control, PVLDB 12

Page 192: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos Concurrency Control, PVLDB 12

select [a,b]

Page 193: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

need to latch only to be cracked pieces (max 2 per select)

Concurrency Control, PVLDB 12

select [a,b]

Page 194: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack column

Concurrency Control, PVLDB 12

Page 195: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columncrack select

Concurrency Control, PVLDB 12

Page 196: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columncrack selectwlock

Concurrency Control, PVLDB 12

Page 197: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columncrack select

wlock

Concurrency Control, PVLDB 12

Page 198: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack column

Concurrency Control, PVLDB 12

Page 199: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columnmax

Concurrency Control, PVLDB 12

Page 200: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columnmaxrlock

Concurrency Control, PVLDB 12

Page 201: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Page 202: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Page 203: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Page 204: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column1090

140

200

300

piece locking

Page 205: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack select1090

140

200

300

65

230

piece locking

Page 206: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

1090

140

200

300

65

230

piece locking

Page 207: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

r/wlock

1090

140

200

300

65

230

piece locking

Page 208: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

q1,q2,q3...qn1090

140

200

300

65

230

10

90

piece locking

Page 209: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

q1,q2,q3...qn1090

140

200

300

65

230

10

90

2030

7080

piece locking

Page 210: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

q1,q2,q3...qn1090

140

200

300

65

230

10

90

2030

7080

wlock

piece locking

Page 211: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

0

10

20

30

40

50

60

70

80

1 2 4 8 16 32

Tota

l Tim

e for

1024 Q

ueries

(secs

)

Number of Concurrent Clients

scansort

crack

300

0

50

100

150

200

250

350

1 2 4 8 16 32

Thro

ughput ove

r 1024 Q

ueries

(Queries

/ se

c)

Number of Concurrent Clients

scansort

crack

4.5

4.55

4.6

4.65

4.7

4.75

4.8

Tota

l Tim

e for

1024 Q

ueries

(secs

)

(Sequential Execution)

Concurrency Control

Enabled Disabled

Rows: 100M Query: select sum(A) from R where v1 < A1 < v2 Selectivity: 0.01%, Random, # of queries: 1024 Clients: 1-32, Machine: 4 cores

adaptive indexing maintains its performance advantage

Concurrency Control, PVLDB 12

Page 212: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

crack time and wait time

10-6

10-5

10-4

10-3

10-2

10-1

100

1 10 100 1000

Tim

e p

er

query

(se

cs)

Query sequence

index refinementwait time

Query: select sum(A) from R where v1 < A1 < v2 Selectivity: 0.01%, Random, # of queries: 1024 Clients: 8, Machine: 4 cores

adaptive indexing maintains

the adaptive behavior

adaptive behavior also for conflicts

Concurrency Control, PVLDB 12

Page 213: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

Stratos Idreos

Overview of Data Exploration TechniquesS. Idreos, O. Papaemmanouil, and S. Chaudhuri ACM SIGMOD International Conference on Management of Data, 2015

(explore citations)

Page 214: class 19 auto-tuning database kernelsdaslab.seas.harvard.edu › classes › cs165 › doc › class_slides › ...what we are looking for (until we find it) data exploration data

DATA SYSTEMSprof. Stratos Idreos

class 19

auto-tuning database kernels