Intelligent caching
First Claim
1. A method comprising:
- generating, at a computer system and in response to receiving a specified query from a client, a first read request for obtaining a result of the specified query from a storage system;
extracting, from a plurality of candidate queries and at the computer system, a plurality of features of the candidate queries, wherein the features are characteristics of a query;
correlating the features of each of the candidate queries to identify a usage pattern of the features, the correlating including;
identifying a specified feature of the features based on a derived value of the specified feature, the derived value being derived from an actual value of the specified feature, the actual value and the specified feature specified in one or more of the candidate queries;
predicting, based on the usage pattern of the features, a set of queries to be received at the computer system in the future;
executing a query of the set of queries to obtain data corresponding to the query from the storage system, the data including time series data, wherein the data is stored at a first granularity level in the storage system, wherein executing the query includes;
generating a second read request to obtain the data corresponding to the query,combining the first read request and the second read request to generate a combined read request, andexecuting the combined read request at the storage system to obtain the result of the specified query and the data corresponding to the query;
determining, based on the predicting, a second granularity level at which the data is to be cached, the second granularity level being different from the first granularity level;
processing the data from the first granularity level to the second granularity level to generate processed data; and
updating a cache of the computer system with the processed data, the updating to be performed before any of the set of queries is received at the computer system.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are methods, systems, paradigms and structures for managing cache memory in computer systems. Certain caching techniques anticipate queries and caches the data that may be required by the anticipated queries. The queries are predicted based on previously executed queries. The features of the previously executed queries are extracted and correlated to identify a usage pattern of the features. The prediction model predicts queries based on the identified usage pattern of the features. The disclosed method includes purging data from the cache based on predefined eviction policies that are influenced by the predicted queries. The disclosed method supports caching time series data. The disclosed system includes a storage unit that stores previously executed queries and features of the queries.
-
Citations
19 Claims
-
1. A method comprising:
-
generating, at a computer system and in response to receiving a specified query from a client, a first read request for obtaining a result of the specified query from a storage system; extracting, from a plurality of candidate queries and at the computer system, a plurality of features of the candidate queries, wherein the features are characteristics of a query; correlating the features of each of the candidate queries to identify a usage pattern of the features, the correlating including; identifying a specified feature of the features based on a derived value of the specified feature, the derived value being derived from an actual value of the specified feature, the actual value and the specified feature specified in one or more of the candidate queries; predicting, based on the usage pattern of the features, a set of queries to be received at the computer system in the future; executing a query of the set of queries to obtain data corresponding to the query from the storage system, the data including time series data, wherein the data is stored at a first granularity level in the storage system, wherein executing the query includes; generating a second read request to obtain the data corresponding to the query, combining the first read request and the second read request to generate a combined read request, and executing the combined read request at the storage system to obtain the result of the specified query and the data corresponding to the query; determining, based on the predicting, a second granularity level at which the data is to be cached, the second granularity level being different from the first granularity level; processing the data from the first granularity level to the second granularity level to generate processed data; and updating a cache of the computer system with the processed data, the updating to be performed before any of the set of queries is received at the computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
-
receiving a query at a computer system from a client; generating, at the computer system, a first read request for obtaining data required to respond to the query; determining whether data required to respond to the query is in a cache of the computer system; responsive to a determination that the data is in the cache, retrieving, in response to the query, the data from the cache, the cache containing (a) the data required to respond to the query and (b) new data required to respond to future queries, wherein the future queries are predicted based on a correlation of features of (i) the query and (ii) previously executed queries, wherein the correlation of features is performed by; identifying a specified feature of the features based on a derived value of the specified feature, the derived value being derived from an actual value of the specified feature, the actual value and the specified feature specified in the query or the previously executed queries, wherein the data and the new data include time series data; and responsive to a determination that the data is not in the cache, generating a second read request to obtain the new data, combining the first read request and the second read request to generate a combined read request, and executing the combined read request at a storage unit to obtain the data and the new data, wherein the new data is stored at a first granularity level in the storage unit, determining based on the future queries, a second granularity level at which the new data is to be cached, the second granularity level being different from the first granularity level, processing the new data from the first granularity level to the second granularity level, and updating the cache with (1) the data and (2) the new data, the cache updated with the new data before any of the set of queries is received at the computer system; and sending, in response to the query, the data to the client. - View Dependent Claims (18)
-
-
19. An apparatus comprising:
-
a computer system having a processor that processes a specified query received from a client, by obtaining data from a storage unit or a cache, the process further configured to generate a first read request for obtaining a result of the specified query from a storage system; a feature extraction module working in cooperation with the processor to extract, from previously received queries, features of the queries, wherein the features are characteristics of a query; a feature correlation module to correlate the features of the queries to identify a usage pattern of the features, wherein the feature correlation module is configured to correlate by; identifying a specified feature of the features based on a derived value of the specified feature, the derived value being derived from an actual value of the specified feature, the actual value and the specified feature specified in one or more of the queries; a query prediction module to; predict, based on the usage pattern of the features, a set of queries to be received at the computer system in the future, and execute a query of the set of queries to obtain data corresponding to the query from the storage system, the data including time series data, wherein the data is stored at a first granularity level in the storage system, wherein executing the query includes; generating a second read request to obtain the data corresponding to the query, combining the first read request and the second read request to generate a combined read request, and executing the combined read request at the storage system to obtain the result of the specified query and the data corresponding to the query, wherein the query determination module is further configured to determine based on the prediction, a second granularity level at which the data is to be cached, the second granularity level being different from the first granularity level; and a cache updating module to; process the data from the first granularity level to the second granularity level to generate processed data, and update the cache with the processed data required to serve the set of queries, wherein the cache module is configured to update the cache before any of the set of queries is received at the computer system.
-
Specification