Fast algorithms for computing semijoin reduction sequences
First Claim
1. A method for executing an outer join query in which all joins are evaluated by semijoins, the method comprising:
- generating a query graph of nodes and target nodes for a query, comprising;
computing for each node the set of nodes influencing it;
computing for each target node the set of its needed reducers;
predetermining the effects of admissible move sequences;
forming a directed graph for the admissible move sequences; and
performing an optimization process, using a search algorithm on the directed graph to determine a least-cost execution plan for the query.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for using optimization techniques to construct a nearly optimal execution plan for an outer join query are disclosed. A query graph of the outer join query is constructed, by computing for each node the set of nodes influencing it, for each target node the set of its needed reducers, and predetermining the effects of all admissible moves in all possible sequences. The directed graph of all admissible move sequences is formed. An optimization process includes dynamically generating good estimations for the target distance of a search state. Some heuristics are disclosed for providing start solutions for the optimization process.
33 Citations
20 Claims
-
1. A method for executing an outer join query in which all joins are evaluated by semijoins, the method comprising:
-
generating a query graph of nodes and target nodes for a query, comprising; computing for each node the set of nodes influencing it; computing for each target node the set of its needed reducers; predetermining the effects of admissible move sequences; forming a directed graph for the admissible move sequences; and performing an optimization process, using a search algorithm on the directed graph to determine a least-cost execution plan for the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for executing an outer join query in which all joins are evaluated by semijoins, the method comprising:
-
generating a query graph of nodes and target nodes for the query; and performing an optimization process, using a search algorithm on the directed graph to determine a least-cost execution plan for the query. - View Dependent Claims (10, 11, 13, 14, 15, 18, 19)
-
-
16. A method in accordance with claim 12, wherein the start heuristics is selected from a set of start heuristics that contains:
- a star heuristic, a snake heuristic, and heuristics of local and global improvement on other heuristics.
- View Dependent Claims (17)
-
20. A computer program product, embodied on tangible media, the computer program product including pieces of executable code to cause a data processing apparatus to perform operations comprising:
-
executing an outer join query in which all joins are evaluated by semijoins, the outer join query comprising; generating a query graph of nodes and target nodes for a query, comprising; computing for each node the set of nodes influencing it; computing for each target node the set of its needed reducers; predetermining the effects of admissible move sequences; forming a directed graph for the admissible move sequences; and performing an optimization process, using a search algorithm on the directed graph to determine a least-cost execution plan for the query.
-
Specification