The Case for Enhanced Abstract Data Types

Support for complex data in object-relational database systems is based on abstract data types (ADTs). We argue that the current ADT approach inhibits the performance of queries that involve expensive operations on data types. Instead, we propose the Enhanced Abstract Data Type (E-ADT) paradigm, which treats operations on data types as declarative expressions that can be optimized. In this paper, we describe the E-ADT paradigm and PREDATOR, an object-relational database system based on E-ADTs. An E-ADT is an abstract data type enhanced with query optimization. Not only does an E-ADT provide operations (or methods) that can be used in SQL queries, it also supports internal interfaces that can be invoked to optimize these operations. This added functionality is provided without compromising the modularity of data types and the extensibility of the type system. Building such a database system requires fundamental changes in the architecture of the query processing engine; we present the system-level interfaces of PREDATOR that support E-ADTs, and describe the internal design details. Initial performance results from supporting image, time-series, and audio data as E-ADTs demonstrate an order of magnitude in performance improvements over the current ADT approach. Further, we describe how the E-ADT paradigm enables future research that can improve several aspects of object-relational query optimization. Consequently, we make the case that next-generation object-relational database systems should be based on E-ADT technology.

[1]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974, SIGPLAN Symposium on Very High Level Languages.

[2]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1976, Software Pioneers.

[3]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[4]  Michael Stonebraker,et al.  Application of Abstract Data Types and Abstract Indices to CAD Data Bases , 1986, Engineering Design Applications.

[5]  Michael Stonebraker,et al.  Inclusion of new types in relational data base systems , 1986, 1986 IEEE Second International Conference on Data Engineering.

[6]  Paul Helman,et al.  Understanding and Extending Transformation-Based Optimizers. , 1986 .

[7]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[8]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[9]  Edward Sciore,et al.  A modular query optimizer generator , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[10]  Michael Stonebraker,et al.  The Implementation of Postgres , 1990, IEEE Trans. Knowl. Data Eng..

[11]  Patrick Valduriez,et al.  Extending the Search Strategy in a Query Optimizer , 1991, VLDB.

[12]  A General Framework for the Optimization of Object-Oriented Queries , 1992, SIGMOD Conference.

[13]  Kyuseok Shim,et al.  Query Optimization in the Presence of Foreign Functions , 1993, VLDB.

[14]  Goetz Graefe,et al.  The Volcano optimizer generator: extensibility and efficient search , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

[15]  Michael Stonebraker,et al.  The SEQUOIA 2000 storage benchmark , 1993, SIGMOD '93.

[16]  Gottfried Vossen,et al.  Query Processing for Advanced Database Systems , 1993 .

[17]  Stanley B. Zdonik,et al.  Control of an Extensible Query Optimizer: A Planning-Based Approach , 1993, VLDB.

[18]  M. Stonebraker,et al.  The Sequoia 2000 Benchmark , 1993, SIGMOD Conference.

[19]  R. G. G. Cattell,et al.  The Object Database Standard: ODMG-93 , 1993 .

[20]  David J. DeWitt,et al.  Client-Server Paradise , 1994, VLDB.

[21]  Limsoon Wong,et al.  Querying Nested Collections , 1994 .

[22]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

[23]  Surajit Chaudhuri,et al.  Join queries with external text sources: execution and optimization techniques , 1995, SIGMOD '95.

[24]  Karl Aberer,et al.  Semantic query optimization for methods in object-oriented database systems , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

[25]  Stanley B. Zdonik,et al.  The AQUA approach to querying lists and trees in object-oriented databases , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

[26]  Joseph M. Hellerstein,et al.  Optimization and Execution Techniques for Queries With Expensive Methods , 1996, Technical Report / University of Wisconsin, Madison / Computer Sciences Department.

[27]  José A. Blakeley,et al.  Data access for the masses through OLE DB , 1996, SIGMOD '96.

[28]  Stanley B. Zdonik,et al.  Rule languages and internal algebras for rule-based optimizers , 1996, SIGMOD '96.

[29]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[30]  Joseph M. Hellerstein,et al.  Optimization techniques for queries with expensive methods , 1998, TODS.

[31]  Surajit Chaudhuri,et al.  Optimization of queries with user-defined predicates , 1996, TODS.