• No results found

Estimating the cost of graphlog queries

N/A
N/A
Protected

Academic year: 2021

Share "Estimating the cost of graphlog queries"

Copied!
178
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

INFORMATION TO USERS

This manuscript has been reproduced from the microfilm master. UMI films the text directly from the original or copy submitted. Thus, some thesis and dissertation copies are in typewriter face, while others may be from any type o f computer printer.

The quality o f th is reproduction is dependent upon the quality o f the copy subm itted. Broken or indistinct print, colored or poor quality illustrations and photographs, print bleedthrough, substandard margins, and improper alignment can adversely affect reproduction.

In the unlikely event that the author did not send UMI a complete manuscript and there are missing pages, these will be noted. Also, if unauthorized copyright material had to be removed, a note will indicate the deletion.

Oversize materials (e.g., maps, drawings, charts) are reproduced by sectioning the original, beginning at the upper left-hand com er and continuing from left to right in equal sections with small overlaps. Each original is also photographed in one exposure and is included in reduced form at the back o f the book.

Photographs included in the original manuscript have been reproduced xerographically in this copy. Higher quality 6” x 9” black and white photographic prints are available for any photographs or illustrations appearing in this copy for an additional charge. Contact UMI directly to order.

UMI

A Bell & Howell Information Company

300 N orth Zeeb Road, Atm Arbor MI 4S106-1346 USA 313/761-4700 800/521-0600

(2)
(3)

NOTE TO USERS

The original manuscript received by UMI contains pages with

slanted print. Pages were microfilmed as received.

This reproduction is the best copy available

(4)
(5)

Estim ating the Cost of G raphLog Q ueries by

Carlos Escalante Osuna

Licentiateship (B.Sc.), Universidad Iberoam ericana, M exico. 1988 M .Sc.. University of Victoria, 1992

.A. D issertation Submitted in Partial Fulfillment o f the Requirem ents for the Degree of

D OCTOR OF PHILOSOPHY

in the Departm ent of C om puter Science

We accept this dissertation as conform ing to the required standard

Dr. R.N. H orspool. Supervisor (D epartm ent of C om puter Science)

Dr. W.W. W adge, D epartm ental Merfiber (Department of C om puter Science)

Dr. M. van Em den, D epartm ental M em ber (Department of C om puter Science)

Dr. W.J.R. Hoefer. O utside M em ber (Department o f Electrical and C om puter Engineering)

Dr. A.G. Ryman. External E^gaminer (IBM Canada Laboratory) © Carlos Escalante Osuna, 1997

University o f Victoria

All rights reserved. This dissertation may not be reproduced in whole or in part, by photocopying or other m eans, without the perm ission o f the author.

(6)

Supervisor: Dr. R. Nigel Horspool.

ABSTRACT

This dissertation develops a co st model for a particular im plem entation o f the database query language G raphLog. T he order in which the subgoals o f a G raphLog query are executed has a m ajor effect on the total processing time. Our model may be used to com pare the expected execution costs for different orderings o f the sam e general query, thus, allowing us to select an efficient execution plan. We describe two cost models: one that is tailored to a specific architecture and another that is more general. Both models assum e a top-down evaluation strategy. In particular, we address the issue o f how to handle recursive predicates. We also provide some experimental results that confirm the validity o f our work.

Examiners;

Dr. R.N. Horspool, Supervisor (Department ot Computer Science)

_- C j i __________________________________________________________________

Dr. W.W. Wadge, Departm ental Merfiber ( Department o f C om puter Science)

Dr. M. van Emden, D epartm ental M em ber (Department o f C om puter Science)

Dr. W.J.R. Hoefer, Outside M em ber (Department o f Electrical and C om puter Engineering)

(7)

I l l

Table o f Contents

.ABSTRACT... ii

Table o f C o n te n ts ...iii

List o f T a b l e s ...vl List o f Figures ...viii

A C K N O W L E D G E M E N T S...x

D ed icatio n... xi

C hapter 1 Introduction. Query- Optimization in G raphL og I 1.1 Q uery O p tim iz a tio n ... 1

1.2 D a t a l o g ...3

1.3 G ra p h L o g ... 5

1.4 The Im portance o f Q uery R e o r d e r i n g ...7

1.4.1 Effect o f Q uery R e o rd e rin g ...8

1.5 O ur D issertation ... 10

1.5.1 The Problem S o l v e d ... 10

1.5.2 Overview o f O ur Cost M o d e l... 11

C hapter 2 Cost M odeling 20 2.1 Evaluation M ethods for D a t a l o g ...20

2.1.1 Bottom-up E v alu atio n ... 21

2.1.2 Top-down E v a lu a tio n ... 21

2.1.3 Safety C o n sid e ra tio n s... 22

2.1.4 Query R eordering in D a ta lo g ...22

2.2 Some Recent W ork on Q uery R e o r d e r in g ...24

2.2.1 Efficient R eordering o f Prolog Programs by Using M arkov Chains . 25 2.2.2 .A. .M eta-Interpreter for Prolog Query O p t im iz a tio n ... 25

2.2.3 Efficient R eordering o f C -P ro lo g ... 26

2.2.4 Qn R eordering Conjunctions o f Literals; A Sim ple, Fast A lg o rith m ...27

(8)

IV

Chapter 3 A M achine-D ependent Cost Model 30

3.1 Cost model. Initial A s s u m p tio n s ... 30

3.2 Fact Retrieval, Ail S o l u t i o n s ... 31

3.2.1 Choice Point M a n ip u la tio n ...33

3.2.2 Unification O p e r a t i o n s ...33

3.2.3 B a c k tr a c k in g ... 35

3.2.4 General F o r m u l a ... 36

3.3 Experimental Values fo r the Elementary C o n s t a n t s ...36

3.4 Conjunction o f Sim ple Q ueries. All S o lu tio n s ...42

3.5 Intensional Database P r e d i c a t e s ... 45

3.6 Mode a n a ly s is ...45

3.6.1 M o d e s ...46

3.6.2 General Mode A nalysis M e t h o d ... 47

3.6.3 Abstract D o m a in s ... 48

3.7 Cost F u n c tio n ...52

3.7.1 Cost Function from the Perspective o f Head U n ific a tio n s ... 53

3.7.2 Cost Function from the Perspective o f Body E v a lu a tio n s ... 57

3.8 Overview o f the M o d e l ...62

Chapter 4 A qualitative m odel 64 4.1 Fundamental D atabase O perations R ev isited ... 64

4.2 Recapitulation. Cost E stim ation and Query R e o r d e r in g ...73

4.3 Our Proposed Fram ew ork ... 74

Chapter 5 Handling R ecursive Q ueries 77 5.1 Execution Cost o f a R ecursive Q u e r y ... 77

5.2 Formulation o f a R ecursive Q uery in Terms o f Transitive C losure . . .78

5.3 Predicting the A verage N um ber o f Solutions o f a Transitive Closure . . 79 5.4 Estimating the A verage C ardinality o f Transitive C lo s u r e ...80

5.4.1 Region o f Small V alues for the Num ber o f Tuples in the Base P r e d i c a t e ...80

5.4.2 Region o f Interm ediate Values for the N um ber o f T uples in the Base P r e d i c a t e ...82

5.4.3 Region o f Large V alues for the N um ber o f Tuples in the Base P r e d i c a t e ...83

(9)

5.5 Recursion R e v isite d ... 85

5.6 Algorithm to Estimate the Cost o f a GraphLog Q u e r y ...92

