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

Post on 28-Jun-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

auto-tuning database kernelsprof. Stratos Idreos

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

class 19

Stratos Idreos

now you know the basics!

and it is time for research

next: design a full adaptive data system kernel from scratch

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

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

Stratos Idreos

design & build

data systems that are easy to:

(years)

set-up & tune

(months)

use

(hours/days)

Stratos Idreos

+ of course make things fast

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

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:

Stratos Idreos

timeline

storage indexing query

expert users - idle time - workload knowledge

too many preparation options lead to complex installation

schema load

Stratos Idreos

users/applicationsdeclarative interface

ask what you want

db system

DBA

Stratos Idreos

users/applications

data system 1 data system 2

need to choose the proper system

& workloads/

applications change rapidly

DBA2DBA1

Stratos Idreos

storage indexing queryschema loadX X X

be able to query the data immediately & with good performance

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”

Stratos Idreos

tune= create proper indices offlineperformance 10-100X

load indexing query

indexingstorage

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

Stratos Idreos

queryload indexingstorage

Stratos Idreos

timeline

queryload indexingstorage

Stratos Idreos

timeline

sample workload

queryload indexingstorage

Stratos Idreos

timeline

sample workload analyze

queryload indexingstorage

Stratos Idreos

timeline

sample workload analyze create indices

queryload indexingstorage

Stratos Idreos

timeline

sample workload analyze create indices query

queryload indexingstorage

Stratos Idreos

timeline

sample workload analyze create indices query

complex and time consuming process

queryload indexingstorage

Stratos Idreos

timeline

sample workload analyze create indices query

complex and time consuming process

queryload indexingstoragehuman administrators + auto-tuning tools

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

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

Stratos Idreos

database cracking

Stratos Idreos

database cracking

idle timeworkload knowledge

external tools

human control

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

idle timeworkload knowledge

external tools

human control

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

indexing

initialization querying

idle timeworkload knowledge

external tools

human control

Stratos Idreos

database crackingauto-tuning database kernels

incremental, adaptive, partial indexing

indexing

initialization querying

idle timeworkload knowledge

external tools

human control

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

Stratos Idreos

A B C D

...

...

relation1/table1

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

Database Cracking CIDR 2007

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Stratos Idreos

select [15,55]

Database Cracking CIDR 2007

Stratos Idreos

select [15,55]

Database Cracking CIDR 2007

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

Stratos Idreos

10 20 30 40 50 60

select [15,55]

select [15,55]

Database Cracking CIDR 2007

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

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

but requires time, workload knowledge & stability

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

adaptive

but requires time, workload knowledge & stability

Stratos Idreos

# of queries

resp

onse

tim

estandard

optimal

adaptive

but requires time, workload knowledge & stability

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

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

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

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

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

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

Stratos Idreos

Atable1

Stratos Idreos

A B C D

...

...

table1

Stratos Idreos

A B C D

...

...

table1

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

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

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

...

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)

Stratos Idreos

updates

Updates SIGMOD 2007

Stratos Idreos

cracking indices are auxiliary data structurescan be dropped any time

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

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

Stratos Idreos

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

cracking updates

maintain

updates query

Stratos Idreos

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

cracking updates

maintain

updates query

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

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

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

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

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

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

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

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

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

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

Stratos Idreos

the ripplecolumn

pending updates

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

Stratos Idreos

the ripplecolumn

pending updates

quer

y re

sult

doing work not relevant for the current query

column

quer

y re

sult

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

Stratos Idreos

forget ripple

Stratos Idreos

queries (x1000) queries (x1000)

merge all updates merge only qualifying updates

forget ripple

maintains adaptive behavior

Stratos Idreos

sideways crackinghow to process >1 columns

Sideways Cracking, SIGMOD 09

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

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

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

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

Stratos Idreos

A

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C D

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C Dquery sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

Stratos Idreos

A B C D

query

sideways cracking

Sideways Cracking, SIGMOD 09

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Stratos Idreos

Stratos Idreos

crack

crack

Stratos Idreos

crack

crack

Stratos Idreos

crack

crack

no alignment

no alignment

Stratos Idreos

crack

crack

full alignment

full alignment

no alignment

no alignment

Stratos Idreos

crack

crack

full alignment

full alignment

partial alignment

partial alignment

no alignment

no alignment

Stratos Idreos

concurrency control

Concurrency Control, PVLDB 12

problem: read queries become write queries! (?)

goal: be able to crack for multiple queries in parallel

Stratos Idreos

traditional indexing adaptive indexing

Concurrency Control, PVLDB 12

Stratos Idreos

traditional indexing adaptive indexingwrite queries read queries

Concurrency Control, PVLDB 12

Stratos Idreos

traditional indexing adaptive indexing

change index contents and structure

only index structure changes

write queries read queries

Concurrency Control, PVLDB 12

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

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

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

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

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

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

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

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

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

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

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

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

Stratos Idreos

late reconstruction

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

diskA B C D

Concurrency Control, PVLDB 12

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

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

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

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

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

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

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

Stratos Idreos Concurrency Control, PVLDB 12

select [a,b]

Stratos Idreos

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

Concurrency Control, PVLDB 12

select [a,b]

Stratos Idreos

piece locking

avl-tree crack column

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columncrack select

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columncrack selectwlock

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columncrack select

wlock

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack column

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columnmax

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columnmaxrlock

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Stratos Idreos

piece locking

avl-tree crack columnmax

rlock

Concurrency Control, PVLDB 12

Stratos Idreos

avl-tree crack column1090

140

200

300

piece locking

Stratos Idreos

avl-tree crack column crack select1090

140

200

300

65

230

piece locking

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

1090

140

200

300

65

230

piece locking

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

r/wlock

1090

140

200

300

65

230

piece locking

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

q1,q2,q3...qn1090

140

200

300

65

230

10

90

piece locking

Stratos Idreos

avl-tree crack column crack selectwlock

wlock

q1,q2,q3...qn1090

140

200

300

65

230

10

90

2030

7080

piece locking

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

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

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

Stratos Idreos

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

(explore citations)

DATA SYSTEMSprof. Stratos Idreos

class 19

auto-tuning database kernels

top related