← Back to Patent Explorer
US5369757A Expired / Lapsed US ⏱️ 0.0 years remaining

Recovery logging in the presence of snapshot files by ordering of buffer pool flushing

Assignee: Oracle International Corp
•
Filing: 1991-06-18
•
Granted: 1994-11-29
•
Expires: 2011-06-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a transaction processing system, snapshot records are stored in volatile memory along with volatile state memory records, and modifications to the volatile state memory records by the transactions are logged to an after-image log in non-volatile memory for recovery of the volatile state memory records. For recovery of the snapshot records in volatile memory, when any one of the records of volatile state memory are to be written from volatile memory to non-volatile state memory, the volatile snapshots records of the volatile state memory record are first written from volatile snapshot memory to non-volatile snapshot memory. This ordering of buffer pool flushing permits recovery of the volatile snapshot records from non-volatile state memory or from modifications in the after-image log. Moreover, recovery can be performed without writing modifications to the volatile snapshot records in an after-image log or flushing the snapshot records using an atomic operation.

Inventors

  • 👤 Peter M. Spiro
  • 👤 Ananth Raghavan
  • 👤 Tirumanjanam K. Rengarajan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 06:27
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1471; G06F2201/00; G06F2201/87

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 206 words
A method of operating a digital computer to process transactions, said method comprising the steps of: a) reading state records from non-volatile state memory and writing the state records into a volatile state memory cache; b) making snapshot copies in a volatile snapshot memory cache of selected state records in the volatile state memory cache, maintaining a corresponding set of said snapshot copies in the volatile snapshot memory cache of each selected state record in the volatile state memory cache, making modifications to the selected state records in the volatile state memory cache, said modifications being specified by said transactions, and committing said modifications to an after-image log in a non-volatile memory; and then c) reading the snapshot copies from the volatile snapshot memory cache and writing the snapshot copies into a non-volatile snapshot memory, and reading the selected state records from the volatile state memory cache and writing the selected state records into the non-volatile state memory, wherein the corresponding set of snapshot copies of each selected state record are read from the volatile snapshot memory cache and written into the non-volatile snapshot memory before said each selected state record is read from the volatile state memory cache and written into the non-volatile state memory.
Claim 2
Independent Claim 206 words
A method of operating a digital computer to process transactions, said method comprising the steps of: a) reading state records from non-volatile state memory and writing the state records into a volatile state memory cache; b) making snapshot copies in a volatile snapshot memory cache of selected state records in the volatile state memory cache, maintaining a corresponding set of said snapshot copies in the volatile snapshot memory cache of each selected state record in the volatile state memory cache, making modifications to the selected state records in the volatile state memory cache, said modifications being specified by said transactions, and committing said modifications to an after-image log in a non-volatile memory; and then c) reading the snapshot copies from the volatile snapshot memory cache and writing the snapshot copies into a non-volatile snapshot memory, and reading the selected state records from the volatile state memory cache and writing the selected state records into the non-volatile state memory, wherein the corresponding set of snapshot copies of each selected state record are read from the volatile snapshot memory cache and written into the non-volatile snapshot memory before said each selected state record is read from the volatile state memory cache and written into the non-volatile state memory.
Claim 3
Dependent Claim 35 words
The method as claimed in claim 1, wherein steps b) and c) are repeated sequentially, and step c) is performed after the modifications specified by a predetermined multiplicity of transactions are committed in step b).
Claim 4
Dependent Claim 39 words
The method as claimed in claim 1, wherein steps b) and c) are repeated sequentially, and step c) is performed in response to an amount of memory space in the after-image log being taken up by the committed modifications.
Claim 5
Dependent Claim 61 words
The method as claimed in claim 1, wherein the reading and writing of a particular one of the selected state records from the volatile state memory cache and into the non-volatile state memory is performed to provide volatile memory space into which another state memory record is written after said another state memory record is read from the non-volatile state memory.
Claim 6
Dependent Claim 61 words
The method as claimed in claim 1, further comprising the step of recovering from a failure that disrupts the volatile state memory cache and the volatile snapshot memory cache, wherein said step of recovering from the failure includes performing the modifications committed to the after-image log upon state records read from the non-volatile state memory, and then resuming processing of transactions.
Claim 7
Dependent Claim 34 words
The method as claimed in claim 5, wherein the resuming processing of transactions includes reading from the non-volatile snapshot memory snapshot copies having been written into the non-volatile snapshot memory prior to the failure.
Claim 8
Dependent Claim 66 words
The method as claimed in claim 1, wherein the maintaining of a corresponding set of said snapshot copies in the volatile snapshot memory cache of each selected state record in the volatile state memory cache is performed by maintaining a linked list of snapshot copies included in the corresponding set, the linked list being linked to said each selected state record in the volatile state memory.
Claim 9
Dependent Claim 80 words
The method as claimed in claim 1, further comprising the step of searching for a proper version of a specified record for processing by a specified one of said transactions, said proper version being either a state record fetched from either said state memory cache in said volatile memory or said state memory in said non-volatile memory, or a snapshot record fetched from either said snapshot memory cache in said volatile memory or said snapshot memory in said non-volatile memory.
Claim 10
Dependent Claim 54 words
The method as claimed in claim 1, wherein the making of snapshot copies is performed by changing pointers to transfer buffers holding state records from the volatile state memory cache to the volatile snapshot memory cache, and allocating free buffers to the volatile state memory cache to receive modified versions of the state records.
Claim 11
Dependent Claim 41 words
The method as claimed in claim 1, wherein the making of snapshot copies is performed by allocating free buffers to the volatile snapshot memory cache, and copying state memory records into the free buffers allocated to the volatile snapshot memory cache.
Claim 12
Independent Claim 384 words
A method of operating a digital computer to process transactions, said method comprising the steps of: a) reading state records from a non-volatile state memory and writing the state records into a volatile state memory cache; b) making snapshot copies in a volatile snapshot memory cache of selected state records in the volatile state memory cache; maintaining a corresponding set of said snapshot copies in the volatile snapshot memory cache of each selected state record in the volatile state memory cache; searching the volatile state memory cache and the snapshot memory cache for proper versions of specified state records for processing by specified ones of said transactions, each proper version being either a state record fetched from either said state memory cache in said volatile memory or said state memory in said non-volatile memory, or a snapshot record fetched from either said snapshot memory cache in said volatile memory or said snapshot memory in said non-volatile memory; making modifications to the selected state records in the volatile state memory cache, said modifications being specified by said transactions; and committing said modifications to an after-image log in a non-volatile memory, wherein the modifications specified by a plurality of said transactions are made before the modifications of some of said plurality of transactions are committed; and then c) reading the snapshot copies from the volatile snapshot memory cache and writing the snapshot copies into a non-volatile snapshot memory, and reading the selected state records from the volatile state memory cache and writing the selected state records into the non-volatile state memory, wherein the corresponding set of snapshot copies of each selected state record are read from the volatile snapshot memory cache and written into the non-volatile snapshot memory before said each selected state record is read from the volatile state memory cache and written into the non-volatile state memory; and then d) recovering from a failure that disrupts the volatile state memory cache and the volatile snapshot memory cache, wherein said recovering from the failure includes performing the modifications committed to the after-image log upon state records read from the non-volatile state memory, and then resuming processing of transactions, wherein the resuming processing of transactions includes reading from the non-volatile snapshot memory snapshot copies having been written into the non-volatile snapshot memory prior to the failure.
Claim 13
Independent Claim 384 words
A method of operating a digital computer to process transactions, said method comprising the steps of: a) reading state records from a non-volatile state memory and writing the state records into a volatile state memory cache; b) making snapshot copies in a volatile snapshot memory cache of selected state records in the volatile state memory cache; maintaining a corresponding set of said snapshot copies in the volatile snapshot memory cache of each selected state record in the volatile state memory cache; searching the volatile state memory cache and the snapshot memory cache for proper versions of specified state records for processing by specified ones of said transactions, each proper version being either a state record fetched from either said state memory cache in said volatile memory or said state memory in said non-volatile memory, or a snapshot record fetched from either said snapshot memory cache in said volatile memory or said snapshot memory in said non-volatile memory; making modifications to the selected state records in the volatile state memory cache, said modifications being specified by said transactions; and committing said modifications to an after-image log in a non-volatile memory, wherein the modifications specified by a plurality of said transactions are made before the modifications of some of said plurality of transactions are committed; and then c) reading the snapshot copies from the volatile snapshot memory cache and writing the snapshot copies into a non-volatile snapshot memory, and reading the selected state records from the volatile state memory cache and writing the selected state records into the non-volatile state memory, wherein the corresponding set of snapshot copies of each selected state record are read from the volatile snapshot memory cache and written into the non-volatile snapshot memory before said each selected state record is read from the volatile state memory cache and written into the non-volatile state memory; and then d) recovering from a failure that disrupts the volatile state memory cache and the volatile snapshot memory cache, wherein said recovering from the failure includes performing the modifications committed to the after-image log upon state records read from the non-volatile state memory, and then resuming processing of transactions, wherein the resuming processing of transactions includes reading from the non-volatile snapshot memory snapshot copies having been written into the non-volatile snapshot memory prior to the failure.
Claim 14
Dependent Claim 35 words
The method as claimed in claim 11, wherein steps b) and c) are repeated sequentially, and step c) is performed after the modifications specified by a predetermined multiplicity of transactions are committed in step b).
Claim 15
Dependent Claim 39 words
The method as claimed in claim 11, wherein steps b) and c) are repeated sequentially, and step c) is performed in response to an amount of memory space in the after-image log being taken up by the committed modifications.
Claim 16
Dependent Claim 61 words
The method as claimed in claim 11, wherein the reading and writing of a particular one of the selected state records from the volatile state memory cache and into the non-volatile state memory is performed to provide volatile memory space into which another state memory record is written after said another state memory record is read from the non-volatile state memory.
Claim 17
Dependent Claim 414 words
A transaction processing system for processing transactions, said transaction processing system comprising, in combination: a volatile memory (22); a non-volatile memory (23); and a central processing unit (21) coupled to said non-volatile memory and said volatile memory for reading records from said non-volatile memory and writing records to said volatile memory, and for reading records from said volatile memory and writing record to said non-volatile memory, said central processing unit being programmed with a program (25) for transaction processing, the programmed central processing unit including: means (71-93) for fetching specified records for processing by a selected transaction, wherein said means for fetching fetches each specified record from said volatile memory when said specified record is in said volatile memory, and otherwise fetches said each specified record from said non-volatile memory and stores said each specified record in said volatile memory, and wherein said means for fetching fetches a proper version of said each specified record for said transaction, said proper version being either a state record fetched from either a state memory cache (29) in said volatile memory or a state memory (26) in said non-volatile memory, or a snapshot record fetched from either a snapshot memory cache (32) in said volatile memory or a snapshot memory (31) in said non-volatile memory; means (101, 102, 103) for making snapshot copies in said snapshot memory cache of selected state records in the volatile state memory cache so that each selected state record in the state memory cache has a corresponding set of snapshot copies in the snapshot memory cache; means (153) for making modifications to the selected state records in the state memory cache, said modifications being specified by said transactions; means (159, 160) for committing said modifications to an after-image log (28) in said non-volatile memory; and cache flushing means (163, 164) for reading the snapshot copies from the snapshot memory cache and writing the snapshot copies into the snapshot memory in the non-volatile memory, and reading the selected state records from the state memory cache and writing the selected state records into the state memory in the non-volatile memory, wherein the corresponding set of snapshot copies of each selected state record are read from the snapshot memory cache and the corresponding set of snapshot copies of each selected state record are written into the snapshot memory in the non-volatile memory before said each selected state record is read from the state memory cache and written into the state memory in the non-volatile memory.
Claim 18
Dependent Claim 414 words
A transaction processing system for processing transactions, said transaction processing system comprising, in combination: a volatile memory (22); a non-volatile memory (23); and a central processing unit (21) coupled to said non-volatile memory and said volatile memory for reading records from said non-volatile memory and writing records to said volatile memory, and for reading records from said volatile memory and writing record to said non-volatile memory, said central processing unit being programmed with a program (25) for transaction processing, the programmed central processing unit including: means (71-93) for fetching specified records for processing by a selected transaction, wherein said means for fetching fetches each specified record from said volatile memory when said specified record is in said volatile memory, and otherwise fetches said each specified record from said non-volatile memory and stores said each specified record in said volatile memory, and wherein said means for fetching fetches a proper version of said each specified record for said transaction, said proper version being either a state record fetched from either a state memory cache (29) in said volatile memory or a state memory (26) in said non-volatile memory, or a snapshot record fetched from either a snapshot memory cache (32) in said volatile memory or a snapshot memory (31) in said non-volatile memory; means (101, 102, 103) for making snapshot copies in said snapshot memory cache of selected state records in the volatile state memory cache so that each selected state record in the state memory cache has a corresponding set of snapshot copies in the snapshot memory cache; means (153) for making modifications to the selected state records in the state memory cache, said modifications being specified by said transactions; means (159, 160) for committing said modifications to an after-image log (28) in said non-volatile memory; and cache flushing means (163, 164) for reading the snapshot copies from the snapshot memory cache and writing the snapshot copies into the snapshot memory in the non-volatile memory, and reading the selected state records from the state memory cache and writing the selected state records into the state memory in the non-volatile memory, wherein the corresponding set of snapshot copies of each selected state record are read from the snapshot memory cache and the corresponding set of snapshot copies of each selected state record are written into the snapshot memory in the non-volatile memory before said each selected state record is read from the state memory cache and written into the state memory in the non-volatile memory.

References Cited (Backward Citations)

US4752910A Cited
US5193162A Cited
US5201044A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-11-28 1998-05-30 1998-11-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-11-28 2002-05-30 2002-11-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-11-28 2006-05-30 2006-11-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag