Patent US5703960A successfully refreshed from Google Patents.
Patent US6339772B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6339772B1 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for performing database operations on a continuous stream of tuples

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1999-07-06
•
Granted: 2002-01-15
•
Expires: 2019-07-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The SQL compiler and SQL executor in a database management system are extended to process queries requiring streaming mode processing of data stored in a table. A scan operator performs table access functions during execution of the streaming mode query. The scan operator first performs an initial scan to access rows in a specified database table, and then performs a delta scan to access new rows added to the table, as well as rows modified by other queries. The scan operator continues to process new data added to the table until the initiating user or application closes the associated cursor. A set of data structures are provided to keep track of active scan operators, including a session control block that includes fields for keeping track of whether the scan operator is performing an initial scan or a delta scan. The session control block also includes, for streaming mode scan operators, a delta scan list of new and modified rows to be processed in the delta scan. When a transaction terminates, any streaming mode scan operators whose operation was suspended because of rows locked by the transaction are automatically rescheduled for execution.

Inventors

  • 👤 Johannes Klein
  • 👤 Robbert C. Van der Linden
  • 👤 Raj K. Rathee
  • 👤 Hansjorg Zeller

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 21:42
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2455; G06F16/24568; G06F16/24553; G06F16/24554; G06F16/24557; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933; Y10S707/99934; Y10S707/99935

Claims Analysis

Total Claims: 41
Claim 1
Independent Claim 132 words
A method of processing a stream of data in a database management system, in accordance with a specified query, comprising: using a scan operator, performing an initial scan to access a defined range of rows in the database table; while performing the initial scan, building a list of rows that are added to the database table during the initial scan and that are to be accessed by the scan operator after the initial scan; using the scan operator, performing a secondary scan to access rows in the list, including accessing the rows in the list that are not locked; while performing the secondary scan, adding to the list of rows additional rows added to the database table after the initial scan; and processing the accessed rows in accordance with the specified query.
Claim 2
Independent Claim 132 words
A method of processing a stream of data in a database management system, in accordance with a specified query, comprising: using a scan operator, performing an initial scan to access a defined range of rows in the database table; while performing the initial scan, building a list of rows that are added to the database table during the initial scan and that are to be accessed by the scan operator after the initial scan; using the scan operator, performing a secondary scan to access rows in the list, including accessing the rows in the list that are not locked; while performing the secondary scan, adding to the list of rows additional rows added to the database table after the initial scan; and processing the accessed rows in accordance with the specified query.
Claim 3
Dependent Claim 43 words
The method of claim 1 , during the secondary scan, removing from the list each unlocked row accessed by the scan operator during the secondary scan; and suspending operation of the secondary scan when all unlocked rows in the list have been accessed.
Claim 4
Dependent Claim 27 words
The method of claim 2 , when a locked row in the database table is unlocked by a terminating transaction, scheduling the secondary scan to resume operation.
Claim 5
Dependent Claim 30 words
The method of claim 2 , when a transaction that has added rows to the database table aborts, removing from the list the rows that were added to the table.
Claim 6
Dependent Claim 17 words
The method of claim 2 , further including deleting each unlocked row accessed by the scan operator.
Claim 7
Dependent Claim 64 words
The method of claim 1 , further including storing for the scan operator at least one data structure having fields for storing information indicating: a range of rows to be accessed by the scan operator, whether the scan operator is performing an initial scan, whether the scan operator is performing a secondary scan; the at least one data structure including the list of rows.
Claim 8
Dependent Claim 72 words
The method of claim 1 , wherein when the query specifies that any rows of the database table locked in conflicting modes are to be skipped, each conflicting mode preventing the scan operator from accessing the locked rows, the method includes: while performing the initial scan: skipping over the rows, if any, locked in the conflicting modes; and adding to the list of rows the locked rows skipped during the initial scan.
Claim 9
Dependent Claim 147 words
A database management system, comprising: a database, including a plurality of tables, each table storing data in one or more rows; an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: initial scan instructions for performing an initial scan to access the defined range of rows in the specified table; a list data structure for storing a list of references to rows in the specified table that are to be accessed by the scan operator after the initial scan, the list of references including references to rows, if any, added to the specified table during the initial scan; and secondary scan instructions for performing a secondary scan to access rows referenced in the list data structure.
Claim 10
Dependent Claim 147 words
A database management system, comprising: a database, including a plurality of tables, each table storing data in one or more rows; an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: initial scan instructions for performing an initial scan to access the defined range of rows in the specified table; a list data structure for storing a list of references to rows in the specified table that are to be accessed by the scan operator after the initial scan, the list of references including references to rows, if any, added to the specified table during the initial scan; and secondary scan instructions for performing a secondary scan to access rows referenced in the list data structure.
Claim 11
Dependent Claim 30 words
The database management system of claim 8 , wherein the list data structure further storing references to additional rows, if any, added to the database table after the initial scan.
Claim 12
Dependent Claim 52 words
The database management system of claim 8 , wherein the secondary scan instructions include instructions for: removing from the list the reference to each unlocked row accessed by the scan operator during the secondary scan; and suspending operation of the secondary scan when all unlocked rows in the list have been accessed.
Claim 13
Dependent Claim 32 words
The database management system of claim 10 , further including: a scan scheduling module that, when a locked row in the database table is unlocked, schedules the secondary scan to resume operation.
Claim 14
Dependent Claim 29 words
The database management system of claim 10 , further including: a transaction abort module that removes from the list data structure references to rows updated by an aborted transaction.
Claim 15
Dependent Claim 27 words
The database management system of claim 10 , further including: the scan operator including row delete instructions for deleting each unlocked row accessed by the scan operator.
Claim 16
Dependent Claim 60 words
The database management system of claim 8 , further including: a session block data structure for the scan operator, the session block data structure having fields for storing information indicating: a range of rows to be accessed by the scan operator, whether the scan operator is performing an initial scan, and whether the scan operator is performing a secondary scan.
Claim 17
Dependent Claim 72 words
The database management system of claim 8 , wherein when the query specifies that any rows of the database table locked in conflicting modes are to be skipped, the conflicting modes preventing the scan operator from accessing the locked rows, the initial scan instructions include instructions for: skipping over the rows, if any, locked in the conflicting modes; adding to the list references to the locked rows skipped during the initial scan.
Claim 18
Dependent Claim 180 words
A computer program product for use in conjunction with a computer system, the computer system including a database, including a plurality of tables, each table storing data in one or more rows; the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: initial scan instructions for performing an initial scan to access the defined range of rows in the specified table; a list data structure for storing a list of references to rows in the specified table that are to be accessed by the scan operator after the initial scan, the list of references including references to rows, if any, added to the specified table during the initial scan; and secondary scan instructions for performing a secondary scan to access rows referenced in the list data structure.
Claim 19
Dependent Claim 180 words
A computer program product for use in conjunction with a computer system, the computer system including a database, including a plurality of tables, each table storing data in one or more rows; the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: initial scan instructions for performing an initial scan to access the defined range of rows in the specified table; a list data structure for storing a list of references to rows in the specified table that are to be accessed by the scan operator after the initial scan, the list of references including references to rows, if any, added to the specified table during the initial scan; and secondary scan instructions for performing a secondary scan to access rows referenced in the list data structure.
Claim 20
Dependent Claim 30 words
The computer program product of claim 16 , wherein the list data structure further storing references to additional rows, if any, added to the database table after the initial scan.
Claim 21
Dependent Claim 52 words
The computer program product of claim 16 , the secondary scan instructions including instructions for: removing from the list the reference to each unlocked row accessed by the scan operator during the secondary scan; and suspending operation of the secondary scan when all unlocked rows referenced by the list have been accessed.
Claim 22
Dependent Claim 32 words
The computer program product of claim 18 , further including: a scan scheduling module that, when a locked row in the database table is unlocked, schedules the secondary scan to resume operation.
Claim 23
Dependent Claim 29 words
The computer program product of claim 18 , further including: a transaction abort module that removes from the list data structure references to rows updated by an aborted transaction.
Claim 24
Dependent Claim 27 words
The computer program product of claim 18 , further including: the scan operator including row delete instructions for deleting each unlocked row accessed by the scan operator.
Claim 25
Dependent Claim 60 words
The computer program product of claim 16 , further including: a session block data structure for the scan operator, the session block data structure having fields for storing information indicating: a range of rows to be accessed by the scan operator, whether the scan operator is performing an initial scan, and whether the scan operator is performing a secondary scan.
Claim 26
Dependent Claim 72 words
The computer program product of claim 16 , wherein when the query specifies that any rows of the database table locked in conflicting modes are to be skipped, the conflicting modes preventing the scan operator from accessing the locked rows, the initial scan instructions include instructions for: skipping over the rows, if any, locked in the conflicting modes; adding to the list references to the locked rows skipped during the initial scan.
Claim 27
Dependent Claim 141 words
A database management system, comprising: a database, including a plurality of tables, each table storing data in one or more rows; an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: instructions for scanning a defined range of rows in a database table in accordance with the specified query, and returning qualifying rows in the defined range to a calling application; and instructions for suspending operation of the scan operator when there are no qualifying rows in the defined range; and the execution engine including instructions for automatically resuming operation of the scan operator when one or more qualifying rows in the defined range are added to the database table.
Claim 28
Dependent Claim 141 words
A database management system, comprising: a database, including a plurality of tables, each table storing data in one or more rows; an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: instructions for scanning a defined range of rows in a database table in accordance with the specified query, and returning qualifying rows in the defined range to a calling application; and instructions for suspending operation of the scan operator when there are no qualifying rows in the defined range; and the execution engine including instructions for automatically resuming operation of the scan operator when one or more qualifying rows in the defined range are added to the database table.
Claim 29
Dependent Claim 56 words
The database management system of claim 24 , wherein the instructions for suspending operation of the scan operator including instructions for suspending operation of the scan operator when the scan operator encounters a row in the database table that is locked in a mode that conflicts with a data access mode associated with the scan operator.
Claim 30
Dependent Claim 44 words
The database management system of claim 24 , wherein the instructions for resuming operation of the scan operator including instructions for automatically resuming operation of the scan operator when a transaction holding at least one lock on a row in the database table terminates.
Claim 31
Dependent Claim 115 words
The database management system of claim 24 , wherein the scan operator includes instructions for: performing an initial scan to access the defined range of rows in the database table; while performing the initial scan, building a list of rows that are added to the database table during the initial scan and that are to be accessed after the initial scan; performing a secondary scan to access rows in the list, including accessing the rows in the list that are not locked; while performing the secondary scan, adding to the list of rows additional rows added to the database table after the initial scan; and processing the accessed rows in accordance with the specified query.
Claim 32
Dependent Claim 61 words
The database management system of claim 24 , wherein when the query specifies that any rows of the database table locked in conflicting modes are to be skipped, the conflicting modes preventing the scan operator from accessing the locked rows, the scanning instructions of the scan operator include instructions for skipping over the rows, if any, locked in the conflicting modes.
Claim 33
Dependent Claim 71 words
The database management system of claim 28 , wherein when the query does not specify that any rows of the database table locked in the conflicting modes are to be skipped, the suspending step includes suspending operation of the scanning step when the scanning step encounters a row in the database table that is locked in any conflicting mode that conflicts with a data access mode associated with the scanning step.
Claim 34
Dependent Claim 174 words
A computer program product for use in conjunction with a computer system, the computer system including a database, including a plurality of tables, each table storing data in one or more rows; the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: instructions for scanning a defined range of rows in a database table in accordance with the specified query, and returning qualifying rows in the defined range to a calling application; and instructions for suspending operation of the scan operator when there are no qualifying rows in the defined range; and the execution engine including instructions for automatically resuming operation of the scan operator when one or more qualifying rows in the defined range are added to the database table.
Claim 35
Dependent Claim 174 words
A computer program product for use in conjunction with a computer system, the computer system including a database, including a plurality of tables, each table storing data in one or more rows; the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: an execution engine for executing a streaming mode query, for processing a stream of data, the execution engine including a scan operator for accessing a defined range of rows in a specified one of the database tables; the scan operator including: instructions for scanning a defined range of rows in a database table in accordance with the specified query, and returning qualifying rows in the defined range to a calling application; and instructions for suspending operation of the scan operator when there are no qualifying rows in the defined range; and the execution engine including instructions for automatically resuming operation of the scan operator when one or more qualifying rows in the defined range are added to the database table.
Claim 36
Dependent Claim 56 words
The computer program product of claim 30 , wherein the instructions for suspending operation of the scan operator including instructions for suspending operation of the scan operator when the scan operator encounters a row in the database table that is locked in a mode that conflicts with a data access mode associated with the scan operator.
Claim 37
Dependent Claim 44 words
The computer program product of claim 31 , wherein the instructions for resuming operation of the scan operator including instructions for automatically resuming operation of the scan operator when a transaction holding at least one lock on a row in the database table terminates.
Claim 38
Dependent Claim 44 words
The computer program product of claim 30 , wherein the instructions for resuming operation of the scan operator including instructions for automatically resuming operation of the scan operator when a transaction holding at least one lock on a row in the database table terminates.
Claim 39
Dependent Claim 115 words
The computer program product of claim 30 , wherein the scan operator includes instructions for: performing an initial scan to access the defined range of rows in the database table; while performing the initial scan, building a list of rows that are added to the database table during the initial scan and that are to be accessed after the initial scan; performing a secondary scan to access rows in the list, including accessing the rows in the list that are not locked; while performing the secondary scan, adding to the list of rows additional rows added to the database table after the initial scan; and processing the accessed rows in accordance with the specified query.
Claim 40
Dependent Claim 60 words
The computer program product of claim 30 , wherein when the query specifies any rows of the database table locked in conflicting modes are to be skipped, the conflicting modes preventing the scan operator from accessing the locked rows, the scanning instructions of the scan operator include instructions for skipping over the rows, if any, locked in the conflicting modes.
Claim 41
Dependent Claim 71 words
The computer program product of claim 35 , wherein when the query does not specify that any rows of the database table locked in the conflicting modes are to be skipped, the suspending step includes suspending operation of the scanning step when the scanning step encounters a row in the database table that is locked in any conflicting mode that conflicts with a data access mode associated with the scanning step.

References Cited (Backward Citations)

US5276872A Cited
US5504899A Cited
US5551027A Cited
US5440732A Cited
US5485607A Cited
US5682537A Cited
US5960194A Cited
US5845292A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-01-14 2005-07-16 2006-01-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-01-14 2009-07-16 2010-01-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-01-14 2013-07-16 2014-01-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag