Claims
- 1. A method for performing queries in an on-line analytical processing (OLAP) system, comprising:(a) translating the query into an operator tree comprised of a plurality of operators; (b) independently executing each of the operators in the operator tree; (c) detecting an exception in one or more of the independently executed operators of the operator tree; and (d) propating the detected exceptions to remaining ones of the independently executed operators of the operator tree by recycling empty data pages, piggybacking the detected exceptions on the recycled data pages, and sending the recycled data pages to the remaining ones of the independently executed operators of the operator tree in a bi-directional flow, wherein the detected exceptions are propagated downward as well as upward in the operator tree.
- 2. The method of than 1, wherein streams connect the independently executed operators, and move data from one operator to another operator in a pipelined fashion.
- 3. The method of claim 1, wherein the independently executed operators operate in a push fashion, in which data flows upwards to operators higher in the operator tree.
- 4. The method of claim 1, wherein the propagating step comprise propagating the detected exceptions to the remaining ones of the independently executed operators transitively feeding to the operator that detected the exceptions as well as to the remaining ones of the independently executed operators transitively red from the operator that detected the exceptions.
- 5. The method of claim 1, wherein the recycled data pages were previously used to transmit data upwards in the operator tree.
- 6. The method of claim 1, further comprising delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interrupting the operators.
- 7. The method of claim 1, wherein the delivering step comprises delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interupting the operators, by delivering exceptions piggybacked on the recycled data pages at one or more points at which the operator normally reads or wastes data from its input stream.
- 8. The method of claim 1, further comprising terminating the operators using a depth-first traversal of the operator tree.
- 9. The method of claim 1, wherein each of the operators of the operator tree includes a persistent state variable that tracks whether the operator has terminated or not, and that survives the termination of an operator.
- 10. The method of claim 9, wherein the persistent state variable is checked during the depth-first traversal to determine whether the operator has terminated.
- 11. An on-line analytical processing (OLAP) system that performs queries, comprising:(a) a computer system; (b) logic, performed by the computer system, for: (1) translating the query into an operator tree comprised of a plurality of operators; (2) independently executing each of the operators in the operator tree; (3) detecting an exception in one or more of the independently executed operators of the operator tree; and (4) propagating the detected exceptions to remaining ones of the independently executed operators of the operator tree by recycling empty data pages, piggybacking the detected exceptions on the recycled data pages, and sending the recycled data pages to the remaining ones of the independently executed operators of the operator tree in a bi-directional flow, wherein the detected exceptions are propagated downward as well as upward in the operator tree.
- 12. An article of manufacture embodying logic for performing queries in an on-line analytical processing (OLAP) system, the logic comprising:(a) translating the query into an operator tree comprised of a plurality of operators; (b) independently executing each of the operators in the operator tree; (c) detecting an exception in one or more of the independently executed operators of the operator tree; and (d) propagating the detected exceptions to remaining ones of the independently executed operators of the operator tree by reducing empty data pages, piggybacking the detected exceptions on the recycled data pages, and sending the recycled data pages to the remaining ones of the independently executed operators of the operator tree in a bi-directional flow, wherein the detected exceptions are propagated downward as well as upward in the operator tree.
- 13. The system of claim 11, wherein streams connect the independently executed operators, and more data from one operator to another operator in a pipelined fashion.
- 14. The system of claim 11, wherein the independently executed operators operate in a push fashion, in which data flows upwards to operators higher in the operator tree.
- 15. The system of claim 11, wherein the logic for propagating comprises logic for propagating the detected exceptions to the remaining ones of the independently executed operators transitively feeding to the operator that detected the exceptions as well as to the remaining ones of the independently executed operators transitively fed from the operator that detected the exceptions.
- 16. The system of claim 11, wherein the recycled data pages were previously used to transmit data upwards in the operator tree.
- 17. The system of claim 11, further comprising logic for delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interrupting the operators.
- 18. The system of claim 11, wherein the logic for delivering comprises logic for delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interrupting the operators, by delivering exceptions piggybacked on the recycled data pages at one or mote points at which the operator normally reads or writes data from its input stream.
- 19. The system of claim 11, further comprising logic for terminating the operators using a depth-first traversal of the operator tree.
- 20. The system of claim 11, wherein each of the operators of the operator tree includes a persistent state variable that tracks whether the operator has terminated or not, and that survives the termination of an operator.
- 21. The system of claim 20, wherein the persistent state variable is checked during the depth-first traversal to determine whether the operator has terminated.
- 22. The article of manufacture of claim 12, wherein streams connect the independently executed operators, and move data from one operator to another operator in a piplined fashion.
- 23. The article of manufacture of claim 12, wherein the independently executed operators operate in a push fashion, in which data flows upwards to operators higher in the operator tree.
- 24. The article of manufacture of claim 12, wherein the propagating step comprises propagating the detected exceptions to the remaining ones of the independently executed operators transitively feeding to the operator that detected the exceptions as well as to the remaining ones of the independently executed operators transitively fed from the operator that detected the exceptions.
- 25. The article of manufacture of claim 12, wherein the recycled data pages were previously used to transit data upwards in the operator tree.
- 26. The article of manufacture of claim 12, further comprising delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interrupting the operators.
- 27. The article of manufacture of claim 12, wherein the delivering step comprises delivering the propagated exceptions to each of the remaining ones of the independently executed operators of the operator tree, without interupting the operators, by delivering exceptions piggybacked on the recycled darn pages at one or more points at which tie operator nominally reads or writes data from its input stream.
- 28. The article of manufacture of claim 12, further comprising terminating the operators using a depth-first traversal of the operator tree.
- 29. The article of manufacture of claim 12, wherein each of the operators of the operator tree includes a persistent state variable that tracks whetter the operator has terminated or not, and that survives the termination of an operator.
- 30. The article of manufacture of claim 29, wherein the persistent state variable is checked during the depth-first traversal to determine whether the operator has terminated.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to the following and commonly assigned patent applications, all of which are incorporated by reference herein:
application Ser. No. 09/583,633, entitled “SIMULTANEOUS COMPUTATION OF MULTIPLE MOVING AGGREGATES IN A RELATIONAL DATABASE MANAGEMENT SYSTEM,” filed on May 31, 2000, by Kartikeyan Ramasamy, Prasad M. Deshpande, Amit Shukla, and Jeffrey F. Naughton;
application Ser. No. 09/605,202, entitled “METHOD FOR DETERMINING THE COMPUTABILITY OF DATA FOR AN ACTIVE MULTI-DIMENSIONAL CACHE IN A RELATIONAL DATABASE MANAGEMENT SYSTEM,” filed on Jun. 27, 2000, by Prasad M. Deshpande, Karthikeyan Ramasamy, Amit Shukla, and Jeffrey F. Naughton;
application Ser. No. 09/583,364, entitled “ACTIVE CACHING FOR MULTI-DIMENSIONAL DATA SETS IN A RELATIONAL DATABASE MANAGEMENT SYSTEM,” filed on May 31, 2000, by Prasad M. Deshpande, Karthikeyan Ramasamy, Amit Shukla, and Jeffrey F. Naughton; and
application Ser. No. 09/449,085, entitled “QUERY MONITOR PLAYBACK MECHANISM FOR POST-MORTEM PERFORMANCE ANALYSIS,” filed on Nov. 24, 1999, by Karthikeyan Ramasamy, Jie-Bing Yu, and Jun Li.
US Referenced Citations (13)
Number |
Name |
Date |
Kind |
5428807 |
McKeen et al. |
Jun 1995 |
A |
5680603 |
Bhargava et al. |
Oct 1997 |
A |
5717919 |
Kodavalla et al. |
Feb 1998 |
A |
5778219 |
Amerson et al. |
Jul 1998 |
A |
5855012 |
Bhargava et al. |
Dec 1998 |
A |
5857180 |
Hallmark et al. |
Jan 1999 |
A |
5937401 |
Hillegas |
Aug 1999 |
A |
5940819 |
Beavin et al. |
Aug 1999 |
A |
6021405 |
Celis et al. |
Feb 2000 |
A |
6243710 |
DeMichiel et al. |
Jun 2001 |
B1 |
6349310 |
Klein et al. |
Feb 2002 |
B1 |
6421663 |
Chen et al. |
Jul 2002 |
B1 |
6434544 |
Bakalash et al. |
Aug 2002 |
B1 |
Non-Patent Literature Citations (1)
Entry |
N. Kabra and D.J. DeWitt, (1999) “OPT ++: an object-oriented implementation for extensible database query optimization,” The VLDB Journal 8:55-78. |