Caching data between a database server and a storage system
First Claim
Patent Images
1. A method comprising:
- receiving, from an application that performs operations on a plurality of objects, one or more indications of which objects, of the plurality of objects, have a particular designation;
wherein the plurality of objects is persistently stored outside of an intermediate cache in data from disk blocks on one or more non-volatile storage devices;
caching, in the intermediate cache, disk blocks that are transferred between (a) a volatile memory used by the application and (b) the one or more non-volatile storage devices;
for a particular disk block that is transferred between the volatile memory and the one or more non-volatile storage devices, determining for which particular object, of the plurality of objects, the particular disk block stores data;
wherein data representative of the particular object is persistently stored on a particular plurality of disk blocks on the one or more non-volatile storage devices;
wherein caching the data includes using the intermediate cache, with respect to the particular disk block, in a manner that is based, at least in part, on whether the particular object for which the particular disk block stores data has said particular designation;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for using an intermediate cache between the shared cache of a database server and the non-volatile storage of a storage system. The intermediate cache may be local to the machine upon which the database server is executing, or may be implemented within the storage system. In one embodiment, 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 database object an item belongs to, the item type of the item, a characteristic of the item; or the database operation in which the item is involved.
77 Citations
50 Claims
-
1. A method comprising:
-
receiving, from an application that performs operations on a plurality of objects, one or more indications of which objects, of the plurality of objects, have a particular designation; wherein the plurality of objects is persistently stored outside of an intermediate cache in data from disk blocks on one or more non-volatile storage devices; caching, in the intermediate cache, disk blocks that are transferred between (a) a volatile memory used by the application and (b) the one or more non-volatile storage devices; for a particular disk block that is transferred between the volatile memory and the one or more non-volatile storage devices, determining for which particular object, of the plurality of objects, the particular disk block stores data; wherein data representative of the particular object is persistently stored on a particular plurality of disk blocks on the one or more non-volatile storage devices; wherein caching the data includes using the intermediate cache, with respect to the particular disk block, in a manner that is based, at least in part, on whether the particular object for which the particular disk block stores data has said particular designation; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
caching, in an intermediate cache, data that is transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the data; wherein the step of caching the data includes using the intermediate cache, with respect to an item of the data that is transferred between the volatile memory and the non-volatile storage, in a manner that is based, at least in part, on one or more of; whether the item is a disk block of an index block type; whether the item is a disk block of a data block type; whether the item is a disk block of an undo block type; whether the item is encrypted; whether the item is a secondary copy of a mirrored item;
orwhether the item is involved in a table scan operation; wherein the method is performed by one or more computing devices. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
caching, in an intermediate cache, data that is transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the data, the database server configured to execute a plurality of distinct types of database operations with respect to the data; wherein the step of caching the data includes using the intermediate cache, with respect to an item of the data that is transferred between the volatile memory and the non-volatile storage, in a manner that is base, at least in part on; for which type of database operation, of the plurality of distinct types of database operations, the database server is using the item; wherein using the intermediate cache includes determining whether or not to store the data item in the intermediate cache based, at least in part, on the type of database operation in which the item is involved.
-
-
21. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
receiving, from an application that performs operations on a plurality of objects, one or more indications of which objects, of the plurality of objects, have a particular designation; wherein the plurality of objects is persistently stored outside of an intermediate cache in data from disk blocks on one or more non-volatile storage devices; caching, in the intermediate cache, disk blocks that are transferred between (a) a volatile memory used by the application and (b) the one or more non-volatile storage devices; for a particular disk block that is transferred between the volatile memory and the one or more non-volatile storage devices, determining for which particular object, of the plurality of objects, the particular disk block stores data; wherein data for the particular object is persistently stored on a particular plurality of disk blocks on the one or more non-volatile storage devices; wherein caching the data includes using the intermediate cache, with respect to the particular disk block, in a manner that is based, at least in part, on whether the particular object for which the particular disk block stores data has said particular designation. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
caching, in an intermediate cache, data that is transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the data; wherein the step of caching the data includes using the intermediate cache, with respect to an item of the data that is transferred between the volatile memory and the non-volatile storage, in a manner that is based, at least in part, on one or more of; whether the item is a disk block of an index block type; whether the item is a disk block of a data block type; whether the item is a disk block of an undo block type; whether the item is encrypted; whether the item is a secondary copy of a mirrored item;
orwhether the item is involved in a table scan operation. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
caching, in an intermediate cache, data that is transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the data, the database server configured to execute a plurality of distinct types of database operations with respect to the data; wherein the step of caching the data includes using the intermediate cache, with respect to an item of the data that is transferred between the volatile memory and the non-volatile storage, in a manner that is based at least in part on; for which type of database operation, of the plurality of distinct types of database operations, the database server is using the item; wherein using the intermediate cache includes determining whether or not to store the data item in the intermediate cache based, at least in part, on the type of database operation in which the item is involved.
-
-
41. A method comprising:
-
caching, in an intermediate cache, disk blocks that are transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the disk blocks, the database server configured to perform database operations with respect to a plurality of database objects, the disk blocks storing data that belong to the plurality of database objects; wherein the step of caching the disk blocks includes using the intermediate cache, with respect to a particular disk block that is transferred between the volatile memory and the non-volatile storage, in a manner that is based, at least in part, on; whether the particular disk block is one of a plurality of disk blocks that stores data belonging to a particular database object, of the plurality of database objects, that has a particular designation, the particular database object being one of;
a table, index, or tablespace;wherein the method is performed by one or more computing devices. - View Dependent Claims (42, 43, 44, 45)
-
-
46. A non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
caching, in an intermediate cache, disk blocks that are transferred between a volatile memory used by a database server and a non-volatile storage device that is used to persistently store the disk blocks, the database server configured to perform database operations with respect to a plurality of database objects, the disk blocks storing data that belong to the plurality of database objects; wherein the step of caching the disk blocks includes using the intermediate cache, with respect to a particular disk block that is transferred between the volatile memory and the non-volatile storage, in a manner that is based, at least in part, on; whether the particular disk block is one of a plurality of disk blocks that stores data belonging to a particular database object, of the plurality of database objects, that has a particular designation, the particular database object being one of;
a table, index, or tablespace;wherein the method is performed by one or more computing devices. - View Dependent Claims (47, 48, 49, 50)
-
Specification