| |
| |
| |
Introduction | |
| |
| |
| |
ORDBMS: The Next Great Wave | |
| |
| |
| |
Extensible DBMS | |
| |
| |
| |
Overview | |
| |
| |
| |
Background on User-Defined Routines | |
| |
| |
| |
User-Defined Routines | |
| |
| |
| |
Definition, Implementation, and Execution of New UDR | |
| |
| |
| |
User-Defined Scalar Functions | |
| |
| |
| |
User-Defined Aggregate Functions | |
| |
| |
| |
User-Defined Table Functions | |
| |
| |
| |
User-Defined Functions and Large Objects | |
| |
| |
| |
Comparison with Stored Procedures | |
| |
| |
| |
Optimization of Queries with UDF | |
| |
| |
| |
Parallel Processing of User-Defined Functions | |
| |
| |
| |
Introduction | |
| |
| |
| |
Limits of Current ORDBMS | |
| |
| |
| |
Parallel Processing of UDF | |
| |
| |
| |
Two Step Parallel Aggregation of UDAF | |
| |
| |
| |
Partitioning Classes and Partitionable Functions | |
| |
| |
| |
Parallel Sorting as a Preprocessing Step for UDAF | |
| |
| |
| |
Extended Syntax for Function Registration | |
| |
| |
| |
Example Applications | |
| |
| |
| |
The UDAF Most_Frequent | |
| |
| |
| |
The UDSF Running_Average | |
| |
| |
| |
The UDAF Median | |
| |
| |
| |
Further Applications | |
| |
| |
| |
Plausibility Considerations Regarding Performance | |
| |
| |
| |
Related Work | |
| |
| |
| |
Summary | |
| |
| |
| |
Intra-function Parallelism | |
| |
| |
| |
Introduction | |
| |
| |
| |
Compose/Decompose Operators for Intra-function Parallelism | |
| |
| |
| |
Compose/Decompose Operators | |
| |
| |
| |
Extensibility of Compose Operators by Combine Functions | |
| |
| |
| |
Application of Intra-function Parallelism | |
| |
| |
| |
Intra-function Parallelism for Function Pipelines | |
| |
| |
| |
Experimental Performance Study | |
| |
| |
| |
Experimental Scenario and Implementation | |
| |
| |
| |
Performance Results | |
| |
| |
| |
Related Work | |
| |
| |
| |
Summary | |
| |
| |
| |
The Multi-operator Method | |
| |
| |
| |
Introduction | |
| |
| |
| |
Performance Problems with Complex UDF in Current ORDBMS | |
| |
| |
| |
The PBSM Algorithm as a Sophisticated UDP Implementation | |
| |
| |
| |
The Multi-operator Method as a New Technique to Implement Complex UDF | |
| |
| |
| |
The Multi-operator Method and Its Benefits | |
| |
| |
| |
A Multi-operator Implementation of the PBSM Algorithm | |
| |
| |
| |
Supporting the Multi-operator Method | |
| |
| |
| |
Executing Query Execution Plans | |
| |
| |
| |
Example for a Textual Specification of Query Execution Plans | |
| |
| |
| |
Parallel Evaluation | |
| |
| |
| |
Performance Evaluation | |
| |
| |
| |
Experimental Scenario | |
| |
| |
| |
Performance Results | |
| |
| |
| |
Related Work | |
| |
| |
| |
Summary | |
| |
| |
| |
User-Defined Table Operators | |
| |
| |
| |
Introduction | |
| |
| |
| |
User-Defined Table Operators | |
| |
| |
| |
A Generalization Relationship for Row Types | |
| |
| |
| |
Defining and Implementing UDTO | |
| |
| |
| |
The Different Usages of the UDTO Concept | |
| |
| |
| |
Parallel Processing of Procedural UDTO | |
| |
| |
| |
Extension to Multiple Output Tables | |
| |
| |
| |
Example Applications for UDTO | |
| |
| |
| |
Computing a Spatial Join | |
| |
| |
| |
Different UDTO for the Same Predicate | |
| |
| |
| |
Computing the Median: An Aggregation Operator | |
| |
| |
| |
A UDTO for a Complex Aggregation | |
| |
| |
| |
Association Rule Mining | |
| |
| |
| |
Related Work | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Implementation of UDTO | |
| |
| |
| |
Introduction | |
| |
| |
| |
The MIDAS Prototype | |
| |
| |
| |
Architectural Overview | |
| |
| |
| |
Query Compilation and Execution | |
| |
| |
| |
The MIDAS System Tables | |
| |
| |
| |
UDSF in MIDAS | |
| |
| |
| |
Implementation of SQL Macros | |
| |
| |
| |
DDL Statements | |
| |
| |
| |
SQL Macro Expansion in DML Statements | |
| |
| |
| |
Expanding SQL Macros in Preprocessors and Middleware | |
| |
| |
| |
Implementation of Procedural UDTO | |
| |
| |
| |
Extensions to the SQL Compiler | |
| |
| |
| |
Extensions to the Optimizer and the Parallelizer | |
| |
| |
| |
Extensions to the Scheduler | |
| |
| |
| |
Extensions to the Execution Engine | |
| |
| |
| |
Extensions to Transaction Management | |
| |
| |
| |
Implementation of Input and Output Tables | |
| |
| |
| |
Optimization Issues for UDTO | |
| |
| |
| |
UDTO and Implied Predicates | |
| |
| |
| |
Estimating Costs and Selectivity of UDTO | |
| |
| |
| |
Application of Traditional Optimization Rules | |
| |
| |
| |
Using UDTO to Generate Alternative Execution Plans for UDF | |
| |
| |
| |
Evaluation of the Implementation | |
| |
| |
| |
Evaluation of SQL Macros | |
| |
| |
| |
Evaluation of Procedural UDTO | |
| |
| |
| |
Summary | |
| |
| |
| |
Summary, Conclusions, and Future Work | |
| |
| |
| |
Summary | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Future Work | |
| |
| |
References | |
| |
| |
References | |
| |
| |
Appendix A | |
| |
| |
| |
The Program sequential_invert | |
| |
| |
| |
The Program parallel_invert | |
| |
| |
| |
The Query Execution Plan for the Spatial Join with SQL Macro | |