Patent US5740434A successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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 01:53
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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag