Automatic caching of scan and random access data in computing systems
First Claim
1. A method comprising:
- responsive to requests from a database server to access data units stored in one or more storage systems, determining, by a caching system comprising a cache, that at least certain data units accessed by the requests are not found in the cache;
determining whether particular data units of the certain data units are associated with a scan data access pattern, wherein the scan data access pattern is indicative that the requests from the database server are for a scan operation that involves accessing substantially more data units than is typical of an Online Transaction Processing (OLTP) operation;
in response to determining that the particular data units of the certain data units are associated with the scan data access pattern;
applying one or more first caching policies to the particular data units to determine whether or not to cache the particular data units;
in response to determining, based on the one or more first caching polices, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests; and
in response to determining, based on the one or more first caching policies, to not cache the particular data units, not storing at least one of the particular data units in the cache responsive to the requests;
in response to determining that the particular data units of the certain data units are not associated with the scan data access pattern;
applying one or more second caching policies to the particular data units to determine whether or not to cache the particular data units, wherein the one or more second caching policies are different from the one or more first caching policies; and
in response to determining, based on the one or more second caching policies, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Approaches, techniques, and mechanisms are disclosed for improved caching in database systems that deal with multiple data access patterns, such as in database systems that interface with both OLTP and Data Warehouse clients. A cache is deployed between a database server and a storage system that stores data units. Some of the data units accessed by the database server are buffered within the cache. The data units may be associated with data access patterns, such as a random data access pattern or a scan data access pattern, in accordance with which the database server is or appears to be accessing the data units. A processor selects when to cache data units accessed by the database server, based at least on the associated data access patterns. Recent access counts may also be stored for the data units, and may further be utilized to select when to cache data units.
-
Citations
26 Claims
-
1. A method comprising:
-
responsive to requests from a database server to access data units stored in one or more storage systems, determining, by a caching system comprising a cache, that at least certain data units accessed by the requests are not found in the cache; determining whether particular data units of the certain data units are associated with a scan data access pattern, wherein the scan data access pattern is indicative that the requests from the database server are for a scan operation that involves accessing substantially more data units than is typical of an Online Transaction Processing (OLTP) operation; in response to determining that the particular data units of the certain data units are associated with the scan data access pattern; applying one or more first caching policies to the particular data units to determine whether or not to cache the particular data units; in response to determining, based on the one or more first caching polices, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests; and in response to determining, based on the one or more first caching policies, to not cache the particular data units, not storing at least one of the particular data units in the cache responsive to the requests; in response to determining that the particular data units of the certain data units are not associated with the scan data access pattern; applying one or more second caching policies to the particular data units to determine whether or not to cache the particular data units, wherein the one or more second caching policies are different from the one or more first caching policies; and in response to determining, based on the one or more second caching policies, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. One or more non-transitory computer-readable media storing instructions that, when executed by the one or more computing devices, cause performance of:
-
responsive to requests from a database server to access data units stored in one or more storage systems, determining, by a caching system comprising a cache, that at least certain data units accessed by the requests are not found in the cache; determining whether particular data units of the certain data units are associated with a scan data access pattern, wherein the scan data access pattern is indicative that the requests from the database server are for a scan operation that involves accessing substantially more data units than is typical of an Online Transaction Processing (OLTP) operation; in response to determining that the particular data units of the certain data units are associated with the scan data access pattern; applying one or more first caching policies to the particular data units to determine whether or not to cache the particular data units; and in response to determining, based on the one or more first caching policies, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests; and in response to determining, based on the one or more first caching policies, to not cache the particular data units, not storing at least one of the particular data units in the cache responsive to the requests; in response to determining that the particular data units of the certain data units are not associated with the scan data access pattern; applying one or more second caching policies to the particular data units to determine whether or not to cache the particular data units, wherein the one or more second caching policies are different from the one or more first caching policies; and in response to determining, based on the one or more second caching policies, to cache the particular data units, storing at least one of the particular data units in the cache responsive to the requests. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer system comprising:
-
one or more processors; one or more interfaces communicably coupled to one or more database servers and one or more storage systems; one or more storage media configured to store a cache comprising cache lines in which are cached data units, from the one or more storage systems, that were accessed by the database server; one or more storage media configured to store cache metadata, the cache metadata including at least recent access counts reflecting how frequently the data units have been accessed over a recent period of time; wherein the one or more processors are configured to; responsive to requests from the one or more database servers to access data units stored in the one or more storage systems, determine, by a caching system comprising the cache, that at least certain data units accessed by the requests are not found in the cache; determine whether particular data units of the certain data units are associated with a scan data access pattern, wherein the scan data access pattern is indicative that the requests from the database server are for a scan operation that involves accessing substantially more data units than is typical of an Online Transaction Processing (OLTP) operation; in response to determining that the particular data units of the certain data units are associated with the scan data access pattern; apply one or more first caching policies to the particular data units to determine whether or not to cache the particular data units; in response to determining, based on the one or more first caching policies, to cache the particular data units, store at least one of the particular data units in the cache; and in response to determining, based on the one or more first caching policies, to not cache the particular data units, not store at least one of the particular data units in the cache responsive to the requests; in response to determining that the particular data units of the certain data units are not associated with the scan data access pattern; apply one or more second caching policies to the particular data units to determine whether or not to cache the particular data units, wherein the one or more second caching policies are different from the one or more first caching policies; and in response to determining, based on the one or more second caching policies, to cache the particular data units, store at least one of the particular data units in the cache responsive to the requests. - View Dependent Claims (26)
-
Specification