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

Managing partitioned cache

Assignee: Oracle International Corp
•
Filing: 1998-06-22
•
Granted: 2002-04-09
•
Expires: 2018-06-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a method and apparatus for partitioning a buffer cache for dynamically mapping data blocks with a particular replacement strategy based on the associated table's access and/or usage patterns. According to the method, a buffer cache in a computer system is managed by dividing the buffer cache into multiple buffer pools. In managing the buffer cache, when a data item is requested, it is first determined whether the requested data item is stored in a buffer within the buffer cache. If the requested data item is not stored in a buffer in the buffer cache, then a particular buffer pool in the buffer cache is dynamically selected for storing the requested data item. Once the particular buffer pool is selected, the requested data item is stored into a buffer in the particular buffer pool.

Inventors

  • 👤 Alexander C. Ho
  • 👤 Ashok Joshi
  • 👤 Gianfranco Putzolu
  • 👤 Juan R. Loaiza
  • 👤 Graham Wood
  • 👤 William H. Bridge, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 08:21
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/0802; G06F12/0866

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 134 words
A method for managing a buffer cache in a computer system, the method comprising the steps of: dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 2
Independent Claim 134 words
A method for managing a buffer cache in a computer system, the method comprising the steps of: dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 3
Dependent Claim 49 words
The method of claim 1 , wherein the step of determining whether said requested data item is stored in said buffer cache comprises the step of searching hash chains associated with a hash table, wherein the hash chains provide links to all buffers contained in said multiple buffer pools.
Claim 4
Dependent Claim 43 words
The method of claim 1 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of determining said particular buffer pool based on a particular type of information contained in said requested data item.
Claim 5
Dependent Claim 57 words
The method of claim 1 , wherein the step of selecting the particular buffer pool to store the requested data item comprises the step of determining the particular buffer pool based on a user input parameter, wherein the user input parameter specifies the particular buffer pool that is to be used to store said requested data item.
Claim 6
Dependent Claim 39 words
The method of claim 1 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting said particular buffer pool based on the size of the particular buffer pool.
Claim 7
Dependent Claim 58 words
The method of claim 1 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting the particular buffer pool based on a hint parameter, wherein the hint parameter identifies a particular reason as to why a particular object associated with the requested data item is being accessed.
Claim 8
Dependent Claim 51 words
The method of claim 1 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of executing an optimizing process, wherein the optimizing process creates a query plan that is used to map data blocks into buffers in said particular buffer pool.
Claim 9
Dependent Claim 34 words
The method of claim 1 , wherein the step of selecting the particular buffer pool includes the step of selecting the particular buffer pool based on a logical container of the requested data item.
Claim 10
Dependent Claim 55 words
The method of claim 1 , wherein the step of storing said requested data item in the buffer contained in said particular buffer pool further comprises the steps of linking the buffer into a hash chain in a hash table, wherein said hash chains are used to link all buffers stored in said buffer cache.
Claim 11
Dependent Claim 82 words
The method of claim 1 , further comprising the step of: after storing the requested data item, selecting a second buffer pool based on a second hint parameter, wherein the second hint parameter identifies a reason as to why a particular object associated with the requested data item is being accessed a second time; and moving the requested data item from the particular buffer pool to the second buffer pool, wherein the second buffer pool is distinct from the particular buffer pool.
Claim 12
Dependent Claim 52 words
The method of claim 1 , wherein: the step of selecting a buffer pool further includes the step of dynamically allocating a buffer pool in said buffer cache; and the step of storing the requested data item includes the step of storing the requested data item within the dynamically allocated buffer pool.
Claim 13
Dependent Claim 33 words
The method of claim 1 , wherein step of dividing the buffer cache into multiple buffer pools includes the step of associating multiple latches with one or more of the multiple buffer pools.
Claim 14
Dependent Claim 49 words
The method of claim 9 , wherein the step of storing the requested data item in the particular buffer includes the step of associating a buffer pool ID with the particular buffer, wherein the buffer pool ID identifies the particular buffer pool in which the particular buffer is stored.
Claim 15
Dependent Claim 57 words
The method of claim 13 , further including the steps of: moving the particular buffer to a second buffer pool, wherein the second buffer pool is distinct from the particular buffer pool; and modifying the buffer pool ID associated with the particular buffer to reflect that the particular buffer has been moved to the second buffer pool.
Claim 16
Dependent Claim 55 words
The method of claim 13 , further includes the step of using the links in the hash table and the buffer pool IDs associated with the particular buffers, to provide an orthogonal search method for locating a specific buffer containing a particular data block independent of the buffer pool in which the buffer is stored.
Claim 17
Dependent Claim 159 words
A computer-readable medium having sequences of instructions for managing a buffer cache in a computer system, the sequences of insertions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 18
Dependent Claim 159 words
A computer-readable medium having sequences of instructions for managing a buffer cache in a computer system, the sequences of insertions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 19
Dependent Claim 50 words
The computer-readable medium of claim 16 , wherein the step of determining whether said requested data item is stored in said buffer cache comprises the step of searching hash chains associated with a hash table, wherein the hash chains provide links to all buffers contained in said multiple buffer pools.
Claim 20
Dependent Claim 44 words
The computer-readable medium of claim 16 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of determining said particular buffer pool based on a particular type of information contained in said requested data item.
Claim 21
Dependent Claim 58 words
The computer-readable medium of claim 16 , wherein the step of selecting the particular buffer pool to store the requested data item comprises the step of determining the particular buffer pool based on a user input parameter, wherein the user input parameter specifies the particular buffer pool that is to be used to store said requested data item.
Claim 22
Dependent Claim 40 words
The computer-readable medium of claim 16 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting said particular buffer pool based on the size of the particular buffer pool.
Claim 23
Dependent Claim 59 words
The computer-readable medium of claim 16 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting the particular buffer pool based on a hint parameter, wherein the hint parameter identifies a particular reason as to why a particular object associated with the requested data item is being accessed.
Claim 24
Dependent Claim 52 words
The computer-readable medium of claim 16 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of executing an optimizing process, wherein the optimizing process creates a query plan that is used to map data blocks into buffers in said particular buffer pool.
Claim 25
Dependent Claim 86 words
The computer-readable medium of claim 16 , further comprising instructions for performing the step of: after storing the requested data item, selecting a second buffer pool based on a second hint parameter, wherein the second hint parameter identifies a reason as to why a particular object associated with the requested data item is being accessed a second time; and moving the requested data item from the particular buffer pool to the second buffer pool, wherein the second buffer pool is distinct from the particular buffer pool.
Claim 26
Dependent Claim 56 words
The computer-readable medium of claim 16 , wherein: the step of selecting a buffer pool further includes instructions for performing the step of dynamically allocating a buffer pool in said buffer cache; and the step of storing the requested data item includes the step of storing the requested data item within the dynamically allocated buffer pool.
Claim 27
Dependent Claim 178 words
A computer system for managing a buffer cache, the computer system comprising: a memory, one or more processors coupled to the memory; and a set of computer instructions contained in the memory, the set of computer instructions including computer instructions which when executed by the one or more processors, cause the one or more processors to perform the steps of dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 28
Dependent Claim 178 words
A computer system for managing a buffer cache, the computer system comprising: a memory, one or more processors coupled to the memory; and a set of computer instructions contained in the memory, the set of computer instructions including computer instructions which when executed by the one or more processors, cause the one or more processors to perform the steps of dividing the buffer cache into multiple buffer pools; associating a replacement strategy with each of the multiple buffer pools, wherein at least two of the multiple buffer pools are associated with different replacement strategies; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting a particular buffer pool in said buffer cache to store said requested data item, wherein said particular buffer pool is dynamically selected from among said multiple buffer pools based on the replacement strategy associated with the particular buffer pool; and storing said requested data item in a particular buffer contained in said particular buffer pool.
Claim 29
Dependent Claim 48 words
The system of claim 25 wherein the step of determining whether said requested data item is stored in said buffer cache comprises the step of searching hash chains associated with a hash table, wherein the hash chains provide links to all buffers contained in said multiple buffer pools.
Claim 30
Dependent Claim 43 words
The system of claim 25 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of determining said particular buffer pool based on a particular type of information contained in said requested data item.
Claim 31
Dependent Claim 57 words
The system of claim 25 , wherein the step of selecting the particular buffer pool to store the requested data item comprises the step of determining the particular buffer pool based on a user input parameter, wherein the user input parameter specifies the particular buffer pool that is to be used to store said requested data item.
Claim 32
Dependent Claim 39 words
The system of claim 25 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting said particular buffer pool based on the size of the particular buffer pool.
Claim 33
Dependent Claim 58 words
The system of claim 25 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of selecting the particular buffer pool based on a hint parameter, wherein the hint parameter identifies a particular reason as to why a particular object associated with the requested data item is being accessed.
Claim 34
Dependent Claim 51 words
The system of claim 25 , wherein the step of selecting the particular buffer pool to store said requested data item comprises the step of executing an optimizing process, wherein the optimizing process creates a query plan that is used to map data blocks into buffers in said particular buffer pool.
Claim 35
Dependent Claim 82 words
The system of claim 25 , further comprising the step of: after storing the requested data item, selecting a second buffer pool based on a second hint parameter, wherein the second hint parameter identifies a reason as to why the particular object associated with the requested data item is being accessed a second time; and moving the requested data item from the particular buffer pool to the second buffer pool, wherein the second buffer pool is distinct from the particular buffer pool.
Claim 36
Dependent Claim 52 words
The system of claim 25 , wherein: the step of selecting a buffer pool further includes the step of dynamically allocating a buffer pool in said buffer cache; and the step of storing the requested data item includes the step of storing the requested data item within the dynamically allocated buffer pool.
Claim 37
Dependent Claim 34 words
The method of claim 1 , further comprising the step of determining whether said data item is likely to be soon accessed again based on the nature of the operation that caused the request.
Claim 38
Dependent Claim 64 words
The method of claim 6 , wherein the step of selecting the particular buffer pool based on a hint parameter includes the step of selecting said particular buffer pool based on a value associated with the hint parameter, wherein said value provides an indication as to whether the requested data item is likely to be accessed again in a relatively short period of time.
Claim 39
Dependent Claim 38 words
The computer-readable medium of claim 16 , further comprising instructions for performing the step of determining whether said data item is likely to be soon accessed again based on the nature of the operation that caused the request.
Claim 40
Dependent Claim 65 words
The computer-readable medium of claim 21 , wherein the step of selecting the particular buffer pool based on a hint parameter includes the step of selecting said particular buffer pool based on a value associated with the hint parameter, wherein said value provides an indication as to whether the requested data item is likely to be accessed again in a relatively short period of time.
Claim 41
Dependent Claim 34 words
The system of claim 25 , further comprising the step of determining whether said data item is likely to be soon accessed again based on the nature of the operation that caused the request.
Claim 42
Dependent Claim 64 words
The system of claim 30 , wherein the step of selecting the particular buffer pool based on a hint parameter includes the step of selecting said particular buffer pool based on a value associated with the hint parameter, wherein said value provides an indication as to whether the requested data item is likely to be accessed again in a relatively short period of time.
Claim 43
Independent Claim 223 words
A method for managing a buffer cache in a computer system, the method comprising the steps of: dividing the buffer cache into multiple buffer pools, wherein said multiple buffer pools include at least a first buffer pool and a second buffer pool; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting said first buffer pool in said buffer cache to store said requested data item, wherein said first buffer pool is dynamically selected from among said multiple buffer pools; and storing said requested data item in a particular buffer currently contained in said first buffer pool; wherein said first buffer pool has a first buffer pool size that is based on a first number of buffers that currently reside in said first buffer pool and said second buffer pool has a second buffer pool size that is based on a second number of buffers that currently reside in said second buffer pool; and wherein the method further comprises the step of dynamically changing said first buffer pool size and said second buffer pool size by modifying links associated with said particular buffer to remove said particular buffer from said first buffer pool and to add said particular buffer to said second buffer pool.
Claim 44
Independent Claim 223 words
A method for managing a buffer cache in a computer system, the method comprising the steps of: dividing the buffer cache into multiple buffer pools, wherein said multiple buffer pools include at least a first buffer pool and a second buffer pool; determining whether a requested data item is stored in a buffer in said buffer cache; if said requested data item is not stored in said buffer cache, then selecting said first buffer pool in said buffer cache to store said requested data item, wherein said first buffer pool is dynamically selected from among said multiple buffer pools; and storing said requested data item in a particular buffer currently contained in said first buffer pool; wherein said first buffer pool has a first buffer pool size that is based on a first number of buffers that currently reside in said first buffer pool and said second buffer pool has a second buffer pool size that is based on a second number of buffers that currently reside in said second buffer pool; and wherein the method further comprises the step of dynamically changing said first buffer pool size and said second buffer pool size by modifying links associated with said particular buffer to remove said particular buffer from said first buffer pool and to add said particular buffer to said second buffer pool.
Claim 45
Dependent Claim 49 words
The method of claim 40 , wherein the step of storing the requested data item in the particular buffer includes the step of associating a buffer pool ID with the particular buffer, wherein the buffer pool ID identifies the particular buffer pool in which the particular buffer is stored.
Claim 46
Dependent Claim 47 words
The method of claim 41 , wherein the step of modifying said links associated with said particular buffer further includes the step of modifying the buffer pool ID associated with the particular buffer to reflect that the particular buffer has been moved to the second buffer pool.
Claim 47
Dependent Claim 86 words
The method of claim 40 , wherein: said first buffer pool uses a first replacement strategy for determining which buffers that reside in said first buffer pool are to be over written with new data items that need to be stored in said first buffer pool; and said second buffer pool uses a second replacement strategy for determining which buffers that reside in said second buffer pool are to be over written with new data items that need to be stored in said second buffer pool.

References Cited (Backward Citations)

US5983293A Cited
US5680573A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-04-08 2005-10-08 2006-04-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-04-08 2009-10-08 2010-04-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-04-08 2013-10-08 2014-04-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag