Pessimistic Query Optimization: Tighter Upper Bounds for - - PowerPoint PPT Presentation

pessimistic query optimization tighter upper bounds for
SMART_READER_LITE
LIVE PREVIEW

Pessimistic Query Optimization: Tighter Upper Bounds for - - PowerPoint PPT Presentation

Pessimistic Query Optimization: Tighter Upper Bounds for Intermediate Join Cardinalities Walter Cai Magdalena Balazinska Dan Suciu University of Washington [walter,magda,suciu]@cs.washington.edu July 19th, 2019 Cai, Balazinska, Suciu (UW)


slide-1
SLIDE 1

Pessimistic Query Optimization: Tighter Upper Bounds for Intermediate Join Cardinalities

Walter Cai Magdalena Balazinska Dan Suciu

University of Washington [walter,magda,suciu]@cs.washington.edu

July 19th, 2019

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 1 / 27

slide-2
SLIDE 2

Systematic Underestimation

Query optimizers assume:

◮ Uniformity ◮ Independence

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 2 / 27

slide-3
SLIDE 3

Background: Cardinality Bounds

1

Background: Cardinality Bounds

2

Tightened Cardinality Bounds

3

Evaluation

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 3 / 27

slide-4
SLIDE 4

Background: Cardinality Bounds

1

Background: Cardinality Bounds

2

Tightened Cardinality Bounds

3

Evaluation

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 3 / 27

slide-5
SLIDE 5

Background: Cardinality Bounds

Example Query (SQL)

SELECT * FROM pseudonym , cast, movie_companies , company_name WHERE pseudonym.person id = cast.person id AND cast.movie id id = movie_companies.movie id AND movie_companies.company id = company_name.id;

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 4 / 27

slide-6
SLIDE 6

Background: Cardinality Bounds

Example Query (Join Graph & Datalog)

movie companies cast pseudonym company name

Figure: Join Graph.

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) y →person z →movie w →company

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 5 / 27

slide-7
SLIDE 7

Background: Cardinality Bounds

Review: Entropy

Take random variable X: h(X) = −

  • a

P(X = a) · log(P(X = a))

Multiple variables: h(X, Y) = −

  • a,b

P(X = a, Y = b) · log(P(X = a, Y = b))

Conditional entropy: h(X|Y) = −

  • a,b

P(X = a, Y = b) · log P(X = a, Y = b) P(Y = b)

  • Cai, Balazinska, Suciu (UW)

Pessimistic Query Optimization July 19th, 2019 6 / 27

slide-8
SLIDE 8

Background: Cardinality Bounds

Review: Entropy

X ∼ P(x1, . . . , xn)

◮ Fact: h(X) ≤ log(n) ◮ h(X) = log(n) iff P is uniform

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 7 / 27

slide-9
SLIDE 9

Background: Cardinality Bounds

Connection to Entropy

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) ◮ Create random variable for each attribute. x → X, y → Y, z → Z, w → W ◮ Let (X, Y, Z, W) be uniformly distributed over true output of Q. h(X, Y, Z, W) = log

  • Q(x, y, z, w)
  • exp
  • h(X, Y, Z, W)
  • =
  • Q(x, y, z, w)
  • Cai, Balazinska, Suciu (UW)

Pessimistic Query Optimization July 19th, 2019 8 / 27

slide-10
SLIDE 10

Background: Cardinality Bounds

Entropic Bound

  • Q(x, y, z, w)
  • = exp
  • h(X, Y, Z, W)
  • ◮ Suffices to bound h(X, Y, Z, W).

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 9 / 27

slide-11
SLIDE 11

Background: Cardinality Bounds

Entropic Bound

h(X, Y, Z, W) ≤ h(X|Y) + h(Y, Z) + h(W|Z)

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 10 / 27

slide-12
SLIDE 12

Background: Cardinality Bounds

Entropic Bound

  • Q(x, y, z, w)
  • = exp(h(X, Y, Z, W)) ≤ exp(h(X|Y) + h(Y, Z) + h(W|Z))

h(Y, Z) ≤ log(count(cast)) h(X|Y) ≤ log(max degree(pseudonym)) h(W|Z) ≤ log(max degree(movie companies))

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 27

slide-13
SLIDE 13

Background: Cardinality Bounds

Entropic Bound

  • Q(x, y, z, w)
  • = exp(h(X, Y, Z, W)) ≤ exp(h(X|Y) + h(Y, Z) + h(W|Z))

h(Y, Z) ≤ log ccast h(X|Y) ≤ log dy

pseudo

h(W|Z) ≤ log dz

mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 27

slide-14
SLIDE 14

Background: Cardinality Bounds

Cardinality Bound

  • Q(x, y, z, w)
  • = exp(h(X, Y, Z, W))

≤ exp( h(X|Y)

  • ≤log dy

pseudo

+ h(Y, Z)

  • ≤log ccast

+ h(W|Z)

  • ≤log dz

mc

) ≤ dy

pseudo · ccast · dz mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 12 / 27

slide-15
SLIDE 15

Background: Cardinality Bounds

Many Entropic Bounds

h(X, Y, Z, W) ≤ ... h(X, Y) + h(Z|Y) + h(W|Z) h(X, Y) + h(Z|Y) + h(W) h(X, Y) + h(Z, W) h(X, Y) + h(Z|W) + h(W) h(X|Y) + h(Y, Z) + h(W|Z) h(X|Y) + h(Y|Z) + h(Z, W) h(X|Y) + h(Y|Z) + h(Z|W) + h(Z)

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 13 / 27

slide-16
SLIDE 16

Background: Cardinality Bounds

Entropic Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w)

  • Q(x, y, z, w)
  • ≤ min

                                           cpseudo · dy

cast · dz mc

cpseudo · dy

cast · ccn

cpseudo · cmc cpseudo · dw

mc · ccn

dy

pseudo · ccast · dz mc

dy

pseudo · ccast · ccn

dy

pseudo · dz cast · cmc

dy

pseudo · dz cast · dw mc · ccn

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 14 / 27

slide-17
SLIDE 17

Background: Cardinality Bounds

Entropic Bounds

Neat! But is it useful?

◮ Short answer: ‘No’. (Not yet, anyway)

◮ Bounds still too loose (overestimation) ◮ Need to tighten

◮ How to tighten? Partitioning

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 15 / 27

slide-18
SLIDE 18

Tightened Cardinality Bounds

1

Background: Cardinality Bounds

2

Tightened Cardinality Bounds

3

Evaluation

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 16 / 27

slide-19
SLIDE 19

Tightened Cardinality Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudonym cast movie companies company name pseudo cast mc cn

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 17 / 27

slide-20
SLIDE 20

Tightened Cardinality Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudonym cast movie companies company name

pseudo[0,1] pseudo[1,1] pseudo[0,0] pseudo[1,0] cast[0,1] cast[1,1] cast[0,0] cast[1,0] mc[0,1] mc[1,1] mc[0,0] mc[1,0] cn[0] cn[1]

◮ Value based hashing ◮ Analagous to hash join

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 17 / 27

slide-21
SLIDE 21

Tightened Cardinality Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudonym cast movie companies company name

pseudo[0,1] cast[1,0] mc[0,1] cn[1]

◮ Value based hashing ◮ Analagous to hash join

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 17 / 27

slide-22
SLIDE 22

Tightened Cardinality Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudonym cast movie companies company name

pseudo[0,1] pseudo[1,1] pseudo[0,0] pseudo[1,0] cast[0,1] cast[1,1] cast[0,0] cast[1,0] mc[0,1] mc[1,1] mc[0,0] mc[1,0] cn[0] cn[1]

◮ Q(D): query evaluated on database D ◮ Q(D[J]): query evaluated on parition D[J] Q(D) =

  • J

Q(D[J])

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 17 / 27

slide-23
SLIDE 23

Tightened Cardinality Bounds

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudonym cast movie companies company name

pseudo[0,1] pseudo[1,1] pseudo[0,0] pseudo[1,0] cast[0,1] cast[1,1] cast[0,0] cast[1,0] mc[0,1] mc[1,1] mc[0,0] mc[1,0] cn[0] cn[1]

◮ Bound each partition D[J] ◮ Sum will be bound on full database Q(D) =

  • J

Q(D[J])

  • Q(D)
  • J

bound(Q(D[J]))

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 17 / 27

slide-24
SLIDE 24

Tightened Cardinality Bounds

Partition Bounding

  • Q(D)
  • J∈{0,1}4

min                                                   

cpseudo[J] · dy

cast[J] · dz mc[J]

cpseudo[J] · dy

cast[J] · ccn[J]

cpseudo[J] · cmc[J] cpseudo[J] · dw

mc[J] · ccn[J]

dy

pseudo[J] · ccast[J] · dz mc[J]

dy

pseudo[J] · ccast[J] · ccn[J]

dy

pseudo[J] · dz cast[J] · cmc[J]

dy

pseudo[J] · dz cast[J] · dw mc[J] · ccn[J]

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 18 / 27

slide-25
SLIDE 25

Tightened Cardinality Bounds

Optimizations

◮ Bound Formula Generation ◮ Partition Budgeting

◮ Combats exponential runtime w.r.t. hash size ◮ Non-monotonic behaviour

◮ Filter Predicates

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 19 / 27

slide-26
SLIDE 26

Evaluation

1

Background: Cardinality Bounds

2

Tightened Cardinality Bounds

3

Evaluation

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 20 / 27

slide-27
SLIDE 27

Evaluation

Join Order Benchmark1

◮ Built on the IMDb dataset

◮ 113 queries ◮ 33 unique topoplogies ◮ Skew! ◮ Correlation! ◮ Complex selection predicates!

1How Good Are Query Optimizers, Really? Leis et al. VLDB 2015. Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 21 / 27

slide-28
SLIDE 28

Evaluation

Bound Relative Error Versus Postgres Relative Error

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 22 / 27

slide-29
SLIDE 29

Evaluation

Bound Q-Error Versus Postgres Q-Error

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 23 / 27

slide-30
SLIDE 30

Evaluation

Plan Execution Runtime (With Foreign Keys Indexes)

Figure: Linear scale runtime improvements over JOB queries.

◮ Total runtime:

◮ Postgres: 3,190 seconds ◮ Tightened Bound: 1,832 seconds

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 24 / 27

slide-31
SLIDE 31

Evaluation

Plan Execution Runtime (With Foreign Keys Indexes)

Figure: Linear scale runtime improvements over JOB queries.

◮ Total runtime:

◮ Postgres: 3,190 seconds ◮ Tightened Bound: 1,832 seconds

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 24 / 27

slide-32
SLIDE 32

Evaluation

Plan Execution Runtime (No Foreign Key Indexes)

Figure: Linear scale plan execution time over JOB queries.

◮ Total runtime (including 1 hour cutoff for default Postgres):

◮ Postgres: 21,125 seconds ◮ Tightened Bound: 2,216 seconds

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 25 / 27

slide-33
SLIDE 33

Evaluation

Plan Execution Runtime (No Foreign Key Indexes)

Figure: Linear scale plan execution time over JOB queries.

◮ Total runtime (including 1 hour cutoff for default Postgres):

◮ Postgres: 21,125 seconds ◮ Tightened Bound: 2,216 seconds

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 25 / 27

slide-34
SLIDE 34

Evaluation

Takeaways

◮ Gains for very slow queries. ◮ On par for fast queries. ◮ Pessimistic but robust query optimization.

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 26 / 27

slide-35
SLIDE 35

Evaluation

Acknowledgements

◮ Thank you to Jenny, Tomer, Laurel, Brandon, Jingjing, Tobin, Leilani,

and Guna!

◮ This research is supported by NSF grant AITF 1535565 and III

1614738.

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 27 / 27

slide-36
SLIDE 36

Googleplus Microbenchmark Examples

SELECT COUNT(*) FROM community_44 AS t0, community_44 AS t1, community_44 AS t2, community_44 AS t3 WHERE t0.object = t1.subject AND t1.object = t2.subject AND t2.object = t3.subject AND t0.subject % 512 = 89 AND t3.object % 512 = 174; Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 1 / 12

slide-37
SLIDE 37

Googleplus Microbenchmark Examples

SELECT COUNT(*) FROM community_30 AS t0, community_30 AS t1, community_30 AS t2, community_30 AS t3, community_30 AS t4 WHERE t0.object = t1.subject AND t0.object = t2.subject AND t0.object = t3.subject AND t3.object = t4.subject AND t0.subject % 256 = 49 AND t1.object % 256 = 213 AND t2.object % 256 = 152 AND t4.object % 256 = 248; AND ci.movie_id = mc.movie_id; Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 1 / 12

slide-38
SLIDE 38

Googleplus Progressive Bound Tightness

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 2 / 12

slide-39
SLIDE 39

Example of Non-monotonic Behavior

Q (x, y, z, w) :-R (z, y) , S (y, z) , T (z, w) x y 1 1 1 1

  • R

⊲⊳

y z 1 2 1 3 1

  • S

⊲⊳

z w 1 1 2 2 3 3

  • T

=

x y z w 1 1 1 1

  • Q

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 3 / 12

slide-40
SLIDE 40

Example of Non-monotonic Behavior

x y 1 1 1 1

  • R

⊲⊳

y z 1 2 1 3 1

  • S

⊲⊳

z w 1 1 2 2 3 3

  • T

=

x y z w 1 1 1 1

  • Q
  • Q(x, y, z, w)
  • ≤ min

                  

cR · dy

S · dz T

dy

R · cS · dz T

dy

R · dz S · cT

cR · cT cR(0) · dy

S(0,0) · dz T(0) = 4 · 1 · 1 = 4

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 4 / 12

slide-41
SLIDE 41

Example of Non-monotonic Behavior

x y 1 1 1 1

  • R

⊲⊳

y z 1 2 1 3 1

  • S

⊲⊳

z w 1 1 2 2 3 3

  • T

=

x y z w 1 1 1 1

  • Q
  • Q(x, y, z, w)
  • ≤ min

                  

cR · dy

S · dz T

dy

R · cS · dz T

dy

R · dz S · cT

cR · cT cR(0) · dy

S(0,0) · dz T(0) = 4 · 1 · 1 = 4

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 4 / 12

slide-42
SLIDE 42

Example of Non-monotonic Behavior

x y 1 1 1 1

  • R

⊲⊳

y z 1 2 1 3 1

  • S

⊲⊳

z w 1 1 2 2 3 3

  • T

=

x y z w 1 1 1 1

  • Q
  • Q(x, y, z, w)
  • ≤ min

                  

cR · dy

S · dz T

dy

R · cS · dz T

dy

R · dz S · cT

cR · cT cR(0) · dy

S(0,0) · dz T(0) = 4 · 1 · 1 = 4

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 4 / 12

slide-43
SLIDE 43

Example of Non-monotonic Behavior

◮ Define hash function hash(ui) = i%2.

hash(0) = hash(2) = 0 hash(1) = hash(3) = 1

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 5 / 12

slide-44
SLIDE 44

Partitioned Relations

hash(y), hash(z) = . . . 0, 0 −→ 1

⊲⊳ ⊲⊳

2 2

=

1 0, 1 −→ 1

⊲⊳

2 1

⊲⊳

1 1 3 3

= ∅

1, 0 −→ 1 1 1

⊲⊳

1

⊲⊳

2 2

=

1 1 1 1, 1 −→ 1 1 1

⊲⊳

3 1

⊲⊳

1 1 3 3

= ∅

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 6 / 12

slide-45
SLIDE 45

0, 0 −→ 1

⊲⊳ ⊲⊳

2 2

=

1 0, 1 −→ 1

⊲⊳

2 1

⊲⊳

1 1 3 3

= ∅

1, 0 −→ 1 1 1

⊲⊳

1

⊲⊳

2 2

=

1 1 1 1, 1 −→ 1 1 1

⊲⊳

3 1

⊲⊳

1 1 3 3

= ∅

  • i,j

∈{0,1}

min                     

cR(i) · dy

S(i,j) · dz T(j)

dy

R(i) · cS(i,j) · dz T(j)

dy

R(i) · dz S(i,j) · cT(j)

cR(i) · cT(j)

=

  • i,j

∈{0,1}

min                   

2 · 1 · 1 2 · 1 · 1 2 · 1 · 2 2 · 2

=

  • i,j

∈{0,1}

2 = 8

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 7 / 12

slide-46
SLIDE 46

0, 0 −→ 1

⊲⊳ ⊲⊳

2 2

=

1 0, 1 −→ 1

⊲⊳

2 1

⊲⊳

1 1 3 3

= ∅

1, 0 −→ 1 1 1

⊲⊳

1

⊲⊳

2 2

=

1 1 1 1, 1 −→ 1 1 1

⊲⊳

3 1

⊲⊳

1 1 3 3

= ∅

  • i,j

∈{0,1}

min                     

cR(i) · dy

S(i,j) · dz T(j)

dy

R(i) · cS(i,j) · dz T(j)

dy

R(i) · dz S(i,j) · cT(j)

cR(i) · cT(j)

=

  • i,j

∈{0,1}

min                   

2 · 1 · 1 2 · 1 · 1 2 · 1 · 2 2 · 2

=

  • i,j

∈{0,1}

2 = 8

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 7 / 12

slide-47
SLIDE 47

0, 0 −→ 1

⊲⊳ ⊲⊳

2 2

=

1 0, 1 −→ 1

⊲⊳

2 1

⊲⊳

1 1 3 3

= ∅

1, 0 −→ 1 1 1

⊲⊳

1

⊲⊳

2 2

=

1 1 1 1, 1 −→ 1 1 1

⊲⊳

3 1

⊲⊳

1 1 3 3

= ∅

  • i,j

∈{0,1}

min                     

cR(i) · dy

S(i,j) · dz T(j)

dy

R(i) · cS(i,j) · dz T(j)

dy

R(i) · dz S(i,j) · cT(j)

cR(i) · cT(j)

=

  • i,j

∈{0,1}

min                   

2 · 1 · 1 2 · 1 · 1 2 · 1 · 2 2 · 2

=

  • i,j

∈{0,1}

2 = 8

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 7 / 12

slide-48
SLIDE 48

Exponential Growth

◮ Sketch size (number of buckets) exponential in hash size.

◮ Exponent = number of attributes in relation.

◮ Number of elements to sum up exponential in hash size.

◮ Exponent = number of attributes in entire query.

◮ Non-monotonic bound behavior

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 8 / 12

slide-49
SLIDE 49

Tuning Bucket Allocation

◮ Larger hash size =⇒ more information =⇒ tighter bounds, right?

◮ Partitioning unconditionally covered attributes: yes. ◮ Partitioning conditionally covered attributes: no. ◮ Non-monotonic tradeoff space.

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 9 / 12

slide-50
SLIDE 50

Non-Linearity of Degree Statistic

◮ Count is linear with respect to disjoint union!

count(A) + count(B) = count(A ∪ B)

◮ Degree is not...

degree(A) + degree(B) ≥ degree(A ∪ B)

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 10 / 12

slide-51
SLIDE 51

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w) pseudo cast movie companies company name cn pseudo cast mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 12

slide-52
SLIDE 52

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w)

cpseudo · dy

cast · dz mc

pseudo cast movie companies company name cn pseudo cast mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 12

slide-53
SLIDE 53

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w)

cpseudo · dy

cast · dz mc

pseudo cast movie companies company name cn

pseudo[0] pseudo[1] pseudo[2] pseudo[3] cast[3] cast[2] cast[1] cast[0]

mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 12

slide-54
SLIDE 54

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w)

dy

pseudo · ccast · dz mc

pseudo cast movie companies company name cn pseudo cast mc

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 12

slide-55
SLIDE 55

Q(x, y, z, w) pseudo(x, y), cast(y, z), mc(z, w), cn(w)

dy

pseudo · ccast · dz mc

pseudo cast movie companies company name cn

pseudo[0] pseudo[1] cast[0,0] cast[1,0] cast[0,1] cast[1,1] mc[0] mc[1] Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 11 / 12

slide-56
SLIDE 56

Reformultated Bound Formula

◮ Old:

  • Q(D)
  • J∈

partition indexes

          min

b∈ bounding formulas

b(Q(D[J]))

          ◮ New:

  • Q(D)

min

b∈ bounding formulas

                  

  • J∈

partition indexes w.r.t. b

b(Q(D[J]))

                  

Cai, Balazinska, Suciu (UW) Pessimistic Query Optimization July 19th, 2019 12 / 12