| Introduction | |
| ORDBMS: The Next Great Wave | p. 1 |
| Extensible DBMS | p. 2 |
| Overview | p. 3 |
| Background on User-Defined Routines | |
| User-Defined Routines | p. 5 |
| Definition, Implementation, and Execution of New UDR | p. 6 |
| User-Defined Scalar Functions | p. 7 |
| User-Defined Aggregate Functions | p. 9 |
| User-Defined Table Functions | p. 10 |
| User-Defined Functions and Large Objects | p. 11 |
| Comparison with Stored Procedures | p. 12 |
| Optimization of Queries with UDF | p. 12 |
| Parallel Processing of User-Defined Functions | |
| Introduction | p. 14 |
| Limits of Current ORDBMS | p. 15 |
| Parallel Processing of UDF | p. 17 |
| Two Step Parallel Aggregation of UDAF | p. 17 |
| Partitioning Classes and Partitionable Functions | p. 18 |
| Parallel Sorting as a Preprocessing Step for UDAF | p. 21 |
| Extended Syntax for Function Registration | p. 22 |
| Example Applications | p. 24 |
| The UDAF Most_Frequent | p. 24 |
| The UDSF Running_Average | p. 25 |
| The UDAF Median | p. 25 |
| Further Applications | p. 26 |
| Plausibility Considerations Regarding Performance | p. 28 |
| Related Work | p. 30 |
| Summary | p. 31 |
| Intra-function Parallelism | |
| Introduction | p. 33 |
| Compose/Decompose Operators for Intra-function Parallelism | p. 34 |
| Compose/Decompose Operators | p. 34 |
| Extensibility of Compose Operators by Combine Functions | p. 36 |
| Application of Intra-function Parallelism | p. 37 |
| Intra-function Parallelism for Function Pipelines | p. 38 |
| Experimental Performance Study | p. 39 |
| Experimental Scenario and Implementation | p. 39 |
| Performance Results | p. 41 |
| Related Work | p. 43 |
| Summary | p. 44 |
| The Multi-operator Method | |
| Introduction | p. 45 |
| Performance Problems with Complex UDF in Current ORDBMS | p. 46 |
| The PBSM Algorithm as a Sophisticated UDP Implementation | p. 47 |
| The Multi-operator Method as a New Technique to Implement Complex UDF | p. 49 |
| The Multi-operator Method and Its Benefits | p. 49 |
| A Multi-operator Implementation of the PBSM Algorithm | p. 51 |
| Supporting the Multi-operator Method | p. 53 |
| Executing Query Execution Plans | p. 53 |
| Example for a Textual Specification of Query Execution Plans | p. 55 |
| Parallel Evaluation | p. 55 |
| Performance Evaluation | p. 56 |
| Experimental Scenario | p. 56 |
| Performance Results | p. 62 |
| Related Work | p. 64 |
| Summary | p. 65 |
| User-Defined Table Operators | |
| Introduction | p. 67 |
| User-Defined Table Operators | p. 68 |
| A Generalization Relationship for Row Types | p. 68 |
| Defining and Implementing UDTO | p. 69 |
| The Different Usages of the UDTO Concept | p. 74 |
| Parallel Processing of Procedural UDTO | p. 77 |
| Extension to Multiple Output Tables | p. 80 |
| Example Applications for UDTO | p. 81 |
| Computing a Spatial Join | p. 81 |
| Different UDTO for the Same Predicate | p. 85 |
| Computing the Median: An Aggregation Operator | p. 89 |
| A UDTO for a Complex Aggregation | p. 90 |
| Association Rule Mining | p. 94 |
| Related Work | p. 101 |
| Summary and Conclusions | p. 102 |
| Implementation of UDTO | |
| Introduction | p. 106 |
| The MIDAS Prototype | p. 106 |
| Architectural Overview | p. 107 |
| Query Compilation and Execution | p. 108 |
| The MIDAS System Tables | p. 111 |
| UDSF in MIDAS | p. 112 |
| Implementation of SQL Macros | p. 113 |
| DDL Statements | p. 113 |
| SQL Macro Expansion in DML Statements | p. 115 |
| Expanding SQL Macros in Preprocessors and Middleware | p. 116 |
| Implementation of Procedural UDTO | p. 123 |
| Extensions to the SQL Compiler | p. 123 |
| Extensions to the Optimizer and the Parallelizer | p. 125 |
| Extensions to the Scheduler | p. 126 |
| Extensions to the Execution Engine | p. 126 |
| Extensions to Transaction Management | p. 128 |
| Implementation of Input and Output Tables | p. 131 |
| Optimization Issues for UDTO | p. 134 |
| UDTO and Implied Predicates | p. 134 |
| Estimating Costs and Selectivity of UDTO | p. 135 |
| Application of Traditional Optimization Rules | p. 137 |
| Using UDTO to Generate Alternative Execution Plans for UDF | p. 138 |
| Evaluation of the Implementation | p. 139 |
| Evaluation of SQL Macros | p. 140 |
| Evaluation of Procedural UDTO | p. 142 |
| Summary | p. 144 |
| Summary, Conclusions, and Future Work | |
| Summary | p. 145 |
| Conclusions | p. 146 |
| Future Work | p. 149 |
| References | |
| References | p. 151 |
| Appendix A | |
| The Program sequential_invert | p. 157 |
| The Program parallel_invert | p. 158 |
| The Query Execution Plan for the Spatial Join with SQL Macro | p. 159 |
| Table of Contents provided by Publisher. All Rights Reserved. |