C h a p te r 6 Some C a se Studies 96 6 .1 The congressional voting records d a ta b a se ... 96

6.2 The Perform ers D a ta b a s e ... 104

6.2.1 Primitive E n t itie s ... 106

6.2.2 The Extensional D a t a b a s e ... 107

6.2.3 A N on-recursive Q u e r y ... 108

6.2.4 An Exam ple Involving a C lo s u re ... 112

6.3 The Packages E x a m p le ...120

6.4 Comparison to Sheridan's a lg o rith m ... 129

6.4.1 Why is Sheridan’s algorithm so s u c c e s s fu l? ... 129

6.4.2 Our fram ew ork versus Sheridan’s ...130

C h a p te r 7 C o n clu sio n s a n d F u tu re W o rk 132 7.1 Contributions o f this Dissertation ... 132

7.2 Limitations o f O ur F ra m e w o rk ... 133

7.3 Future w o r k ... 133

R eferences 135 .Appendix 1 A D etailed View o f O th e r A pp ro ach es to Q u e ry R e o rd e rin g 140 A 1.1 Efficient Reordering o f Prolog Programs by Using M arkov Chains . 140 A 1.2 A M eta-Interpreter for Prolog Query O p tim iz a tio n ...143

A 1.3 Cost A nalysis o f Logic P ro g ra m s... 146

A ppendix 2 P rim itiv e C o n sta n ts in a U niform D istrib u tio n 153 A ppendix 3 .M ethod o f M e a su re m e n t 156 A ppendix 4 A P e rfo rm a n c e M odel fo r Q U IN TU S Prolog 157 A4.1 Database p r o f ile ...158

A4.2 Abstract D o m a in s ... 159

A4.3 Cost m e tr ic s ... 160

A4.4 Query cost formulae ...162

A4.5 Comparison between the Model Prediction and the Experim ental Results ...163

(10)

vi L ist o f T ab les

T a b le 1.1. Cost o f the evaluation o f a given query using different orderings . . . 9

T a b le 3.1. Typical Experimental Results for a Ternary Predicate for SICStus P r o lo g ... 39

T a b le 3.2. Typical Experimental Results for a Ternary Predicate for SB-Prolog 39 T a b le 3.3. N um ber o f times that the WAM Instructions are executed... 40

T a b le 3.4. N um ber o f times that the WAM Instructions are executed (sim plified v e r s io n ) ...40

T a b le 3.5. A pproxim ate Theoretical Values for a Ternary P r e d ic a te ...41

T a b le 3.6. Average cost error introduced by ou r a p p ro x im a tio n ... 42

T a b le 3.7. The book titles d a t a b a s e ... 44

T a b le 3.8. Orderings ranked by their c o s t s ...44

T a b le 3.9. The books database p ro file ...50

T a b le 3.10. The extended books database...59

T a b le 3.11. Predictions for all p re d ic a te s ...60

T a b le 3.12. Predictions for the intensional database p re d ic a te ... 61

T a b le 5.1. The linear r e g io n ...81

T a b le 5.2. The intermediate r e g i o n ... 83

T a b le 5.3. Percentages o f the maximum value for n^ = 1.6 m ... 84

T a b le 5.4. Percentages o f the maximum value for some f a c t o r s ...84

T a b le 5.5. Com parison between the formula and the experimental results . . . 84

T a b le 5.6. The exponential re g io n ...88

T a b le 5.7. Estimating the cardinality o f a recursive p r e d i c a t e ... 89

T a b le 6.1. Num ber o f visited tuples for ordering # 1 ...100

T a b le 6.2. N um ber o f visited tuples for ordering # 2 ... 101

T a b le 6.3. Expected number o f visited tu p l e s ...105

T a b le 6.4. Com parison between the predicted and experimental values . . . .106

T a b le 6.5. The performers database p r e d ic a te s ... 109

T a b le 6.6. Predicted values o f two cost contributors for the non-recursive query...113

T a b le 6.7. Experimental results for the non-recursive query (rankings in square brackets)... 113

T a b le 6.8. The modified performers database p r o f ile ...113

T a b le 6.9. Experimental results for the recursive p re d ic a te ... 119 T a b le 6.10. Efficiency o f the transitive closure for different calling patterns . .120

(11)

v u

T able 6.11. The extensional database p re d ic a te s ... 120

T able 6.12. D ifferent orderings for the query under c o n sid e ra tio n ... 123

T able 6.13. Experim ental results for the three m ost efficient o r d e r i n g s ...129

T able 6.14. Cost metrics for all p r e d ic a te s ... 129

Table A2.1. Values o f the Traversal Factor for the Ternary Predicate Example 155 Table A4.1. Valid orderings for the query p k g _ u s e s /2 ...158

T able A4.2. The extensional database p re d ic a te s ... 158

Table A4.3. D ebray’s dom ain for all predicates ... 159

T able A4.4. Cost dom ain for the extensional p r e d i c a t e s ... 160

T able A4.5. Cost dom ain for the intensional predicate and the m ain quer> . . .161

T able A4.6. Cost m etrics for all p r e d ic a te s ... 162

T able A4.7. Cost m etrics for the intensional p r e d i c a t e ...162

(12)

Figure 1.1. Figure 1.2. Figure 1.3. Figure 1.4. Figure 1.5. Figure 1.6. Figure 2.1. Figure 3.1. Figure 3.2. Figure 3.3. Figure 3.4. Figure 4.1. Figure 4.2. Figure 4.3. Figure 4.4. Figure 4.5. Figure 4.6. Figure 5.1. Figure 5.2. Figure 5.3. Figure 5.4. Figure 5.5. Figure 6.1. Figure 6.2. Figure 6.3. Figure 6.4. Figure 6.5. Figure 6.6. v iii L ist o f F igures

Three representations o f a given database tu p le ... 6

A graph representation o f a r u le ... 6

A graph representation o f a GraphLog r e la tio n ...7

A query as a series o f successive o p e r a t i o n s ... 16

The cost o f a general predicate is the sum o f the cost o f its individual r u l e s ... 17

Two general alternatives for a cost m odel f r a m e w o r k ... 19

Sets o f lists o f arguments for two evaluable predicates that ensure s a f e t y ... 24

Partial translation of a f a c t ... 32

(a) An extract from one o f the databases that were used and (b) typical subgoals which retrieve these f a c t s ... 36

D ebray’s lattice for mode a n a l y s i s ...46

Abstract interpretation applied to Prolog unification given two terms 11 and t 2 ... 48

Frequency diagram o f an attribute that m ay be approxim ated by a discrete normal d istrib u tio n ...67

Two ternary predicates si and s 2 ... 70

Join o f predicates s I and s 2 ...71

Selection after the join o f predicates si and s 2 ... 71

Final projection o f arguments 3 and 5 72 Cost contributors are estim ated for each s u b g o a l... 76

Region for small v a lu e s ... 81

Region for large v a l u e s ... 82

G raphLog p r o g r a m ... 86

G raphLog program for the recursive p r o g r a m ... 87

Graphical representation o f base predicates up and d o w n ...90

The G raphLog d a ta b a se ... 96

The 1984 United States Congressional V oting Records Database . 97 Two orderings that we wish to c o m p a r e ... 97

Abstract black boxes for Example I ... 100

Interconnection o f the black boxes for Exam ple I ...10 1 Experim ental results for both orderings ... 102

(13)

IX

Figure 6.7. Six orderings that we wish to c o m p a r e ...103

Figure 6.8. Six orderings that we wish to c o m p a r e ...103

F ig u re 6.9. A bstract black boxes for Example 2 ...104

Figure 6.10. Intercorm ection o f two black boxes in Exam ple 2 ...105

Figure 6.11. Sam ple tuples from the performers d a ta b a s e ... 108

Figure 6.12. A bstract black boxes for the non-recursive query ...I l l Figure 6.13. Expected values for the cost contributors for a specific ordering .112 Figure 6.14. A bstract black boxes for the recursive q u e r y ... 116

Figure 6.15. A bstract representation o f the different orderings ...118

Figure 6.16. A bstract black boxes for some predicates in the packages exam ple 122 Figure 6.17. A bstract black boxes for predicate p a r t _ o f ...124

Figure 6.18. A bstract black boxes for predicate c y c l e ... 125

Figure 6.19. Im pact o f the underlying database on the perform ance o f the call .131 Figure A l l. M arkov chain for the single solution c a s e ...142

Figure A1.2. M arkov chain for the all-solutions c a s e ... 142

(14)

ACKNOW LEDGEM ENTS

I would like to thank Dr. Horspool for his patience and encouragem ent; IBM Toronto Laboratory for suggesting the topic, providing a Ph.D. fellow ship and hosting a work term: Dr. Wadge and Dr. Ryman, who offered a number o f insights; and. finally, last but certainly not least, my parents and brother, for their long-standing devotion and sup­ port.

(15)

XI To:

Jan Doumen (DeJean)

Horacio Franco Sjoerd Mullender B nm o Cornea Gwenael Faucher Bogislav Rauschert Federico Marincola Dave Lampson Gyorgy Varga Ken-ichi Murala Shel Ritter Gustav Leonhardt Sigiswald Kuijken Gnipo Cinco S ig h s

(16)

Chapter 1.

Introduction. Query Optimization in GraphLog

In this dissertation, we propose a cost model for GraphLog. a query language that is based on a graph representation o f both databases and queries. Specifically. G raphLog is the query language used by 4Thought. a software engineering tool aimed at helping engineers understand and solve a class o f software engineering problem s that involve large sets o f objects and com plex relationships am ongst them [Consens92] [Ryman92] [Ryman93]. G raphLog queries ask for patterns that must be present or absent in the da­ tabase graph. O ur framework is able to estimate the relative cost o f execution o f different orderings o f sem antically equivalent GraphLog queries, thus allow ing us to reject those query orderings whose execution may be more inefficient. Our m odel assum es a top- dow n evaluation strategy [Ceri90].

Given the fact that one o f the distinguishing characteristics o f G raphLog is the ca­ pability to express queries with recursion or closures, and since no previous cost model has addressed the cost estimation o f recursion and closures for a G raphLog-like lan­ guage. our original solution to this problem is o f particular interest. O ur m ethodology has been evaluated on several real-life databases with encouraging results.

In this chapter, we analyze some general issues relevant to query optim ization in general, and query reordering in particular. We also introduce the language that our work will be applied to. Finally, we give an overview o f what we have accom plished.

1.1 Query O ptim ization

Que}-}' optimization [Jarke84] is directly concerned with the efficient execution o f data­

base queries. Its main goal is to m inim ize the resources needed to evaluate a query that retrieves information from a given database. A query optimizer norm ally generates and analyzes different alternatives to determ ine an efficient plan o f execution. O ptim izing a query can reduce processing time by a factor whose value depends on the sizes o f the

(17)

database definitions^. This decision is often based on cost models that capture the con­ tributions due to different factors such as the sizes o f the relations under consideration or the expected num ber o f tuples retrieved by an interm ediate operation.

If. for instance, a user poses the query “ find all Japanese collectors who own a Stradivarius violin”, the query optim izer would usually need some information about the statistical profile o f the database (how many Japanese collectors are stored in the data­ base. how many individuals are expected to ow n a Stradivarius violin, and more). Given these prem ises, the optim izer may establish a suitable plan to solve the problem efficient­ ly. A plan o f execution has to take into account several different factors, including the order o f operations, the searching algorithms that are used and the database structure it­ self.

Some o f the m ost common strategies adopted in query optimization include:

1. Selection o f the most efficient overall evaluation method ( i.e.. the computational model that derives all the solutions to the query). The algorithm that is used to search for the answers clearly has an influence on the efficiency o f execution o f the query. No evaluation method is intrinsically superior to the others. In fact, the perform ance o f different evaluation methods depends on the nature o f the prob­ lem. Typical evaluation methods include bottom-up evaluation, top-down-eval- uation. and com binations o f both. Here, the optim ization (i.e.. the decision as to which evaluation method is the most suitable for the given query) is performed during the evaluation process itself.

2. Determination o f the best syntactic rearrangem ent o f the query subgoals. Given that the order o f execution o f the subgoals can substantially influence the time that is required to retrieve the answers to the query, it is usually advantageous to find the goal ordering that is the least expensive to execute. Unfortunately, since the num ber o f combinations increases geom etrically with the num ber o f subgoals in the query, an exhaustive search through all possible combinations may become

(18)

prohibitive. A practical cost model is needed to com pare the perform ance o f dif­ ferent orderings and select a suitable (efficient) ordering.

3. Transform ation o f the original user query into an equivalent one w hich can be ex­ ecuted more efficiently. In som e cases, standard sim plifications m ay be applied to the new query, whereas they may not have been applicable to the initial query. However, this process o f query rewriting does not guarantee that a m ore etTicient query will be found. In som e cases, a loss in efficiency may occur.

If the evaluation is performed by a specific "machine", we will be m ore interested in the last two approaches to query optim ization {a fixed evaluation strategy is the usual case for many query languages).

O ur work will address the issue o f selecting the best syntactic rearrangem ent o f the query subgoals for a specific query language, namely GraphLog [C onsens89]. We will refer to this problem as c/uety reordering.

1.2 Datalog

There has been extensive work directed towards tackling the traditional dataha.se pro­

gramming paradigm. However, w ith a recent trend towards integrating the database and

logic program m ing paradigms, new requirements and challenges dem and a different ap­ proach to the special problems raised by the logic programming paradigm. This disser­ tation is specifically focused on G raphLog. a language that incorporates the two above- m entioned program m ing paradigms. Since GraphLog is closely related to Datalog, a rel­ atively w ell-know n logic query language, we proceed to give a brief overview o f this lan­ guage.

Datalog [Ullman88] is a language that applies the principles o f logic program m ing to the field o f databases. Datalog w as specifically designed for interacting w ith large da­ tabases. The language is based on first-order Horn clauses w ithout structures as argu­ ments. i.e.. only constants and variables are allowed. Constant argum ents are also re­ ferred to as ground atoms. .Most underlying Datalog concepts are sim ilar to those in Log­ ic Program m ing [Ceri90]. In fact, the design o f Datalog has been noticeably influenced

(19)

by one o f the most popular logic programming languages. Prolog [ClocksinS 1 ]. W e pro­ ceed to give a brief description o f the language. .A. more detailed coverage o f the lan­ guage can be found in the literature [Ullman88] [Gardarin89] [C eri90].

A Datalog program consists o f a finite set o f logic clauses o ften referred to as facts and rules. Facts are assertions that define true statements about som e objects and their relationships. Typical facts are "Felix is a man"' or "The square o f 5 is 25". The Datalog notation for these facts is:

male(felix). sq u a re (5 . 25).

