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

Method and apparatus for incremental undo

Assignee: Oracle International Corp
•
Filing: 1998-06-23
•
Granted: 2001-02-06
•
Expires: 2018-06-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for incremental undo is provided. A process, executing in a database system, establishes a rollback entry in an undo log file as a current rollback entry. The rollback entry, which was selected from a set of rollback entries contained in an undo record, contains data that indicates a change made by a transaction to a data block in the database system. The process first determines whether the rollback entry has been applied by testing a status flag. In one embodiment, the status flag is a bit in a bit vector in the undo block. If the rollback entry has been applied to the database, then the rollback entry is not re-applied; rather, a next rollback entry is established from the set of rollback entries and the process repeats. If the rollback entry has not been applied, then undo information from the rollback entry is retrieved from the undo block and change is generated. The status flag is set to indicate that the rollback entry has been applied and a next rollback entry corresponding to the data block is retrieved. The process repeats until there are no more rollback entries to be performed, then the multiple changes are applied to disk in a single atomic operation.

Inventors

  • 👤 Bhagat Nainani
  • 👤 Gary C. Ngai
  • 👤 Wei Huang
  • 👤 Jonathan D. Klein
  • 👤 Roger J. Bamford

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 18:51
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1474; G06F11/1471; G06F16/00; G06F16/20; G06F16/23; G06F16/2358; G06F16/2379; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 175 words
A method for performing incremental undo when recovering a computer database from a failure, the method comprising: storing changes for a plurality of data blocks in a single undo record; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to a particular data block in said plurality of data blocks; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 2
Independent Claim 175 words
A method for performing incremental undo when recovering a computer database from a failure, the method comprising: storing changes for a plurality of data blocks in a single undo record; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to a particular data block in said plurality of data blocks; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 3
Dependent Claim 46 words
The method of claim 1 , wherein said step of applying said one or more changes indicated by said current rollback entry comprises applying all rollback entries for at least one transaction that are stored in said plurality of rollback entries in a single atomic operation.
Claim 4
Dependent Claim 33 words
The method of claim 1 , further comprising the step of retaining said rollback entry in said undo record after said step of applying said current rollback entry to said particular data block.
Claim 5
Dependent Claim 49 words
The method of claim 1 , further comprising the step of maintaining a change vector in a buffer cache, wherein said change vector comprises a plurality of buffers for storing said change information, said change vector including a modifiable change buffer for storing information corresponding to said status flag.
Claim 6
Dependent Claim 35 words
The method of claim 4 , further comprising: examining said change vector to identify changes to apply to said particular data block; and retrieving address information identifying a particular rollback entry from said change vector.
Claim 7
Dependent Claim 24 words
The method of claim 4 , further comprising the step of storing recovery information about the incremental undo process itself in said change vector.
Claim 8
Dependent Claim 206 words
A computer-readable medium carrying one or more sequences of instructions for performing incremental undo when recovering a computer database from a failure, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: storing changes for a plurality of data blocks in a single undo record; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to a particular data block in said plurality of data blocks; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 9
Dependent Claim 206 words
A computer-readable medium carrying one or more sequences of instructions for performing incremental undo when recovering a computer database from a failure, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: storing changes for a plurality of data blocks in a single undo record; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to a particular data block in said plurality of data blocks; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 10
Dependent Claim 47 words
The computer-readable medium of claim 7 , wherein said step of applying said one or more changes indicated by said current rollback entry comprises applying all rollback entries for at least one transaction that are stored in said plurality of rollback entries in a single atomic operation.
Claim 11
Dependent Claim 57 words
The computer-readable medium of claim 7 , wherein execution of the one or more said sequences of instructions by one or more processors causes the one or more processors to further perform the step of retaining said rollback entry in said undo record after said step of applying said current rollback entry to said particular data block.
Claim 12
Dependent Claim 71 words
The computer-readable medium of claim 7 , wherein executing the one or more sequences of instructions by one or more processors causes the one or more processors to further comprising the step of maintaining a change vector in a buffer cache, wherein said change vector comprises a plurality of buffers for storing said change information, said change vector including a modifiable change buffer for storing information corresponding to said status flag.
Claim 13
Dependent Claim 60 words
The computer-readable medium of claim 10 , wherein executing the one or more sequences of instructions by one or more processors causes the one or more processors to further perform the steps of: examining said change vector to identify changes to apply to said particular data block; and retrieving address information identifying a particular rollback entry from said change vector.
Claim 14
Dependent Claim 46 words
The computer-readable medium of claim 10 , wherein executing the one or more sequences of instructions by one or more processors causes the one or more processors to further perform the step of storing recovery information about the incremental undo process itself in said change vector.
Claim 15
Dependent Claim 189 words
A computer system comprising a database server, wherein said database server is configured to recover a particular data block from a failure by performing the steps of: storing changes for a plurality of data blocks in a single undo record, said plurality of data blocks including said particular data block; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to said particular data block; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 16
Dependent Claim 189 words
A computer system comprising a database server, wherein said database server is configured to recover a particular data block from a failure by performing the steps of: storing changes for a plurality of data blocks in a single undo record, said plurality of data blocks including said particular data block; establishing as a current rollback entry, a rollback entry that belongs to a plurality of rollback entries within said single undo record, said plurality of rollback entries corresponding to said particular data block; examining a status flag corresponding to said current rollback entry to determine whether said current rollback entry has been applied; establishing a next rollback entry in said plurality of rollback entries as said current rollback entry without applying said current rollback entry when said current rollback entry has been applied; and when said current rollback entry has not been applied, then: retrieving said current rollback entry from said plurality of rollback entries; applying one or more changes indicated by said current rollback entry to said particular data block; and setting said status flag in said undo record to indicate said current rollback entry has been applied.
Claim 17
Dependent Claim 47 words
The computer system of claim 13 , wherein said step of applying said one or more changes indicated by said current rollback entry comprises applying all rollback entries for at least one transaction that are stored in said plurality of rollback entries in a single atomic operation.
Claim 18
Dependent Claim 39 words
The computer system of claim 13 , said computer system further configured to perform the step of retaining said rollback entry in said undo record after said step of applying said current rollback entry to said particular data block.
Claim 19
Dependent Claim 55 words
The computer system of claim 13 , said computer system further configured to perform the step of maintaining a change vector in a buffer cache, wherein said change vector comprises a plurality of buffers for storing said change information, said change vector including a modifiable change buffer for storing information corresponding to said status flag.
Claim 20
Dependent Claim 44 words
The computer system of claim 16 , said computer system further configured to perform the steps of: examining said change vector to identify changes to apply to said particular data block; and retrieving address information identifying a particular rollback entry from said change vector.
Claim 21
Dependent Claim 29 words
The computer of claim 16 , said computer system further configured to perform the step of storing recovery information about the incremental undo process itself in said change vector.

References Cited (Backward Citations)

US4498145A Cited
US5524205A Cited
US5363473A Cited
US5481699A Cited
US5870758A Cited
US5850507A Cited
US5835698A Cited
US5864849A Cited
US5940839A Cited
US5999943A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-02-06 2004-08-07 2005-02-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-02-06 2008-08-07 2009-02-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-02-06 2012-08-07 2013-02-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag