Caching data between a database server and a storage system
First Claim
1. A method comprising:
- at a storage system, responding to input/output (I/O) requests from one or more database servers, the I/O requests requesting disk blocks stored on one or more storage devices within the storage system, the disk blocks storing data representative of database objects with respect to which the one or more database servers perform database operations;
wherein responding to the I/O requests comprises, when one or more of the disk blocks are found among cached disk blocks that have been cached in an intermediate cache within the storage system, retrieving the one or more of the requested disk blocks from the intermediate cache instead of the one or more storage devices;
for a given disk block of the cached disk blocks, the storage system determining when to replace the given disk block with another requested disk block, the determining being based at least partially upon whether a given database object, for which the given disk block stores data, is associated with a particular designation;
wherein the method is performed by one or more computing devices.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for using an intermediate cache between the shared cache of an application and the non-volatile storage of a storage system. The application may be any type of application that uses a storage system to persistently store data. The intermediate cache may be local to the machine upon which the application is executing, or may be implemented within the storage system. In one embodiment where the application is a database server, the database system includes both a DB server-side intermediate cache, and a storage-side intermediate cache. The caching policies used to populate the intermediate cache are intelligent, taking into account factors that may include which object an item belongs to, the item type of the item, a characteristic of the item, or the type of operation in which the item is involved.
148 Citations
22 Claims
-
1. A method comprising:
-
at a storage system, responding to input/output (I/O) requests from one or more database servers, the I/O requests requesting disk blocks stored on one or more storage devices within the storage system, the disk blocks storing data representative of database objects with respect to which the one or more database servers perform database operations; wherein responding to the I/O requests comprises, when one or more of the disk blocks are found among cached disk blocks that have been cached in an intermediate cache within the storage system, retrieving the one or more of the requested disk blocks from the intermediate cache instead of the one or more storage devices; for a given disk block of the cached disk blocks, the storage system determining when to replace the given disk block with another requested disk block, the determining being based at least partially upon whether a given database object, for which the given disk block stores data, is associated with a particular designation; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
in an intermediate cache within a storage system, caching disk blocks retrieved from one or more storage devices within the storage system, the disk blocks storing data representative of objects with respect to which one or more database servers perform database operations; for each object of the objects, determining which of the disk blocks store data for said each object; maintaining a timer reflecting how much time has elapsed since any disk block that stores data for a given object of the objects was last requested from the storage system; when the timer indicates that no disk block that stores data for the given object has been requested from the storage system within a certain period of time, expiring all disk blocks in the intermediate cache that store data for the given object; wherein the method is performed by one or more computing devices. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. One or more non-transitory storage media storing sequences of instructions which, when executed by one or more processors, cause performance of:
-
at a storage system, responding to input/output (I/O) requests from one or more database servers, the I/O requests requesting disk blocks stored on one or more storage devices within the storage system, the disk blocks storing data representative of database objects with respect to which the one or more database servers perform database operations; wherein responding to the I/O requests comprises, when one or more of requested disk blocks are found among cached disk blocks that have been cached in an intermediate cache within the storage system, retrieving the one or more of the requested disk blocks from the intermediate cache instead of the one or more storage devices; and for a given disk block of the cached disk blocks, the storage system determining when to replace the given disk block with another requested disk block, the determining being based at least partially upon whether a given database object, for which the given disk block stores data, is associated with a particular designation. - View Dependent Claims (13, 14, 15, 16)
-
-
17. One or more non-transitory storage media storing sequences of instructions which, when executed by one or more processors, cause performance of:
-
in an intermediate cache within a storage system, caching disk blocks retrieved from one or more storage devices within the storage system, the disk blocks storing data representative of objects with respect to which one or more database servers perform database operations; for each object of the objects, determining which of the disk blocks store data for said each object; maintaining a timer reflecting how much time has elapsed since any disk block that stores data for a given object of the objects was last requested from the storage system; and when the timer indicates that no disk block that stores data for the given object has been requested from the storage system within a certain period of time, expiring all disk blocks in the intermediate cache that store data for the given object. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification