+ All Categories
Home > Documents > From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to...

From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to...

Date post: 13-Sep-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
34
1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings 1 Catherine L. Pilachowski 2 Dirk Van Gucht 2 Marc Gyssens 1 Yuqing Wu 3 1 Hasselt University 2 Indiana University 3 Pomona College
Transcript
Page 1: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

1/19

From relation algebra to semi-join algebra: anapproach for graph query optimization

Jelle Hellings1

Catherine L. Pilachowski2 Dirk Van Gucht2

Marc Gyssens1 Yuqing Wu3

1 Hasselt University2 Indiana University3 Pomona College

Page 2: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

2/19

Graph queries: data model

Alice

Bob

Carol

ParentOfParentOf

Dan

ParentOf

Faythe

ParentOf

Grace

ParentOf

PeggyFriendOf FriendOf

Victor

FriendOf

WorksWith

WendyFriendOf

Page 3: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

3/19

Graph queries: basic path queries

Alice

Bob

Carol

ParentOfParentOf

Dan

ParentOf

Faythe

ParentOf

Grace

ParentOf

PeggyFriendOf FriendOf

Victor

FriendOf

WorksWith

WendyFriendOf

(WorksWith ∪ FriendOf ) ◦ [ParentOf ]+ ◦ FriendOf

Page 4: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

3/19

Graph queries: basic path queries

Alice

Bob

Carol

ParentOfParentOf

Dan

ParentOf

Faythe

ParentOf

Grace

ParentOf

PeggyFriendOf FriendOf

Victor

FriendOf

WorksWith

WendyFriendOf

(WorksWith ∪ FriendOf ) ◦ [ParentOf ]+ ◦ FriendOf

Page 5: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

4/19

Graph queries: node-tests and branching

Alice

Bob

Carol

ParentOfParentOf

Dan

ParentOf

Faythe

ParentOf

Grace

ParentOf

PeggyFriendOf FriendOf

Victor

FriendOf

WorksWith

WendyFriendOf

π1[ParentOf ◦ ParentOf ◦ ParentOf ] ◦ FriendOf

Page 6: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

4/19

Graph queries: node-tests and branching

Alice

Bob

Carol

ParentOfParentOf

Dan

ParentOf

Faythe

ParentOf

Grace

ParentOf

PeggyFriendOf FriendOf

Victor

FriendOf

WorksWith

WendyFriendOf

π1[ParentOf ◦ ParentOf ◦ ParentOf ] ◦ FriendOf

Page 7: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

5/19

Graph querying: relation algebra

id ∪ ◦ +

RPQs

a

2RPQs

π

Nested RPQs

π ∩ −

Navigational XPath, Graph XPath

di

FO[3] + transitive closure

Page 8: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

6/19

Relation algebra and query evaluation

id ∪ ◦ + a π π ∩ − di

Cheap (∪, a, π, ∩, −).Cost linearly upper bounded by operands

In between (id, π).Cost linearly upper bounded by #nodes

Expensive (◦, +, di).Worst-case quadratically lower bounded by #nodes

Page 9: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

7/19

Naive query evaluation: an inefficient example

Return pairs of (great-grandparent, friend)

π1[ParentOf ◦ ParentOf ◦ ParentOf ] ◦ FriendOf

1. Compute (grandparent, grandchild):X = ParentOf ◦ ParentOf

2. Compute (great-grandparent, great-grandchild):Y = ParentOf ◦ X

3. Throw away the great-grandchildren:Z = π1[Y ]

4. Compute (great-grandparent, friend):Result = Z ◦ FriendOf

Page 10: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

8/19

Optimize query evaluation: add specialized operators?

Return pairs of (great-grandparent, friend)

π1[ParentOf ◦ ParentOf ◦ ParentOf ] ◦ FriendOf

1. Compute (grandparent, ???):X = ParentOf n ParentOf

2. Compute (great-grandparent, ???):Y = ParentOf n (X )

3. Throw away ???:Z = π1[Y ]

4. Compute (great-grandparent, friend):Result = Z o FriendOf

π1[ParentOf n (ParentOf n ParentOf )] o FriendOf

Page 11: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

9/19

Simple idea: automatic query rewriting

I Rewrite composition into semi-joins

I Rewrite transitive closure into fixpoints

In such a way that the rewritten query is equivalent

Page 12: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

10/19

When are expressions equivalent?

DefinitionQueries q1 and q2 are

path-equivalent if, for every graph G, [[q1]]G = [[q2]]G(denoted by q1 ≡path q2)

left-projection-equivalent if, for every graph G, [[q1]]G |1 = [[q2]]G |1(denoted by q1 ≡π1 q2)

right-projection-equivalent if, for every graph G, [[q1]]G |2 = [[q2]]G |2(denoted by q1 ≡π2 q2)

Example

I R ∩ S ≡path R − (R − S)

I R ◦ S ≡π1 R n S

I π1[R ◦ S ] ≡path π1[R n S ]

Page 13: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

11/19

The main result

id ∪ ◦ + a π π di ∩ −

id ∪ n,o fp a π π di ∩ −

≡path≡π1≡π2

FO[2] + fixpoint

I Collapse also holds for fragments (that include π)

I Example: Nested RPQs are projection-equivalent toexpressions using only id, ∪, n, o, fp, a, and π

Page 14: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

12/19

Intersection ∩ and difference −

Issues when combining composition with ∩ or −

(FriendOf ◦ FriendOf ) ∩ FriendOf

I Restricting: use ∩ and − only on composition-free expressionsI Exact syntactic fragment of FO[3] + TC that is

projection-equivalent to FO[2] + fixpoint.

I Data models: usage of ∩ and − is sometimes redundantI Sibling-ordered trees: FOtree �π FO[2] + fixpoints.I Downward queries on trees [DBPL 2015]I ...

I Partial rewriting: keep compositions when necessary

Page 15: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S .

Page 16: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e)

= τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 17: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 18: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 19: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 20: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 21: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S

.

Page 22: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

13/19

The rewrite functions - partial rewriting

τ(e) ≡path e τπ1(e) ≡π1 e τπ2(e) ≡π2 e

τ◦1(e; ε) ≡π1 e n ε τ◦2(e; ε) ≡π2 εo e

Example

π1[((WorksOn ◦WorksOna) ∩ FriendOf ) ◦ EditorOf ] ◦ StudentOf

τ(e) = τπ2(π1[((W ◦W a) ∩ F ) ◦ E ]) o τ(S)

= π1[τπ1(((W ◦W a) ∩ F ) ◦ E )] o S

= π1[τ◦1((W ◦W a) ∩ F ; τπ1(E ))] o S

= π1[(τ(W ◦W a) ∩ τ(F )) n E ] o S

= π1[((τ(W ) ◦ τ(W a)) ∩ F ) n E ] o S

= π1[((W ◦W a) ∩ F ) n E ] o S .

Page 23: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

14/19

Query optimization

I Cost of each operator

3

I Input size of each operator

3

Example

Let R = {(1, i) | 0 ≤ i ≤ m}. Consider

R ◦ Ra ≡π1 R n Ra.

Solution: use single-column evaluation algorithms

I Number of necessary evaluation steps

7

Page 24: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

14/19

Query optimization

I Cost of each operator 3

I Input size of each operator

3

Example

Let R = {(1, i) | 0 ≤ i ≤ m}. Consider

R ◦ Ra ≡π1 R n Ra.

Solution: use single-column evaluation algorithms

I Number of necessary evaluation steps

7

Page 25: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

14/19

Query optimization

I Cost of each operator 3

I Input size of each operator

3

Example

Let R = {(1, i) | 0 ≤ i ≤ m}. Consider

R ◦ Ra ≡π1 R n Ra.

Solution: use single-column evaluation algorithms

I Number of necessary evaluation steps

7

Page 26: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

14/19

Query optimization

I Cost of each operator 3

I Input size of each operator 3

Example

Let R = {(1, i) | 0 ≤ i ≤ m}. Consider

R ◦ Ra ≡π1 R n Ra.

Solution: use single-column evaluation algorithms

I Number of necessary evaluation steps

7

Page 27: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

14/19

Query optimization

I Cost of each operator 3

I Input size of each operator 3

Example

Let R = {(1, i) | 0 ≤ i ≤ m}. Consider

