US5740434A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System for maintenance of database integrity
Assignee: Hewlett Packard Development Co LP
•
Filing: 1996-09-05
•
Granted: 1998-04-14
•
Expires: 2016-09-05
Abstract
Abstract A method and system for maintaining database integrity utilizes a LOG file organized into slots with the number of slots never exceeding the largest number of concurrent transactions updating the database.
Inventors
- 👤 Thomas M. Eastep
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 00:04
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/23; G06F16/2365; G06F16/2358; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953
Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
375 words
An improved process for preserving a database in the event of a failure occurring during a transaction involving database records, said process comprising the steps of: creating a log file, including a plurality of slots each identified by a unique slot index, for storing a LOG record corresponding to an transaction-in-progress, with each LOG record identified by a unique monotonically increasing log sequence number (LSN) and with each slot storing details of single transaction and with the number of slots in said plurality being less than or equal to the number of transactions active at any given time; identifying a slot as an unavailable slot if any database records involved with a corresponding transaction recorded in the slot have been locked; identifying a slot as an available slot after all database records involved with a corresponding transaction recorded in the slot have been unlocked; making slots available to store LOG records of subsequently active transactions in the order that slots are identified as being available so that the slots are made available and reused on a first-in-first-out basis thereby assuring that if there is a LOG record in the LOG file involving a given database record then the LOG file contains a LOG record corresponding to the last transaction involving the given database record; beginning a given current transaction involving a set of database records and requesting locking of all database records in said set; suspending said given current transaction if any database records in said set are currently locked; if none of the database in said set are currently locked, locking all database records in said set prior to writing a LOG record for the given current transaction in the log file so that transactions concurrently active cannot operate on same database records thereby assuring independence of concurrent transactions; writing details of said given current transaction in an existing slot in said log file made available on a first-in-first-out basis, or, if no existing slot is available, adding a new slot to the log file and making said new slot available on a first-in-first-out basis so that the details of said current active transaction are written to said new slot; and unlocking all database records in said set said given current transaction is completed.
Claim 2
Dependent Claim
375 words
An improved process for preserving a database in the event of a failure occurring during a transaction involving database records, said process comprising the steps of: creating a log file, including a plurality of slots each identified by a unique slot index, for storing a LOG record corresponding to an transaction-in-progress, with each LOG record identified by a unique monotonically increasing log sequence number (LSN) and with each slot storing details of single transaction and with the number of slots in said plurality being less than or equal to the number of transactions active at any given time; identifying a slot as an unavailable slot if any database records involved with a corresponding transaction recorded in the slot have been locked; identifying a slot as an available slot after all database records involved with a corresponding transaction recorded in the slot have been unlocked; making slots available to store LOG records of subsequently active transactions in the order that slots are identified as being available so that the slots are made available and reused on a first-in-first-out basis thereby assuring that if there is a LOG record in the LOG file involving a given database record then the LOG file contains a LOG record corresponding to the last transaction involving the given database record; beginning a given current transaction involving a set of database records and requesting locking of all database records in said set; suspending said given current transaction if any database records in said set are currently locked; if none of the database in said set are currently locked, locking all database records in said set prior to writing a LOG record for the given current transaction in the log file so that transactions concurrently active cannot operate on same database records thereby assuring independence of concurrent transactions; writing details of said given current transaction in an existing slot in said log file made available on a first-in-first-out basis, or, if no existing slot is available, adding a new slot to the log file and making said new slot available on a first-in-first-out basis so that the details of said current active transaction are written to said new slot; and unlocking all database records in said set said given current transaction is completed.
Claim 3
Dependent Claim
77 words
The process of claim 1 further comprising the steps of: during a recover from a failure, sorting the log file in forward order of increasing LSNs; and for a given LOG record corresponding to a transaction involving a particular database record, eliminating said given LOG record from consideration if, when scanning forward from the given LOG record, it is determined that a LOG record having a higher LSN corresponds to a transaction involving the particular database record.
Claim 4
Dependent Claim
497 words
A computer program product comprising: a computer usable medium having a computer readable program code means embodied therein, said program code means for preserving a database in the event of a failure occurring during a transaction involving database records, the computer readable program code means in said computer program product comprising: computer readable program code means for causing a computer to effect creating a log file, including a plurality of slots each identified by a unique slot index, for storing a LOG record corresponding to an transaction-in-progress, with each LOG record identified by a unique monotonically increasing log sequence number (LSN) and with each slot storing details of single transaction and with the number of slots in said plurality being no greater than the number of transactions active at any given time; computer readable program code means for causing a computer to effect identifying a slot as an unavailable slot if any database records involved with a corresponding transaction recorded in the slot have been locked; computer readable program code means for causing a computer to effect identifying a slot as an available slot after all database records involved with a corresponding transaction recorded in the slot have been unlocked; computer readable program code means for causing a computer to effect making slots available to store LOG records of subsequently active transactions in the order that slots are identified as being available so that the slots are made available and reused on a first-in-first-out basis thereby assuring that if there is a LOG record in the LOG file involving a given database record then the LOG file contains a LOG record corresponding to the last transaction involving the given database record; computer readable program code means for causing a computer to effect beginning a given current transaction involving a set of database records and requesting locking of all database records in said set; computer readable program code means for causing a computer to effect suspending said given current transaction if any database records in said set are currently locked; computer readable program code means for causing a computer to effect, if none of the database in said set are currently locked, locking all database records in said set prior to writing a LOG record for the given current transaction in the log file so that transactions concurrently active cannot operate on same database records thereby assuring independence of concurrent transactions; computer readable program code means for causing a computer to effect writing details of said given current transaction in an existing slot in said log file made available on a first-in-first-out basis, or, if no existing slot is available, adding a new slot to the log file and making said new slot available on a first-in-first-out basis so that the details of said current active transaction are written to said new slot; and computer readable program code means for causing a computer to effect unlocking all database records in said set said given current transaction is completed.
Claim 5
Dependent Claim
497 words
A computer program product comprising: a computer usable medium having a computer readable program code means embodied therein, said program code means for preserving a database in the event of a failure occurring during a transaction involving database records, the computer readable program code means in said computer program product comprising: computer readable program code means for causing a computer to effect creating a log file, including a plurality of slots each identified by a unique slot index, for storing a LOG record corresponding to an transaction-in-progress, with each LOG record identified by a unique monotonically increasing log sequence number (LSN) and with each slot storing details of single transaction and with the number of slots in said plurality being no greater than the number of transactions active at any given time; computer readable program code means for causing a computer to effect identifying a slot as an unavailable slot if any database records involved with a corresponding transaction recorded in the slot have been locked; computer readable program code means for causing a computer to effect identifying a slot as an available slot after all database records involved with a corresponding transaction recorded in the slot have been unlocked; computer readable program code means for causing a computer to effect making slots available to store LOG records of subsequently active transactions in the order that slots are identified as being available so that the slots are made available and reused on a first-in-first-out basis thereby assuring that if there is a LOG record in the LOG file involving a given database record then the LOG file contains a LOG record corresponding to the last transaction involving the given database record; computer readable program code means for causing a computer to effect beginning a given current transaction involving a set of database records and requesting locking of all database records in said set; computer readable program code means for causing a computer to effect suspending said given current transaction if any database records in said set are currently locked; computer readable program code means for causing a computer to effect, if none of the database in said set are currently locked, locking all database records in said set prior to writing a LOG record for the given current transaction in the log file so that transactions concurrently active cannot operate on same database records thereby assuring independence of concurrent transactions; computer readable program code means for causing a computer to effect writing details of said given current transaction in an existing slot in said log file made available on a first-in-first-out basis, or, if no existing slot is available, adding a new slot to the log file and making said new slot available on a first-in-first-out basis so that the details of said current active transaction are written to said new slot; and computer readable program code means for causing a computer to effect unlocking all database records in said set said given current transaction is completed.
Claim 6
Dependent Claim
98 words
The computer program product of claim 1 further comprising: computer readable program code means for causing a computer to effect, during a recover from a failure, sorting the log file in forward order of increasing LSNs; and for a given LOG record corresponding to a transaction involving a particular database record, computer readable program code means for causing a computer to effect eliminating said given LOG record from consideration if, when scanning forward from the given LOG record, it is determined that a LOG record having a higher LSN corresponds to a transaction involving the particular database record.
References Cited (Backward Citations)
US4878167A
Cited
US5043866A
Cited
US5247672A
Cited
US5459862A
Cited
US5379412A
Cited
US5414839A
Cited
US5495601A
Cited
US5455944A
Cited
US5452430A
Cited
US5455946A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-04-13 | 2001-10-13 | 2002-04-14 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-04-13 | 2005-10-13 | 2006-04-14 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-04-13 | 2009-10-13 | 2010-04-14 | $7700.00 | Window Closed / Lapsed |