Top Banner
CS 347 Notes 03 1 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina
115

CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 1

CS 347: Distributed Databases and

Transaction ProcessingNotes03: Query Processing

Hector Garcia-Molina

Page 2: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 2

Query Processing

• Decomposition• Localization• Optimization

Page 3: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 3

Decomposition

• Same as in centralized system

• Normalization• Eliminating redundancy• Algebraic rewriting

Page 4: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 4

Normalization

• Convert from general language to a “standard” form (e.g., Relational Algebra)

Page 5: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 5

Example

Select A,CFrom R,SWhere (R.B=1 and S.D=2) or (R.C>3 and S.D.=2)

(R.B=1 v R.C>3) S.D.=2

R SConjunctive

normalform

A, C

Page 6: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 6

Also: Detect invalid expressions

E.g.: Select * from R where R.A =3 R does not have

“A” attribute

Page 7: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 7

Eliminate redundancy

E.g.: in conditions:(S.A=1) (S.A>5) False(S.A<10) (S.A<5) S.A<5

Page 8: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 8

E.g.: Common sub-expressions

U U

S cond cond T S cond T

R R R

Page 9: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 9

Algebraic rewriting

E.g.: Push conditions down

cond3

cond

cond1

cond2

R S R S

Page 10: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 10

• After decomposition:– One or more algebraic query trees

on relations

• Localization:– Replace relations by corresponding

fragments

Page 11: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 11

Localization steps

(1) Start with query(2) Replace relations by fragments

(3) Push : up (use CS245 rules)

, : down

(4) Simplify – eliminate unnecessary operations

Page 12: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 12

Notation for fragment

[R: cond]

fragment conditions its tuples satisfy

Page 13: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 13

Example A

(1) E=3

R

Page 14: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 14

(2) E=3

[R1: E < 10] [R2: E 10]

Page 15: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 15

(3)

E=3 E=3

[R1: E < 10] [R2: E 10]

Page 16: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 16

(3)

E=3 E=3

[R1: E < 10] [R2: E 10]

Ø

Page 17: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 17

(4) E=3

[R1: E < 10]

Page 18: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 18

Rule 1

C1[R: c2] C1[R: c1 c2]

[R: False] ØA

B

Page 19: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 19

In example A:

E=3[R2: E10] E=3 [R2: E=3 E10]

E=3 [ R2: False]

Ø

Page 20: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 20

Example B

(1) A=common attribute

R S

A

Page 21: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 21

(2)

A

[S1: A<5] [S2: A 5]

[R1: A<5] [R2: 5 A 10] [R3: A>10]

Page 22: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 22

(3)

[R1:A<5][S1:A<5] [R1:A<5][S2:A5] [R2:5A10][S1:A<5]

[R2:5A10][S2:A5] [R3:A>10][S1:A<5] [R3:A>10]

[S2:A5]

A AA

AA A

Page 23: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 23

(3)

[R1:A<5][S1:A<5] [R1:A<5][S2:A5] [R2:5A10][S1:A<5]

[R2:5A10][S2:A5] [R3:A>10][S1:A<5] [R3:A>10]

[S2:A5]

A AA

AA A

Page 24: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 24

(4)

[R1:A<5][S1:A<5] [R2:5A10][S2:A5]

A A A

[R3:A>10][S2:A5]

Page 25: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 25

Rule 2

[R: C1] [S: C2]

[R S: C1 C2 R.A = S.A]

A

A

Page 26: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 26

In step 4 of Example B:

[R1: A<5] [S2: A 5]

[R1 S2: R1.A < 5 S2.A 5 R1.A = S2.A ]

[R1 S2: False] ØA

A

A

Page 27: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 27

Localization with derived fragmentation

Example C(2)

R1: R2: S1:K=R.K S2:K=R.KA<10 A 10 R.A<10 R.A10

K

Page 28: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 28

(3)

[R1][S1] [R1][S2] [R2][S1] [R2][S2]

K K K K

Page 29: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 29

(4)