R ◦ Ra ≡π1 R n Ra.

Solution: use single-column evaluation algorithms

I Number of necessary evaluation steps 7

Page 28: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

15/19

Expressions and evaluation steps

Expression size we denote the expression size of e by ‖e‖.Evaluation size we denote the evaluation size of e by eval-steps(e).

Example

e1 = ((R ◦ R) ◦ (R ◦ R)) ◦ ((R ◦ R) ◦ (R ◦ R))

e2 = R n (R n (R n (R n (R n (R n (R n R))))))

I e1 ≡π1 e2I We have ‖e1‖ = 7 and eval-steps(e1) = 3:

1. X = R ◦ R2. Y = X ◦ X3. Result = Y ◦ Y

I We have ‖e2‖ = 7 and eval-steps(e2) = 7.

Page 29: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

16/19

Evaluation size and unions

Example

e1 = (A ∪ B) ◦ (C ∪ D) ◦ (E ∪ F )

e2 = A n (C n E ) ∪ A n (C n F ) ∪ . . .

I e1 ≡π1 e2I We have ‖e1‖ = eval-steps(e1) = 5.

I We have ‖e2‖ = eval-steps(e2) = 23.

e3 = (A n X ) ∪ (B n X ),

X = (C n Y ) ∪ (D n Y ),Y = (E ∪ F )

I e1 ≡π1 e ′3I We have ‖e ′2‖ = 13 and eval-steps(e ′2) = 7.

I τ◦i (e; ε) does this! 3

Page 30: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

16/19

Evaluation size and unions

Example

e1 = (A ∪ B) ◦ (C ∪ D) ◦ (E ∪ F )

e2 = A n (C n E ) ∪ A n (C n F ) ∪ . . .

I e1 ≡π1 e2I We have ‖e1‖ = eval-steps(e1) = 5.

I We have ‖e2‖ = eval-steps(e2) = 23.

e3 = (A n X ) ∪ (B n X ),

X = (C n Y ) ∪ (D n Y ),Y = (E ∪ F )

I e1 ≡π1 e ′3I We have ‖e ′2‖ = 13 and eval-steps(e ′2) = 7.

I τ◦i (e; ε) does this! 3

Page 31: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

16/19

Evaluation size and unions

Example

e1 = (A ∪ B) ◦ (C ∪ D) ◦ (E ∪ F )

e2 = A n (C n E ) ∪ A n (C n F ) ∪ . . .

I e1 ≡π1 e2I We have ‖e1‖ = eval-steps(e1) = 5.

I We have ‖e2‖ = eval-steps(e2) = 23.

e3 = (A n X ) ∪ (B n X ),

X = (C n Y ) ∪ (D n Y ),Y = (E ∪ F )

I e1 ≡π1 e ′3I We have ‖e ′2‖ = 13 and eval-steps(e ′2) = 7.

I τ◦i (e; ε) does this! 3

Page 32: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

17/19

The main results (revised)

TheoremLet e be an expression. We have τ(e) ≡path e, τπi (e) ≡πi e, and

1. eval-steps(τ(e)) ≤ u + ‖e‖;2. eval-steps(τπi (e)) ≤ u + ‖e‖;3. ‖τ(e)‖ = Θ(‖e‖ · 2u) in the worst case;

4. ‖τπi (e)‖ = Θ(‖e‖ · 2u) in the worst case,

with u the number of rewrite steps involving τ◦i (e1 ∪ e2; ε).

Page 33: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

18/19

Conclusion and future work

1. Real-life systems

2. Relational databases

3. Intersection and difference elimination

4. Extending FO[3] (e.g. counting)

Page 34: From relation algebra to semi-join algebra: an approach for ...1/19 From relation algebra to semi-join algebra: an approach for graph query optimization Jelle Hellings1 Catherine L.

19/19

The FO[2] fixpoint we use

I Notation fpi ,N[iterative case union base case]

I i specifies output column

I N is a variable representing the growing output (node-test)

I Subset of traditional inflationary fixpoints

Example

The query π1[[ParentOf ]+ ◦ OwnsPet] returns ancestors ofpet-owners. We rewrite this into

π1[fp1,N[ParentOf nN union ParentOf n OwnsPet]]


Recommended