The atomic symbol that nam es the relationship is said to be (he predicate definition. In the example, male and .square are predicate symbols. The objects that are affected by the relationships are nam ed the arguments or data objects. In our exam ple, these are the constant values /ê/â'. 5 and 25. As a notational convention, both predicate sym bols and constant arguments are w ritten with an initial lower-case letter. T he collection o f facts is usually referred to as the database.

Rules are collections o f statements that establish some general properties o f the ob­

jects and their relationships. Broadly speaking, rules permit the derivation o f facts from other facts. A Datalog rule is expressed in the form o f Horn clauses [H om 51]. that is, clauses having the general form:

P i f OI and O j and ... and 0„ or. in Datalog notation.

p q 1 . q 2 qn.

p being the head o f the rule and the conjunctive part being the body o f the rule. Each c/, is nam ed a subgoal o f the rule.

Rules usually make use o f variables to represent general objects rather than specific ones. Variables are represented by identifiers that must com m ence w ith a capital letter.

(20)

For example, the predicate

son(X.Y) male(X), parent(Y.X).

can be interpreted as "X is a son o f Y i f X is male and Y is a parent o fX '. The predicates male and parent should be defined elsewhere, either as facts o r as rules.

The user may request information from the database by entering queries. These are Horn clauses which lack a head and can be evaluated or verified against the facts and rules in the program. For exam ple, the query

patient(N am e. D isease), trop icai{D isease).

may be used to retrieve the nam es o f those patients that have suffered a tropical disease according to their clinical history. The answer to this query is given by the set o f all tu­ ples that satisfy the query.^

1.3 GraphLog

A related language is G raphLog [Consens89]. GraphLog is a graphical database query language based on Datalog, and enriched by some additional features (specifically, the formulation o f path regular expressions). One o f its original aim s was to facilitate pro­ gramm ing via a graphical representation o f the program m er's designs and intentions. The main idea is that a relational database can be represented as a graph, and graphs are a very natural representation for data in many application dom ains (for instance, trans­ portation networks, project scheduling, parts hierarchies, fam ily trees, concept hierar­ chies and Hypertext) [Consens89] [Consens90] [Fukar91] [Consens92] [Ryman92] [Ryman93].

Each node in the graph is labelled by a tuple o f values: they correspond to the at­ tribute values in the database. Each edge in the graph is labelled by a nam e o f a relation and an optional tuple o f values. The set o f values in both the edge label and the nodes connected by the edge, together with the name o f the relation in the edge, correspond to

+For practical reasons, som e systems have the option o f retrieving just a subset o f the w hole an­ swer (by reporting the first instances o f the solution that are derived).

(21)

one tuple in the database. Figure 1.1 shows three equivalent graph representations o f the fact:

sq u a re (5 . 25).

Q

^

^ — sq u a re

OzzrO

sq u a re (2 5 ) sq u a re(5 .^ )^ -^

Figure 1.1 Three representations of a given database tuple

General relations (rules) and queries may also be represented by graphs. Every edge in the graph represents a relation amongst data objects as represented in the nodes con­ nected by the edge (and optionally in the edge). These data objects are the predicate ar­ gum ents and they can be either variables or constants. The rule itself is represented by a special edge (called the distinguished edge) that also connects a pair o f nodes. For in­ stance. Figure 1.2 shows a graph representation o f the rule:

son(X.Y) m ale(X ). parent(Y .X).

so n

m ale p a re n t

Figure 1.2 A graph representation of a rule

A nother example o f a GraphLog relation is given in Figure 1.2. In this case, the fol­ lowing rule is defined:

(22)

This exam ple shows that the graph does not have to be a connected graph. N ote also that the arguments are ordered as follows^: (a) first those appearing in the "starting" node; (b) those shown in the "en d in g ” node: and (c) those specified in the edge.

down

X.YU XU

updown(Y)

Figure 1.3 A graph representation of a GraphLog relation

G raphLog is a language that represents database facts, rules and queries as graphs as described above. A form al definition o f this query language can be found in [Consens89]. It is shown that a GraphLog program has an equivalent D atalog program associated with it. O f particular relevance is the fact that G raphLog allow s program m ers to express recursive relations, thus providing a greater expressive pow er than that o f tra­ ditional relational alsebra.

1.4 The Importance o f Q uery Reordering

The efficiency with which a logic programming language^ executes a query is critically dependent on the order in w hich goals are expressed in a conjunction [W arrenS 1 ]. Query

reordering is an important query optimization technique for finding m ore efficient eval­

uation orders for the predicates. The main goal o f this technique is to reduce the num ber o f alternatives to be explored.

tin fact, arguments may be specified in prefix, postfix or infix notation. ^Thought favours the in­ fix convention.

(23)

To determ ine m ore efficient ways o f evaluating a given set o f subgoals, it is conve­ nient to have som e inform ation about the actual (extensional) database. K now ledge o f som e parametric values o f the database can help determ ine an approxim ate execution cost that is to be associated with every subgoal. Query reordering usually requires at least three different processes: ( a) gathering a database profile o r som e general know ledge on the characteristics o f the database tuples, (b) estim ating costs for different orderings (in the ideal case, for all possible valid orderings)', and (c) determ ining the best order. In this dissertation, we concentrate on the second issue, i.e.. trying to predict the (relative) cost o f evaluating a query (any query) for a given database.

1.4.1 Effect o f Query Reordering

To illustrate the effect that query reordering may have on the perform ance o f a query, we use the following exam ple that describes a Prolog database^.

Exam ple. C onsider a database that consists o f three predicates:

• book(Title. P u b lish e r_ N a m e . A uthor_N am e). .A. collection o f book titles along with their publishers and authors.

• p u b lish er(P u b lish e r_ N a m e. City). A list of different cities w here book publishers have an authorized distributor.

• au th o r(A u th o r_ N am e. Nationality). A group o f facts that relate authors to their respec­ tive nationalities.

Suppose that w e wish to retrieve a list o f tuples <Title. P u b lish e r_ N a m e . City. A u th o r_ N a m e > o f those publications whose author has Dutch nationality.

t.Although the database profile may be used to estimate the cost o f som e simple subgoals ( for in­ stance. facts), the cost o f more complex (derived) subgoals requires som e additional computa­ tional work.

f These results also apply to GraphLog. especially since GraphLog queries are usually translated into Prolog under current implementations o f the language.

(24)

Since this query involves all three predicates, there are 3! different w ays to express it:

book(T . P . A). pub lish er(P . C). author(A. d u tc h ). book(T. P. A), author(A . dutch). publisher(P . C). p u b lish e rfP . C), book(T. P. A). author(A. d u tc h ). p u b lish er(P . C). author(A . dutch). book(T. P . A). author(A . dutch). p u blisher(P . C). book(T. P . A). author(A . dutch). book(T. P. A), pu b lish ed P . C).

The answ er will be the same, regardless o f the chosen order. However, depending on the characteristics o f the underlying database, the tim ings o f the queries will not be the same. For example, we applied all six orderings to a particular database with 3.000 book titles. 20 different publishers. 450 authors. 30 nationalities and 380 cities w orldw ide, and ob­ served the costs show n in Table 1.1. The figures w ere obtained using SICStus Prolog version 1.2 and Stony Brook Prolog (SB-Prolog) version 3.0 measured on a Sun SPARC- station SLC. All execution times are estimated, according to the im plem entation manu­ als. in "artificial” units. The database under consideration com prised 3.000 facts for the book predicate. 2.766 facts for the publisher predicate and 450 facts for the author pred­ icate.

o rd e rin g cost using

SIC S tus Prolog

cost using SB -prolog publisher-author-book 3434745 3152460 author-publisher-book 3438660 3125060 publisher-book-author 260040 443900 book-publisher-author 41345 242080 author-book-publisher 2690 2810 book-author-publisher 1635 3215

Table 1.1 Cost of the evaluation of a given query using different orderings

It is clear from this example that the order o f the subgoals substantially affects the perform ance o f the Prolog query. It is also evident that the particular Prolog implemen­ tation may affect the choice o f the best ordering as well.

(25)

10

1.5 O ur Dissertation

A cost model o f a particular implementation o f the language G raphLog (in w hich Prolog is the target program ) is proposed in this dissertation. In particular, we address the issue o f ranking different (syntactically-equivalent) arrangem ents o f a given query in order to select the (potentially) most efficient ordering. O ne major feature o f our m ethodology is the ability to estim ate the cost o f recursive queries and transitive closures.

1.5.1 The Problem Solved

Essentially, we have derived a methodology that allows us to choose a potentially less expensive ordering amongst a group o f valid subgoal orderings. In other words, our pro­ posed framework is able to rank different orderings according to their expected execu­ tion cost. Rather than assigning absolute values (i.e.. exact execution times) to the dif­ ferent orderings under consideration, we are only interested in predicting their expected relative cost. Execution time is used as the determ ining factor in the analysis.

We may state the general problem as follows:

Given a G raphLog query q o f the form:

S |. S21 . . . . ^rn*

we are to estim ate the relative cost o f any given ordering o f the subgoals.

Our m ethodology only ranks different orderings. It does not select potentially good candidates from the whole spectrum o f valid orderings. It is the responsibility o f a pre­ processor to select a subset o f potentially cheap orderings to start with (especially if the num ber o f permutations o f orderings would m ake an e.xhaustive analysis prohibitive). In fact, since we are interested in finding a perm utation o f the subgoals that yields a more efficient plan o f execution, there are at most ml possible orderings (som e o f them may be invalid as they may not comply with the safety rules o f the query language) so that it is not always feasible to test them all individually. A practical approach is to select a sub­ set o f the orderings, namely those that are potentially less expensive to execute. Then, we can estim ate the cost o f execution o f each ordering in the subset to determ ine a good

(26)

I I

ordering. There are several methods to select subsets o f potentially efficient orderings, am ongst them. S heridan's algorithm [Sheridan91] and sim ulated-annealing-based algo­ rithms [Ioannidis90].

1.5.2 Overview o f O u r C ost .Model

In general, we have assum ed that som e information about the underlying database ' is available. Sheridan's algorithm [Sheridan91] is the fram ew ork o f choice when no infor­ mation regarding the databases can be obtained.

For any gi\ en ordering, a mode analysis [DebraySS] is perform ed to determ ine the degree o f instantiation o f the subgoal arguments. For the case o f the previously-m en­ tioned Prolog im plem entation o f GraphLog. our model takes into account the specific evaluation strategy o f this language under a particular im plem entation (nam ely, the VVAM [Aït91]).

We have chosen to consider what we call the average behaviour for queries. Given all possible valid queries that the user may pose for a particular calling pattern (cf. De­ bray's framework), w e estim ate an average value o f all their expected execution timings and use this value as the expected cost o f the given query." T he fram ew ork in its present state does not produce any additional information such as m easures o f the dispersion o f the values with respect to the average value, or corresponding upper and low er bounds. Furthermore, rather than a detailed and expensive exact solution, ou r model considers the process o f solving a query as a set o f general actions only.

We have determ ined that a convenient way to obtain a suitable ranking for the or­ derings under study is to consider the existence o f what we have called cost contrihutors. that we proceed to explain in the following subsection.

tpor instance, we assum e that the number o f tuples for each database fact and the number o f dis­ tinct values for each argument position are available.

JThus. we arc assuming that all queries have an equal probability o f being posed, which is a ma­ jor assumption.

t+In fact, we decided not to use inter\ als to characterize the results based on the fact that for a transitive closure, the resulting interv als were normally too wide to be o f practical use.

(27)

Additionally, we have developed a methodology to estim ate the average num ber o f solutions associated with the query, this being an im plem entation-independent quantity. In fact. Debray and Lin's related work [Debray93]. that derives a cost model o f logic pro­ gram s. is m ainly concerned with this sole issue. O ur model is m ore general as it handles recursive and closure predicates.

One m ajor consideration that was regarded as essential since the inception o f this dissertation was to produce a simple as possible framework, w hile producing yet accept­ able results. We strongly believe that our model is simple, both conceptually and from the point o f view o f a practical implementation. W e have tested o u r m ethodology on sev­ eral real-life (large) databases. Som e detailed case studies are given in C hapter 6.

C ost Contributors

Rather than analyzing the nature o f the exact m achine code that is generated ( for in­ stance. in the form of machine cycles that are required to execute the instructions), a sim­ pler analysis is often desirable, although at the expense o f a potential loss in precision. The general idea is to determine som e generic activities or groups o f operations that are directly related to the cost o f execution o f the query and then estim ate the individual costs associated with such com ponents. Therefore, we wish to single out som e "cost con­ tributors" that influence the efficiency o f the code execution. Som e typical cost contrib­ utors are ( 1 ) the number o f tuples in the database that are visited to find the global solu­ tion. (2) the number o f matching (unification) attem pts that take place during the resolu­ tion process, and (3) the number o f solutions o r answers to the query that are gathered and displayed (we also have to consider any associated backtracking that m ay occur when new solutions are attempted). Some contributors may have a greater im pact on the query perform ance than others. For instance, it has been reported that a Prolog program m ay spend 55-70% o f its time uni lying and 15-35% o f its tim e backtracking [W oo85].^

tT h is behaviour is specially rele\ant to our work, since the current implementation o f the GraphLog interpreter generates Prolog code as the target language. For this reason, the number o f visited tuples is a relevant cost contributor (if not the most relevant).

(28)

13 Unfortunately, many o f these quantities are both m odel- and m achine dependent. For exam ple, if the model uses clause indexing to narrow dow n the num ber o f clauses to be explored, fewer tuple visits and unifications will be perform ed. Sim ilarly, if special­ ized code optim izations are incorporated, this m ay have an impact on various cost con­ tributors ( for instance, tail recursion optimization [Kruse87] m ay reduce the cost associ­ ated with backtracking). The only cost contributor that is independent o f the execution model seems to be the total num ber o f solutions to the query, but, in the case o f GraphLog, this num ber is also independent o f w hatever ordering o f the subgoals is se­ lected!

In our model, one initial task consists o f defining w hich cost contributors are more relevant. By elim inating some cost contributors, the process o f cost estim ation will be sim plified at the expense o f some loss in precision. As we will argue later, m any real-life exam ples can be characterized by only a handful o f cost contributors ( in som e cases, only one m ay suffice).

Database Profiling

O nce a selected set o f cost contributors is determined, a sim ple way to determ ine the ex­ pected value o f these quantities must be found. This is usually done by using a database profile rather than the exact values in the database. Traditional statistical profiles are specified by means o f four categories o f quantitative descriptors [M annino88]: ( 1) de­ scriptors o f central tendency; (2) descriptors o f dispersion: (3) descriptors o f size; and (4) descriptors o f frequency distribution. Usually, the more precise the descriptors, the more accurate the predictions. There are m any w idely-used '‘standard” descriptors; mode, mean, median; variance, standard deviation; cardinality o f the relations; normali­ ty, uniformity, to mention only a few. Many real-life databases can be characterized by these com m on descriptors with the advantage o f a simpler, more general cost analysis, norm ally at the expense o f some loss in accuracy. In fact, m any frequency distributions have been extensively studied in the area o f statistics [M annino88].^

tG iven an arbitrary database, it is not always easy to establish which "standard” set o f descriptors approximates the data best. Sets o f tests have been developed for som e o f the most popular ap­ proximation functions in the literature.

(29)

14

H owever, derived relations and com plex queries do not deal with sim ple distribu­ tion functions, but rather with com binations (specifically, joins, semijoins, selections and projections) o f distributions that require a m ore complex analysis. M ost o f the re­ search w ork' has been devoted to ju st a few distribution functions (uniform. Pearson, normal and Zipf) and not all basic database operators have been sm died w ith the same degree o f depth or success. A substantial part o f the work has concentrated on the esti­ m ation o f the number o f output tuples to the query*. Given these deficiencies, it is not unusual that query optimizers autom atically assum e a distribution function that is sim ple and well understood (typically the uniform distribution). An additional problem occurs when the actual distribution function is not know n (databases are constantly changing and it is not always possible to keep track o f the changes in the shape o f the distribution) or only known in a non-parametric form (usually histograms). O u r model will normally assum e a uniform distribution o f attribute values in compliance w ith the standard trend.

Given a certain degree o f instantiation o f the argum ents o f a GraphLog subgoal, our claim is that it is feasible to estimate an expected value for the selected set o f cost con­ tributors. As it is always the case with abstract interpretation techniques [Cousot77]. [Cousot92]. the more information we have about the subgoal, the m ore accurate the es­ timates can be.

For the case o f extensional database predicates, in our m odel, such an estim ate is obtained by simple statistical considerations^^. In the ideal case, if we know the exact values o f the database tuples as well as the exact subgoal (query retrieval) under consid­ eration. the expected value o f a cost contributor can be calculated accurately. If our know ledge is more limited, we have to introduce som e assum ptions (as m entioned

be-tS e e [Mannino88] for a thorough (although slightly out-of-date) survey on the topic.

f.A-fter all. in traditional database query planning, the sizes o f intermediate relations are usually regarded as important (if not the most important) contributors to the total execution cost o f a que­

ry-t ry-tT h e esry-timary-tion o f a simple facry-t rery-trieval (i.e.. direcry-t exry-tensional dary-tabase searches) is m osry-tly a statistical problem since the distribution follow ed by its arguments is assumed to be known in ad­ vance or can be somehow determined.

(30)

15

fore, we w ill norm ally assum e a uniform distribution o f independent attribute values), yet still achieving acceptable results.

For the case o f intensional database predicates, the estim ation o f the expected value o f a cost contributor requires a more elaborate process, w hich we proceed to sketch.

Cost o f a G eneral Q uery

Given a query w hose cost we wish to estimate, we propose to decom pose the query into sim pler com ponents. To sim plify the problem, we assum e that queries are independent o f each other^. T he sim plest choice consists o f defining a G raphLog subgoal as the prim ­ itive en tity to be analyzed. A subgoal is then treated as a “black box” : given som e inputs (such as degree o f instantiation o f the arguments, num ber o f tim es that the subgoal is ex­ pected to be invoked, average num ber o f solutions that are expected to be returned by the subgoal. etc.). the expected values o f the cost contributors m ay be estim ated (as the out­ puts o f th e black box) and used by successive blocks as their respective inputs. The sub­ goal itse lf has to provide som e information about internal characteristics such as distri­ bution o f attribute values o r correlation am ongst argum ents (see Figure 1.4 as an exam ­ ple o f this idea. N ote that average values are obtained, since the actual values o f the ground term s are not taken into consideration: a uniform distribution o f attribute values is assum ed instead).

The total cost o f the query is then estim ated as the sum o f the individual costs o f the subgoals. A gain, standard abstract interpretation techniques are used to determ ine the de­ gree o f instantiation o f the argum ents and propagate the interm ediate results through all successive query com ponents. This instantiation inform ation m ay also be used to reject unsafe orderings [cf. Section 2.1.3].

The estim ation o f a general predicate call can be obtained as the sum o f the costs associated w ith each individual rule (Figure 1.5). This holds largely true as long as rules are independent o f each other (i.e.. they do not have com m on solutions). However, it is quite com m on that tw o or more rules provide com m on solutions. A mutual exclusion

tW e w ill see that a more com plex framework is required to deal with dependencies amongst com ponents.

(31)

1 6 n a tio n (c a n a d a ). nation(belgium ). nation(uk). I a n g u a g e (c a n a d a . french). Ia n g u a g e (c a n a d a , english). Iangu ag e(b elg iu m , dutch). Iangu ag e(b elg iu m . french). Iangu ag e(b elg iu m . g erm a n ). Ianguage(uk, en g lish ).

german_speaking_nation(N) nation(N), language!N. germ an).

the language predicate has 3 distinct values for argument # 1 and 4 distinct values for argument #2. Of the total of 12 possible combinations of these values, only 6 will produce an answer; there is a rate of success of 1/2 language(<n>.german) nation(N) repeat ^ times 3 answers this value is a constant “1.5” answers 1 average value there are 3 nations

in the database:

3 tuples are visited v and 3 tuples are retrieved

\ /

there are 6 language tuples in the database

for each nation retrieved in the previous step, 6 tuples are visited (assuming no indexing). The solution will contain 3 times (1/2) tuples

Figure 1.4 A query as a series of successive operations

analysis m ay help, but the general problem o f duplication resulting from independent rules seem s to be difficult to solve. Our cost m odel does not take this source o f duplica­ tion o f tuples into account.^

tW e must distinguish between the cost o f finding a ll answers (i.e., the sum o f the costs o f the individual rules ) and the cost o f finding all distinct solutions (whose estimation has to take into account the process o f elimination o f duplicates).

(32)

p red ic ate su b g o a li i. su b g o a l 1 2... subgoai, pred icate 'su b g o a l2 ,. su b g o a l22... subgoal2 n2

-pred icate s u b g o a t ^ ,. subgoalm 2 s u b g o a li

nm-for each predicate rule;

estimate the cost of each rule body, add the cost of head unification and

consider the process of projection and elimination of duplicates

Figure 1.5 The cost of a general predicate is the sum of the cost of its individual rules

W hen we are dealing with general predicate calls, we have to consider some addi­ tional issues, such as (a) head unification, (b) clause indexing, (c) independence o f sub­ goals and (d) the fact that the distribution of the tuples may be difficult to predict. Head unification and clause indexing are implementation-specific issues and they are taken into account in our model by assigning to each rule in the predicate a probability o f suc­ cess. (usually) given the degree o f instantiation o f the arguments involved. Each rule is then weighted based on this probability factor.

In some instances, the output o f a subgoal is affected by the nature o f other sub­ goals. Consider, for instance, a sequence o f subgoals p(X. T), q(T. Y). and suppose that tlie set o f values that the first subgoal derives for variable T are such that they do not form part o f the domain for the first argum ent in predicate q . Unless we keep track o f all inter­ mediate values for variable T (which is normally contrary to abstract interpretation prin­ ciples). we have no easy way to determ ine that predicate q will fail for all its inputs. By the same token, since we will not know the exact values o f the variables involved, we have no direct method to estimate the shape of the distribution o f attribute values for gen­ eral predicates. In our cost model, w e will ignore the issues o f independence o f subgoals and distribution for interm ediate results.

(33)

1 8

Once the determ ination o f the outputs o f the subgoals has been solved (that is. the equivalent o f the selection operation o f relational algebra), we need to couple different black boxes (i.e.. tackle the analogue o f the jo in and projection operations o f relational algebra). Several hurdles arise at this point, but the two m ost problem atic are the dupli­ cation o f solutions after a projection o f arguments (noted before) and the correlation be­ tween the arguments o f two or m ore different subgoals ( interdependence amongst sub­ goals). Our model in its present form does not tackle these issues.

Our model also handles recursive queries which, in the specific case o f GraphLog. are in the form o f a predicate closure. Specifically, our m ethodology estim ates the ex­ pected average num ber o f solutions o f a recursive predicate. The basic idea is that any linearly recursive query can be expressed as a transitive closure (possibly preceded and followed by some non-recursive predicates) [Jagadish87]. Therefore, we estimate the number o f solutions o f the recursive predicate by estim ating the num ber o f solutions o f an equivalent query expressed in terms o f transitive closure. Thus, we propose a method to estimate the average num ber o f solutions o f a transitive closure. .A.n entire chapter will be devoted to explain how ou r framework deals with recursive queries.

Other issues not currently considered by our cost model include (a) aliasing or shar­ ing o f a common variable within the same subgoal, (b) consideration o f invalid inputs, and (c) more complex form s o f recursion.

.A.S we will see in a subsequent chapter, more accurate results m ay be achieved when

the methodology is tailored to the specific abstract machine and the particular character­ istics o f the system used to execute the queries. If we wish to obtain m ore accurate re­ sults. we w ould also require specific knowledge o f the evaluation m ethods that are used (which is crucial when dealing with recursive queries) and the special optim ization tech­ niques that are im plem ented. Note that, under this scheme, a new analysis would be re­ quired for each different system . As can be seen, this process m ay becom e quite tedious. -A.n alternative, more general solution would require m aking rough assum ptions and con­ centrating on more “high-level” cost contributors. Thus, given a general evaluation strat­

(34)

1 9

o f a given GraphLog query without specific know ledge o f the particular abstract m a­ chine that is being used by the G raphLog system under consideration. O ur fram ework addresses both approaches, so that w e propose a m odel tailored to a specific m achine, the W AM [A it91 ]. as well as a model based on m ore “ high-level” cost contributors and relatively independent o f the underlying abstract m achine (Figure 1.6).

.Approach ~ 1 :

Model tailored to a specific machine

evaluation m ethod is know n optim izations also know n more accurate

w e m ay estim ate ex ecu tio n tim e s only valid for that particular m a­ chine

A pproach ? 2:

M odel based on “high level" cost contributors

• sp e c ific evalu ation m eth od and op ti­ m iz a tio n s u sed are u n k n ow n

• le ss accurate

• w e o n ly estim ate v a lu e s o f the cost contributors and not e x p e c te d tim es • m ore general

(35)

Chapter 2.

Cost Modeling

A cost model may be visualized as an abstraction that attempts to estim ate the efficiencv o f the actual execution o f some piece o f code ( in our case, a G raphLog query). Different param eters may be used to measure the degree o f efficiency. The m ost com m only used metrics are the time or memoty that are required to answ er the entire query. It can be ar­ gued that, as memory continues to become cheaper, em phasis should be given to estim at­ ing time efficiency rather than memory efficiency.

Different orderings o f the same group o f subgoals in a G raphLog query will usually result in a different degree o f ejficiency o f execution. Such a difference is due to many factors, ranging from some that are rather predictable (such as the size and nature o f the m achine code that is generated, or the series o f systematic code optim ization techniques that are performed) to those that are shaped by the current environment in which the pro­ gram is executed (such as current system load, or the num ber o f processes com peting for com m on resources). The latter considerations are hard to take into account and are nor­ mally ignored.

In this chapter, we start with an overview o f some issues related to query reordering in Catalog (which also apply to GraphLog). We also give a brief account o f some related work in the area o f query reordering.

2.1 Evaluation .Methods for Datalog

Given a Datalog program, a computational model that derives all the facts satisfying the user’s query is required. Normally, the chosen evaluation method com putes solutions ac­ cording to the so-called least fixpoint model [Ceri91 ].

Although pure Logic Programming does not include built-in predicates such as arithm etic or comparison operators, m ost implementations permit the use o f such predi­ cates. An additional useful construct not available in pure Datalog is the use o f negation.

(36)

2 1

N egation is often handled by using the closed world assumption, a m echanism o f nega­ tion as failure that states that the negation o f a fact that cannot be logically derived from the D atalog program is considered to be valid.

Several evaluation methods have been proposed for solving Datalog queries, i.e.. determ ining w hether a user's query is valid given the collection o f rules and facts that are formulated in the program. We can categorize these methods into two m ajor groups according to the general evaluation strategy, namely bottom-up and top-dow n evalua­ tions [Ceri91].

2.1.1 Bottom-up Evaluation

Bottom-up evaluation methods apply the principle o f m atching rules (usually called in­

tensional database predicates) against the facts (also called extensional database pred­

icates) to obtain valid values for the variables involved in the corresponding rules. Those

rules whose head variables acquire ground values are then considered in a sim ilar man­ ner to extensional database predicates, and the process is repeated until all necessary facts have been derived. Most bottom-up evaluation methods have been borrowed or adapted from well-known algorithms originally developed to solve systems o f equations in Numerical .Analysis (for example, the Jacobi algorithm for finding least fixpoints). Most extensions o f the basic algorithms are aim ed at avoiding duplication in the evalu­ ation o f intermediate solutions. Bottom-up evaluation is the natural method for set-ori­ ented languages like Datalog.

2.1.2 Top-down Evaluation

Top-down evaluation methods use the principle o f unification between a given subgoal

and the intensional or extensional database predicates. This process o f unification pro­ vides a set o f valid bindings that then are propagated to the other subgoals that constitute the query. A so-called derivation tree is generated. A fairly well-known method that is based on this resolution principle is the SLD -resolution procedure and its several exten­ sions (which constitute the evaluation m ethod o f choice for the language Prolog). Top- dow n evaluation is well-suited for solving sim ple transitive closure problems when the

(37)

extensional database relation has no cycles, or when ju s t one answer to the query is n eed­ ed.

In one o f the current im plem entations due to Fukar [Fukar91 ]. the query language G raphLog is translated into Prolog. Thus, the G raphLog database can be view ed as a Prolog database, and the executable program as a Prolog program. .A.s a result, under this particular implementation. GraphLog is evaluated using a top-down strategy. For this very reason, all cost models that we propose in this dissertation are tailored to a top-dow n evaluation strategy.

2.1.3 Safety C onsiderations

Safety' is an important issue related to the evaluation strategy that is chosen. G enerally speaking, a query is safe to evaluate if it has a finite num ber o f answers and the co m p u ­ tation that is perform ed to find them term inates, i.e.. all the answers are obtained a fter a finite num ber o f computations. For this reason, query safe tv- plays a very im portant rôle when a plan o f execution is selected. The issue o f the safety o f rules has been extensively studied in the literature and safety conditions have been derived for different logic pro­ gram m ing languages, and Datalog is not an exception [Bancilhon86].

2.1.4 Query Reordering in Datalog

In pure logic programming, both rules and subgoals can be reordered at will w ithout changing the meaning o f the program. In practice, som e orderings m ay yield m ore effi­ cient executions o f the program . However, we have already seen that som e orderings may lead to non-terminating computations.

A distinction exists betw een inherently non-term inating queries and queries w hose com putation does not term inate for just som e orderings. In this latter case, the reordering algorithm m ust reject such unsafe orderings.

(38)

The w o principal causes o f non-term inating com putations for otherw ise safe que­ ries are:

Evaluable predicates, i.e.. predicates that require that some o f their arguments have a ground value prior to the predicate invocation. This is a consequence o f the fact that built-in predicates usually deal with infinite relations. In general, if the predicate arguments do not have ground values before the call, the evaluable predicate will produce an infinite num ber o f answers. Typical exam ples o f eval­ uable predicates are arithmetic expressions and com parison operators. For in­ stance. consider the evaluable predicate plusfX. K Z) which represents the arith­ metic expression X + Y = Z. This predicate is unsafe if two or m ore arguments are not integer constants. Thus, a query such as . - plus(5. Y. Z) w ould yield an infinite number o f answers.

Negation, which is normally handled under the so-called Closed World Assump­

tion. considers anything that cannot be logically derived from the rules and facts

to be false. The Datalog fixpoint evaluation procedure handles negation by com ­ puting the complement o f the relation that is being negated. If the dom ain o f such a relation happens to be infinite, the com plem ent m ay be infinite too. For this rea­ son. the negation o f a predicate with at least one variable argum ent is a potential source for an infinite computation.

Safety rules for GraphLog have been form ulated by Fukar [Fukar91]. It is shown that, when GraphLog is translated into Prolog, safety is achieved when the following or­ der for the subgoals is observed: ( 1 ) positive (i.e.. non-negated) database predicates first: (2) evaluable predicates next; and(3) negated predicates last. However, this specification is harshly restrictive, since evaluable predicates and negations o f predicates are only un­ safe under certain circumstances.

A less limiting condition restricts evaluable and negated predicates to positions w here they are guaranteed to be safe. For the case o f evaluable predicates, we have to define a set o f lists o f arguments that are required to be ground in order to be safe (i.e.. yield a finite number o f answers). Figure 2.1 shows two exam ples o f such sets o f lists.

(39)

2 4

In the case o f negation o f predicates, we m ust guarantee that all argum ents become ground prior to the evaluation o f the predicate.

% built-in predicate >

% >( A.B) true if A is greater than B % A, B: integer values

This evaluable predicate is safe when both arguments are ground; otherwise it is not safe.

Set o f lists o f ground arguments that guarantees safety:

I [A.B] I

built-in predicate -

% -(.A.B.C) :- true if C = .A. minus B. °'o A. B, C: integer values

This evaluable predicate is safe when­ ever two or more arguments are ground; not safe otherwise.

Set o f lists o f required ground arguments that guarantees safety;

I [ A ^ ] . [A.C]. [B.C], [A.B.C] ! Figure 2.1 Sets of lists of arguments for two evaluable predicates that ensure safety

2.2 Some Recent Work on Query Reordering

Several cost models for logic programming languages have been proposed in the past. M cCarthy [McCarthy82] proposed the use o f graph-colouring algorithm s to m imic the evaluation process o f a conjunction o f literals. G ooley and Wah [Gooley89] suggested a heuristic method for reordering Prolog clauses using M arkov chains and probabilities for success and failure. McEnery and N ikolopoulos [M cEnery90] described a reordering system that rearranges non-recursive Prolog clauses by applying both static and dynamic reorderings; the dynamic reordering uses statistical information from previous execu­ tions. Sheridan [Sheridan91] designed a "bound-is-easier” heuristic algorithm for reor­ dering conjunctions o f literals by selecting subgoals containing ground argum ents to be placed before other subgoals. Wang. Yoo and C heatham [Wang93] developed a heuristic reordering system for C-Pro log based on the probability o f success or failure as estim at­ ed by a statistical profiler. Finally. Debray and Lin [Debray93] developed a m ethod for cost analysis o f Prolog programs based on know ledge about “ size" relationships between arguments o f predicates, this being specially aim ed to handle recursion (although some com m on cases o f recursion, such as transitive closure and chain recursion, are not solved at all).

(40)

2.2.1 Efficient Reordering o f Prolog Programs by Using M arkov C hains

G ooley and W ah's work [Gooley89] has proposed a m odel that approxim ates the evalu­ ation strategy o f Prolog programs by means o f a M arkov process. The cost is m easured as the num ber o f predicate calls or unifications that take place. The m ethod needs to know in advance the probability o f success and the cost o f execution o f each predicate.

Gooley and W ah's reordering method takes into account the fact that different lev­ els o f instantiation {modes) for the argum ents in the subgoals lead to different values o f probabilities and costs. .\ Markov chain is proposed for each valid calling mode. The values o f costs and the probabilities o f success are to be provided by the user (at least in the case o f the base predicates). To avoid exploring all perm utations o f the subgoals. G ooley and W ah propose the use o f a best-first search.

The m ethod also considers that there are som e orderings that must be rejected be­ cause o f safety conditions. However, no practical solution is given for recursiv e predi­ cates. The results for the simple Prolog programs that are presented have som e accept­ able ratios o f improvement, although the m ethod seem s to be quite expensive to im ple­ ment. .Appendix .A. 1.1 gives a more detailed view o f this method.

2.2.2 A M eta-Interpreter for Prolog Query O ptim ization

M cEnery and Nikolopoulos [McEnery90] describe a m eta-interpreter for Prolog which reorders clauses and predicates. It has two com ponents: (a) a static com ponent in charge o f rearranging the clauses "a priori”, and (b) a dynam ic com ponent that reorders the clauses according to probabilistic profiles built from previously answered queries.

This m ethod’s static reordering phase consists o f rearranging the clauses that define a predicate in such a way that the most successful clauses are tried first, and the subgoals w ithin a clause are reordered in descending order o f success likelihood.

Subgoal reordering is performed by using a generalization o f a heuristic due to D.H.D. W arren [W arrenSl]. Warren proposed a form ula for the cost c o f a sim ple query q as given by = sia. w here 5 is the size in tuples (i.e., the num ber o f solutions) o f the subgoal, and a is the product o f the sizes o f the dom ains o f each instantiated argum ent.

Referenties

GERELATEERDE DOCUMENTEN

Inmiddels zijn ze ook bezig om de fysieke ruimtes/omgeving van het ziekenhuis dusdanig te veranderen dat er meer beweegvriendelijke ruimtes komen (hometrainer) zodat patiënten

[r]

Een mogelijke verklaring is dat vanaf 1 miljoen jaar geleden het klimaat op aarde zó koud was dat gedurende een ijstijd de twee ijskap- pen die zich in Noord-Amerika vormden

De teksten van mijn conceptalbum zijn niet alleen slecht omdat ze door een onvolwassen schrijver zijn geschreven, maar het is ook duidelijk voor iedereen die ernaar zoekt dat ik

de mens zit dus gevangen in samsara (het rad van wedergeboorte), en karma is de 'motor' achter samsara iemand’s maatschappelijke stand / kaste + levensfase is de orde (dharma)

Op grond van de ingediende gegevens is de stadsbouwmeester van oordeel dat het plan, getoetst aan de criteria voor kleine bouwwerken (paragraaf 2.3. ingrepen in daken) van de door de

Guido van Amelsfoort, Jan van den Berg, Toon Berghahn, Jeroen Blok, Paul Bogaert, Aquil Copier, Jan Doms, Henk Duijn, Marianne van Hest, Han Klinkhamer, Hanneke Klinkum, Marjolein

Na een aantal minuten heb ik de patiënt opnieuw een bericht gestuurd ‘Wist je dat je 1,5% van je spieren kan verliezen wanneer je 1 dag niet beweegt!’ De persoon keek opnieuw op