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

High concurrency in use manager

Assignee: International Business Machines Corp
•
Filing: 1992-06-05
•
Granted: 1993-11-23
•
Expires: 2012-06-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An in use table manager in a computer system uses an in use table to track the use of files, or objects. The in use table is used to determine which objects may need recovery in the event of a system failure. Object addresses are hashed by the in use manager to identify a preferred slot in the table. The slots contain information identifying the object, and indicating the extent of use of the object. The in use manager assigns alternate slots, and dynamically changes the size of the in use table to reduce contention for slots. Several atomic operations on the table ensure integrity of the table, while permitting concurrent use. Portions of the table are bundled into single I/O operations to enhance system performance by minimizing I/O.

Inventors

  • 👤 Michael L. Nordstrom
  • 👤 Gary R. Ricard
  • 👤 John J. Vriezen
  • 👤 David R. Welsh
  • 👤 Larry W. Youngren

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 02:28
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 173 words
An in-use table manager comprising: means for assigning an object, having a header, to a slot in an in-use table having an allocation bit map, and for hashing an address of said object into a preferred slot address; means for checking an object identifier in a preferred slot at said preferred slot address; means for assigning an alternative slot address if said object identifier does not match an address of said object by checking said allocation bit map to find an unassigned slot; means for inserting a slot address into said header of said object; means for locking individual slots in said in-use table to prevent concurrent access, each of said slots being locked by a lock indication contained in said slot, said slot being selected via a slot address; means for providing an indication of use of an object, said indication of use being contained in a slot, said slot being selected via said slot address; and means for modifying said indication of use to indicate desired recovery actions for each object.
Claim 2
Dependent Claim 173 words
An in-use table manager comprising: means for assigning an object, having a header, to a slot in an in-use table having an allocation bit map, and for hashing an address of said object into a preferred slot address; means for checking an object identifier in a preferred slot at said preferred slot address; means for assigning an alternative slot address if said object identifier does not match an address of said object by checking said allocation bit map to find an unassigned slot; means for inserting a slot address into said header of said object; means for locking individual slots in said in-use table to prevent concurrent access, each of said slots being locked by a lock indication contained in said slot, said slot being selected via a slot address; means for providing an indication of use of an object, said indication of use being contained in a slot, said slot being selected via said slot address; and means for modifying said indication of use to indicate desired recovery actions for each object.
Claim 3
Dependent Claim 37 words
The in-use table manager according to claim 1, wherein said means for assigning an object to a slot further comprises means for checking said header of said object to determine if a slot address has been inserted.
Claim 4
Dependent Claim 53 words
The in-use table manager according to claim 1, wherein the in-use table comprises: a plurality of pages, each page containing a slot allocation bit map, and a plurality of slots for containing in-use information about objects; and a header which has a page allocation bit map for indicating pages which have unassigned slots.
Claim 5
Dependent Claim 34 words
The in-use table manager according to claim 3, wherein said means for assigning an alternative slot address first checks said slot allocation bit map to find an unassigned slot to avoid excess page faults.
Claim 6
Dependent Claim 31 words
The in-use table manager according to claim 4, wherein said means for assigning an alternative slot address checks said page allocation bit map to find a page with an unassigned slot.
Claim 7
Dependent Claim 45 words
The in-use table manager according to claim 1, further including: first means for indicating a slot nearest the top of the in-use table which has been changed; and second means for indicating a slot nearest the bottom of the in-use table which has been changed.
Claim 8
Dependent Claim 49 words
The in-use table manager according to claim 6, further including: means for detecting when an object will be changed; and means for forcing said slots bounded by said indication of said first means and said indication of said second means to non-volatile storage prior to an object being changed.
Claim 9
Dependent Claim 39 words
The in-use table manager according to claim 1, further including: means for detecting an invalid slot address in said header of an object; and means for reassigning a valid slot address if an invalid slot address has been detected.
Claim 10
Dependent Claim 270 words
A high concurrency database system comprising: a plurality of processes; a plurality of objects containing database information for accessing by said processes; an in-use table having a header and a plurality of slots, each of said slots capable of indicating the in-use status of an object; and an in-use manager, comprising: means for assigning an object, having a header, to a slot in said in-use table having an allocation bit map, and for hashing an address of said object into a preferred slot address; means for checking an object identifier in a preferred slot at said preferred slot address; means for assigning an alternative slot address if said object identifier does not match an address of said object by checking said allocation bit map to find an unassigned slot; means for inserting a slot address into said header of said object; means for locking individual slots in said in-use table to prevent concurrent access, said individual slots being locked by a lock indication contained in each of said slots, each of said slots being selected via a slot address contained in each of the headers of each of the objects which have been assigned a slot; means for providing an indication of use of an object, said indication of use being contained in each of said slots, each of said slots being selected via a slot address contained in said headers of an object that have been assigned a slot; and means for modifying an indication of use contained in each of said slots to indicate desired recovery actions for each of said objects that have been assigned a slot.
Claim 11
Dependent Claim 270 words
A high concurrency database system comprising: a plurality of processes; a plurality of objects containing database information for accessing by said processes; an in-use table having a header and a plurality of slots, each of said slots capable of indicating the in-use status of an object; and an in-use manager, comprising: means for assigning an object, having a header, to a slot in said in-use table having an allocation bit map, and for hashing an address of said object into a preferred slot address; means for checking an object identifier in a preferred slot at said preferred slot address; means for assigning an alternative slot address if said object identifier does not match an address of said object by checking said allocation bit map to find an unassigned slot; means for inserting a slot address into said header of said object; means for locking individual slots in said in-use table to prevent concurrent access, said individual slots being locked by a lock indication contained in each of said slots, each of said slots being selected via a slot address contained in each of the headers of each of the objects which have been assigned a slot; means for providing an indication of use of an object, said indication of use being contained in each of said slots, each of said slots being selected via a slot address contained in said headers of an object that have been assigned a slot; and means for modifying an indication of use contained in each of said slots to indicate desired recovery actions for each of said objects that have been assigned a slot.
Claim 12
Dependent Claim 38 words
The high concurrency database system according to claim 9, wherein said means for assigning an object to a slot further comprises means for checking a header of said object to determine if a slot address has been inserted.
Claim 13
Dependent Claim 54 words
The high concurrency database system according to claim 9, wherein said in-use table comprises: a plurality of pages, each page containing a slot allocation bit map, and a plurality of slots for containing in-use information about objects; and a header which has a page allocation bit map for indicating pages which have unassigned slots.
Claim 14
Dependent Claim 35 words
The high concurrency database system according to claim 11, wherein said means for assigning an alternative slot address first checks said slot allocation bit map to find an unassigned slot to avoid excess page faults.
Claim 15
Dependent Claim 32 words
The high concurrency database system according to claim 12, wherein said means for assigning an alternative slot address checks said page allocation bit map to find a page with an unassigned slot.
Claim 16
Dependent Claim 46 words
The high concurrency database system according to claim 9, further comprising: first means for indicating a slot nearest the top of said in-use table which has been changed; and second means for indicating a slot nearest the bottom of said in-use table which has been changed.
Claim 17
Dependent Claim 50 words
The high concurrency database system according to claim 14, further comprising: means for detecting when an object will be changed; and means for forcing said slots bounded by said indication of said first means and said indication of said second means to non-volatile storage prior to an object being changed.
Claim 18
Dependent Claim 111 words
A mechanism for writing individually modifiable entries within a table to nonvolatile storage by I/O operations, said mechanism comprising: means for indicating pendency of I/O operations on said table, said means for indicating pendency being contained within said table; means for indicating a requirement for each entry to be written to nonvolatile storage, said means for indicating a requirement to be written being contained within each entry within said table; and means for comparing said means for indicating pendency of I/O operations with said means for indicating a requirement for each entry to be written to nonvolatile storage to determine whether contents of each entry should be written to nonvolatile storage.
Claim 19
Dependent Claim 111 words
A mechanism for writing individually modifiable entries within a table to nonvolatile storage by I/O operations, said mechanism comprising: means for indicating pendency of I/O operations on said table, said means for indicating pendency being contained within said table; means for indicating a requirement for each entry to be written to nonvolatile storage, said means for indicating a requirement to be written being contained within each entry within said table; and means for comparing said means for indicating pendency of I/O operations with said means for indicating a requirement for each entry to be written to nonvolatile storage to determine whether contents of each entry should be written to nonvolatile storage.
Claim 20
Dependent Claim 48 words
The mechanism according to claim 16, wherein said means for indicating pendency of I/O operations on said table comprises means for incrementing an I/O count in a header of said table by one at a beginning of each I/O operation and at an end of each I/O operation.
Claim 21
Dependent Claim 42 words
The mechanism according to claim 17, wherein said means for indicating a requirement for each entry to be written to nonvolatile storage comprises means for incrementing a count in each entry based upon said I/O count in said header of said table.
Claim 22
Dependent Claim 40 words
The mechanism according to claim 18, wherein said means for indicating a requirement for each entry to be written to nonvolatile storage further includes means for increment said count in each entry by two if said I/O count is even.
Claim 23
Dependent Claim 40 words
The mechanism according to claim 19, wherein said means for indicating a requirement for each entry to be written to nonvolatile storage further includes means for increments said count in each entry by three if said I/O count is odd.
Claim 24
Dependent Claim 63 words
The mechanism according to claim 20, wherein said means for comparing said means for indicating pendency of I/O operations with said means for indicating a requirement for each entry to be written to nonvolatile storage comprises means for indicating that an entry has been written to nonvolatile storage if said I/O count is greater than or equal to said count in said entry.

References Cited (Backward Citations)

US3683418A Cited
US4480304A Cited
US4435766A Cited
US4574350A Cited
US4697266A Cited
US4604694A Cited
US4989132A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-11-22 1997-05-24 1997-11-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-11-22 2001-05-24 2001-11-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-11-22 2005-05-24 2005-11-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag