Adaptable query optimization and evaluation in temporal middleware
First Claim
1. A database-based application comprising means for processing temporal queries from a user capable of entering queries, said application comprising the following layers:
- a user application layer for interaction between the user and said database-based application for entering queries, a middleware layer overlying a Database Management System (DBMS) and said middleware layer being intended for processing temporal queries from the user, the Database Management System (DBMS) layer for processing queries and for accessing data in a database, said database-based application further comprising;
means for generating a number of query plans according to queries having been entered by the user by means of said user application layer, each said query plan specifying combinations of operations to be performed and establishing whether the operation should be performed in the middleware layer or the DBMS layer, means for estimating the cost in processing resources according to each said query plan, means for selecting, according to a criteria, which query plan to be used when processing a query, said criteria being based on the result from said cost calculating means.
1 Assignment
0 Petitions
Accused Products
Abstract
Time-referenced data are pervasive in most real-world databases. Recent advances in temporal query languages show that such database applications may benefit substantially from built-in temporal support in the DBMS. To achieve this, temporal query optimization and evaluation mechanisms must be provided, either within the DBMS proper or as a source level translation from temporal queries to conventional SQL. This invention proposes a new approach: using a middleware component on top of a conventional DBMS. This component accepts temporal SQL statements and produces a corresponding query plan consisting of algebraic as well as regular SQL parts. The algebraic parts are processed by the middleware, while the SQL parts are processed by the DBMS. The middleware uses performance feedback from the DBMS to adapt its partitioning of subsequent queries into middleware and DBMS parts. The invention comprises the architecture and implementation of the temporal middleware component, termed TANGO, which is based on the Volcano extensible query optimizer and the XXL query processing library. Experiments with the system demonstrate the utility of the middleware'"'"'s internal processing capability and its cost-based mechanism for apportioning the processing between the middleware and the underlying DBMS.
-
Citations
14 Claims
-
1. A database-based application comprising means for processing temporal queries from a user capable of entering queries, said application comprising the following layers:
-
a user application layer for interaction between the user and said database-based application for entering queries, a middleware layer overlying a Database Management System (DBMS) and said middleware layer being intended for processing temporal queries from the user, the Database Management System (DBMS) layer for processing queries and for accessing data in a database, said database-based application further comprising;
means for generating a number of query plans according to queries having been entered by the user by means of said user application layer, each said query plan specifying combinations of operations to be performed and establishing whether the operation should be performed in the middleware layer or the DBMS layer, means for estimating the cost in processing resources according to each said query plan, means for selecting, according to a criteria, which query plan to be used when processing a query, said criteria being based on the result from said cost calculating means. - View Dependent Claims (2, 3, 4)
-
-
5. A database-based application comprising means for processing temporal queries from a user entering a number of queries, said application comprising the following layers:
-
a user application layer for interaction between the user and said database-based application for entering queries, a Database Management System (DBMS) layer for processing queries and for accessing data in a database, said database-based application further comprising;
means for generating a number of query plans according to queries having been entered by the user by means of said user application layer each said query plan capable of specifying combinations of operations to be performed, means for estimating the cost in processing resources according to each said query plan by estimating the selectivity of a temporal selection, said estimate of the selectivity intended for being performed by using the information that an end time of a period never precedes a start time of the period. - View Dependent Claims (6)
-
-
7. A database-based application comprising means for processing temporal queries from a user capable of entering queries, said application comprising the following layers:
-
a user application layer for interaction between the user and said database based application for entering queries by the user, a Database Management System (DBMS) layer for processing queries and accessing the data in a database, said database-based application further comprising means for performing temporal aggregation, said means intended for performing temporal aggregation and comprising;
means for sorting grouping attributes and corresponding start time of a period in a first table, and means for sorting the grouping attributes and corresponding end time of the period in a second table, and means for performing the temporal aggregation by using said first and second table.
-
-
8. A method of processing queries in a database-based application, said application comprising the layers
a user application layer being used for interaction between the user and said database based application for entering a number of queries by the user, a middleware layer being used for processing temporal queries, a Database Management System (DBMS) layer being used for processing queries and accessing the data in a database, said method performing the steps of: -
generating a number of query plans according to queries entered by the user, each query plan specifying combinations of operations to be performed and establishing whether the operation should be performed in the middleware layer or in the DBMS layer, estimating the cost in processing resources according to each query plan, selecting, according to a criteria, which query plan to be used when processing a query, said criteria being based on the result from said step of calculating the cost. - View Dependent Claims (9, 10, 11)
-
-
12. A method of processing queries in a database-based application, said application comprising the following layers:
-
a user application layer being used for interaction between the user and said database based application for entering queries by the user, a middleware layer overlying a Database Management System (DBMS) and said middleware layer being intended for processing temporal queries, a Database Management System (DBMS) layer for processing queries and for accessing the data in a database, said method performing the steps of;
generating a number of query plans according to queries entered by the user, each query plan specifying combinations of operations to be performed, estimating the cost in processing resources according to each query plan by estimating the selectivity of a temporal selection, said estimate of the selectivity being performed using the information that an end time of a period never precedes a start time of the period. - View Dependent Claims (13)
-
-
14. A method of processing queries in a database based application, said application comprising the following layers:
-
a user application layer being used for interaction between the user and said database based application for entering queries by the user, a middleware layer overlying a Database Management System (DBMS) and said middleware layer being intended for processing temporal queries, the Database Management System (DBMS) layer for processing queries and for accessing the data in a database, said method performing temporal aggregation, said performing of temporal aggregation comprising the steps of;
sorting the grouping attributes and a corresponding start time of a period in a first table, and sorting the grouping attributes and a corresponding end time of the period in a second table, performing the temporal aggregation using said first and second table.
-
Specification