[R1:A<10] S1:K=R.K [R2:A10] S2:K=R.K

R.A<10 R.A10

KK

Page 30: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 30

In step 4 of Example C:

[R1:A<10] [S2:K=R.K R.A10]

[R1 S2: R1.A<10 S2.K=R.K R.A10 R1.K= S2.K]

[R1 S2:False ] (K is key of R, R1)

Ø

K

K

K

Page 31: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 31

(4)

[R1:A<10] S1:K=R.K [R2:A10] S2:K=R.K R.A<10 R.A10

KK

(4) simplified more:

KK

R1 S1 R2 S2

Page 32: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 32

• Localization with vertical fragmentation

Example D(1) A R1(K, A, B)

R R2(K, C, D)

Page 33: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 33

(2) A

R1 R2

(K, A, B) (K, C, D)

K

Page 34: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 34

(3) A

K,A K,A

R1 R2

(K, A, B) (K, C, D)

K

not reallyneeded

Page 35: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 35

(4) A

R1

(K, A, B)

Page 36: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 36

Rule 3

• Given vertical fragmentation of R:Ri = Ai (R), Ai A

• Then for any B A:

B (R) = B [ Ri | B Ai Ø ]i

Page 37: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 37

•Localization with hybrid fragmentationExample E

R1 = k<5 [k,A R]

R2 = k5 [k,A R]

R3 = k,B R

Page 38: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 38

Query: A

k=3

R

Page 39: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 39

ReducedQuery: A

k=3

R1

Page 40: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 40

Summary - Query Processing

• Decomposition • Localization • Optimization

– Overview– Tricks for joins + other operations– Strategies for optimization

Page 41: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 41

Optimization Process:

Generate query plans

Estimate size ofintermediate results

Estimate cost ofplan ($,time,…)

P1 P2 P3 Pn

CnC3C2C1

pick minimum

Page 42: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 42

Differences with centralized optimization:

• New strategies for some operations (semi-join,range-partitioning, sort,…)

• Many ways to assign and schedule processors

Page 43: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 43

Parallel/distributed sort

Input: (a) relation R on single site/disk(b) R

fragmented/partitioned bysort attribute

(c) R fragmented/partitioned

by other attribute

Page 44: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 44

Output (a) sorted R on single site/disk(b) fragments/partitions

sorted

F1 F2 F3

5 ...6 ...

10

12...15

19 ...202150

Page 45: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 45

Basic sort

• R(K,…), sort on K• Fragmented on K

Vector: ko, k1, … kn

73

2722

111714

10 20k1ko

Page 46: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 46

• Algorithm: each fragment sorted independently

• If necessary, ship results

Page 47: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 47

Same idea on different

architectures:Shared nothing:

Shared memory: sorts F1 sorts F2

P1

M

P2

MNet

F1 F2

P1 P2

MF1 F2

Page 48: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 48

Range partitioning sort

• R(K,….), sort on K• R located at one or more site/disk,

not fragmented on K

Page 49: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 49

• Algorithm:(a) Range partition on K(b) Basic sort

Ra

Rb

R’1

R’2

R’3

ko

k1

Local sort

Local sort

Local sort

R1

R2

R3

Result

Page 50: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 50

• Selecting a good partition vector

Ra Rb Rc

10 ...124

7 ...521114

31 ...8

15113217

Page 51: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 51

Example

• Each site sends to coordinator:– Min sort key– Max sort key– Number of tuples

• Coordinator computes vector and distributes to sites(also decides # of sites for local sorts)

Page 52: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 52

• Sample scenario:Coordinator receives:

SA: Min=5 Max=10 # = 10 tuplesSB: Min=7 Max=17 # = 10 tuples

Page 53: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 53

• Sample scenario:Coordinator receives:

SA: Min=5 Max=10 # = 10 tuplesSB: Min=7 Max=17 # = 10 tuples

Expected tuples:

5 10 15 20 ko?

21

[assuming we want tosort at 2 sites]

Page 54: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 54

Expected tuples:

5 10 15 20 ko?

21

[assuming we want tosort at 2 sites]

Page 55: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 55

Expected tuples = Total tupleswith key < ko 2

2(ko - 5) + (ko - 7) = 103ko = 10 + 10 + 7 = 27ko = 9

Expected tuples:

5 10 15 20 ko?

21

[assuming we want tosort at 2 sites]

Page 56: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 56

Variations• Send more info to coordinator

– Partition vector for local site Eg. Sa: 3 3 3 # tuples

5 6 8 10 local vector

- Histogram

5 6 7 8 9 10

Page 57: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 57

More than one roundE.g.: (1) Sites send range and # tuples

(2) Coordinator returns “preliminary” vector Vo

(3) Sites tell coordinator how many tuples in each Vo range

(4) Coordinator computes final vector Vf

Page 58: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 58

Can you come up with a distributed algorithm?

(no coordinator)

Page 59: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 59

Parallel external sort-merge

• Same as range-partition sort, except sort first

Ra

Rb

Local sort

Local sort

Ra’ko

k1

Rb’ Result

R1

R2

R3In order

Merge

Page 60: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 60

Parallel external sort-merge

• Same as range-partition sort, except sort first

Ra

Rb

Local sort

Local sort

Ra’ko

k1

Rb’ Result

R1

R2

R3In order

Merge

Note: can use merging network if available(e.g., Teradata)

Page 61: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 61

• Parallel/distributed Join

Input: Relations R, S May or may not be

partitionedOutput: R S

Result at one or more sites

Page 62: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 62

Partitioned Join (Equi-join)

Ra S1

S2

S3

Rb

R1

R2

R3

Sa

Sb

Sc

Local join

Resultf(A)

f(A)

Page 63: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 63

Notes:• Same partition function f is used for

both R and S (applied to join attribute)

• f can be range or hash partitioning• Local join can be of any type

(use any CS245 optimization)• Various scheduling options e.g.,

(a) partition R; partition S; join (b) partition R; build local hash table for R; partition S and join

Page 64: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 64

More notes:

• We already know why part-join works:

R1 R2 R3 S1 S2 S3 R1 S1 R2 S2 R3 S3

• Useful to give this type of join a name, because we may want to partition data to make partition-join possible(especially in parallel DB system)

Page 65: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 65

Even more notes:

• Selecting good partition function f very important:– Number of fragments– Hash function– Partition vector

Page 66: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 66

• Good partition vector– Goal: | Ri |+| Si | the same– Can use coordinator to select

Page 67: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 67

Asymmetric fragment + replicate join

Ra S

S

S

Rb

R1

R2

R3

Sa

Sb

Local join

Result

fpartition

union

Page 68: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 68

Notes:

• Can use any partition function f for R

(even round robin)• Can do any join — not just equi-

join e.g.: R S R.A < S.B

Page 69: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 69

General fragment and replicate join

f1partition n copies of each fragment

-> 3 fragments

Ra

Rb

R1

R2

R3

R1

R2

R3

Page 70: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 70

S is partitioned in similar fashion

Result

All

nxm

pair

ing

s of

R,S

fra

gm

en

ts

R1 S1

R2 S1

R3 S1

R1 S2

R2 S2

R3 S2

Page 71: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 71

Notes:

• Asymmetric F+R join is special case of general F+R

• Asymmetric F+R may be good if S small

• Works for non-equi-joins

Page 72: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 72

• Semi-join• Goal: reduce communication traffic• R S (R S) S or

R (S R) or

(R S) (S R)

A

A

A

A

A

A

A A

Page 73: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 73

Example: R S A B A C

R S 2 a10 b25 c30 d

3 x10 y15 z25 w32 x

Page 74: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 74

Example: R S A B A C

R S 2 a10 b25 c30 d

3 x10 y15 z25 w32 x

A R = [2,10,25,30]

Page 75: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 75

Example: R S A B A C

R S 2 a10 b25 c30 d

3 x10 y15 z25 w32 x

A R = [2,10,25,30]

Ans:R S

S R =

A C10 y25 w

Page 76: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 76

Computing transmitted data in example:• with semi-join R (S R):T = 4 |A| +2 |A+C| + result• with join R S:T = 4 |A+B| + result

A B A CR S 2 a

10 b25 c30 d

3 x10 y15 z25 w32 x

Page 77: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 77

Computing transmitted data in example:• with semi-join R (S R):T = 4 |A| +2 |A+C| + result• with join R S:T = 4 |A+B| + result

A B A CR S 2 a

10 b25 c30 d

3 x10 y15 z25 w32 x

better if say|B| is large

Page 78: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 78

In general:

• Say R is smaller relation• (R S) S better than R S if

size (A S) + size (R S) < size (R)

A

A AA

Page 79: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 79

• Similar comparisons for other semi-joins

• Remember: only taking into account transmission cost

Page 80: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 80

• Trick:Encode A S (or A R ) as a bit

vector

key in S

<----one bit/possible key------->

0 0 1 1 0 1 0 0 0 0 1 0 1 0 0

Page 81: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 81

Three way joins with semi-joins

Goal: R S T

Page 82: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 82

Three way joins with semi-joins

Goal: R S T

Option 1: R’ S’ Twhere R’ = R S; S’ = S T

Page 83: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 83

Three way joins with semi-joins

Goal: R S T

Option 1: R’ S’ Twhere R’ = R S; S’ = S T

Option 2: R’’ S’ T where R’’ = R S’; S’ = S T

Page 84: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 84

Many options! Number of semi-join options is

exponential in # of relations in join

Page 85: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 85

Privacy Preserving Join

• Site 1 has R(A,B)• Site 2 has S(A,C)• Want to compute R S• Site 1 should NOT discover any S

info not in the join• Site 2 should NOT discover any R

info not in the join

R Ssite 1 site 2

Page 86: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 86

Semi-Join Does Not Work

• If Site 1 sends A R to Site 2,site 2 leans all keys of R!

A R =(a1, a2, a3, a4)

site 1

R A B a1 b1 a2 b2 a3 b3 a4 b4

site 2

S A C a1 c1 a3 c2 a5 c3 a7 c4

Page 87: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 87

Fix: Send hashed keys• Site 1 hashes each value of A before sending• Site 2 hashes (same function) its own A

values to see what tuples match

A R =(h(a1), h(a2),h(a3), h(a4))

site 1

R A B a1 b1 a2 b2 a3 b3 a4 b4

site 2

S A C a1 c1 a3 c2 a5 c3 a7 c4

Site 2 sees ithas h(a1),h(a3)

(a1, c1), (a3, c3)

Page 88: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 88

What is problem?

A R =(h(a1), h(a2),h(a3), h(a4))

site 1

R A B a1 b1 a2 b2 a3 b3 a4 b4

site 2

S A C a1 c1 a3 c2 a5 c3 a7 c4

Site 2 sees ithas h(a1),h(a3)

(a1, c1), (a3, c3)

Page 89: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 89

What is problem?

• Dictionary attack!Site 2 takes all keys, a1, a2, a3... andchecks if h(a1), h(a2), h(a3) matches what Site 1 sent...

A R =(h(a1), h(a2),h(a3), h(a4))

site 1

R A B a1 b1 a2 b2 a3 b3 a4 b4

site 2

S A C a1 c1 a3 c2 a5 c3 a7 c4

Site 2 sees ithas h(a1),h(a3)

(a1, c1), (a3, c3)

Page 90: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 90

Adversary Model

• Honest but Curious– dictionary attack is possible (cheating

is internal and can’t be caught)– sending incorrect keys not possible

(cheater could be caught)

Page 91: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 91

One Solution (Agrawal et al)

• Use commutative encryption function– Ei(x) = x encryption using site i private

key

– E1( E2 (x)) = E2( E1 (X))

– Shorthand for example:E1(x) is xE2(x) is xE1(E2(x)) is x

Page 92: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 92

Solution:

(a1, a2, a3, a4)

site 1

R A B a1 b1 a2 b2 a3 b3 a4 b4

site 2

S A C a1 c1 a3 c2 a5 c3 a7 c4

(a1, b1), (a3, b3)

(a1, a3, a5, a7)

(a1, a2, a3, a4)

computes (a1, a3, a5, a7), intersects with (a1, a2, a3, a4)

Page 93: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 93

Why does this solution work?

Page 94: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 94

Other Privacy Preserving Operations?

• Inequality join R S

• Similarity Join R Ssim(R.A,S.A)<e

R.A > S.A

Page 95: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 95

Other parallel operations

• Duplicate elimination– Sort first (in parallel)

then eliminate duplicates in result– Partition tuples (range or hash)

and eliminate locally

• Aggregates– Partition by grouping attributes;

compute aggregate locally

Page 96: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 96

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

Ra

Rb

Page 97: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 97

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

# dept sal1 toy 102 toy 205 toy 206 mgmt 158 mgmt 30

# dept sal3 sales 154 sales 57 sales 10

Ra

Rb

Page 98: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 98

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

# dept sal1 toy 102 toy 205 toy 206 mgmt 158 mgmt 30

# dept sal3 sales 154 sales 57 sales 10

dept sumtoy 50mgmt 45

dept sumsales 30

sum

sum

Ra

Rb

Page 99: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 99

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

Ra

Rb

lessdata!

Page 100: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 100

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

Ra

Rb

dept sumtoy 30toy 20mgmt 45

dept sumsales 15sales 15

sum

sum

lessdata!

Page 101: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 101

Example:

# dept sal1 toy 102 toy 203 sales 15

# dept sal4 sales 55 toy 206 mgmt 157 sales 108 mgmt 30

• sum (sal) group by dept

dept sumtoy 50mgmt 45

dept sumsales 30

sum

sum

Ra

Rb

dept sumtoy 30toy 20mgmt 45

dept sumsales 15sales 15

sum

sum

lessdata!

Page 102: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

Preview: Map Reduce

CS 347 Notes 03 102

data A1

data A2

data A3

data B1

data B2

data C1

data C2

Page 103: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 103

Enhancements for aggregates

• Perform aggregate during partitionto reduce data

transmitted• Does not work for all aggregate

functions…Which ones?

Page 104: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 104

Selection

• Range or hash partition• Straightforward

But what about indexes?

Page 105: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 105

Indexing

• Can think of partition vector as root of distributed index:

ko k1

Loca

lin

dexes

Site 1 Site 2 Site 3

Page 106: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 106

• Index on non-partition attribute

Indexsites

Tuplesites

ko k1

Page 107: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 107

Notes:

• If index is not too big, it may bebetter to keep whole and make copies...

• If updates are frequent,can partition update work...(Question: how do we handle split of B-Tree pages?)

Page 108: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 108

• Extensible or linear hashingR1

f R2 R3

R4 <- add

Page 109: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 109

• How do we adapt schemes?• Where do we store directory,

set of participants...?• Which one is better for a distributed

environment?• Can we design a hashing scheme

withno global knowledge (P2P)?

Page 110: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 110

Summary: Query processing

• Decomposition and Localization • Optimization

– Overview – Tricks for joins, sort,.. – Tricks for inter-operations parallelism– Strategies for optimization

Page 111: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 111

Inter-operation parallelism

• Pipelined• Independent

Page 112: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 112

Site 2

c

Site 1 SR

Pipelined parallelism

Site 1

R S

JoinProbe

Tuplesmatching c

result

Page 113: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 113

R S T V

(1) temp1 R S; temp2 T V(2) result temp1 temp2

Independent parallelism

Site 1 Site 2

Page 114: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 114

• Pipelining cannot be used in all casese.g.: Hash Join

Stream of

R tuples

Stream of

S tuples

Page 115: CS 347Notes 031 CS 347: Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina.

CS 347 Notes 03 115

Summary

As we consider query plans for optimization, we must consider various tricks:

- for individual operations- for scheduling operations