Reducing latency by caching derived data at an edge server
First Claim
1. A method of caching derived data at an edge cache coupled to an edge server, for use in responding to requests from a data consuming application via an application program interface (abbreviated API) to at least one application program running via an edge server, wherein the application program uses core data as input and returns derived data, the method of caching derived data including:
- a core cache manager, running on a caching system, receiving information regarding core data instances of interest requested from a data source and regarding requests for derived data of interest;
the core cache manager;
monitoring and detecting changes to the core data instances of interest;
inferring impact on the derived data of the changed core data instances;
pre-caching an updated version of the impacted derived data by replaying at least one API access that is dependent on the changed core data instances;
informing an edge cache manager, running on a same device as or connected by a bus or local area network to an edge server, that responds to requests from the data consuming application, of the changes to the core data instances of interest and of the impact on derived data returned by at least one API; and
the core cache manager, responsive to information from the data consuming application regarding the changes to core data instances of interest and to the impacted derived data, determining whether follow-up requests from the edge cache manager for the changed core data instances and the impacted derived data can be satisfied by the core cache manager without accessing the data source and satisfying the requests for the changed core data and the impacted derived data from cache memory.
1 Assignment
0 Petitions
Accused Products
Abstract
To deliver up-to-date, coherent user data to applications upon request, the disclosed technology includes systems and methods for caching data and metadata after it has been synchronously loaded—for future retrieval with a page load time close to zero milliseconds. To provide this experience, data needs to be stored as locally to a user as possible, in the cache on the local device or in an edge cache located geographically nearby, for use in responding to requests. Applications which maintain caches of API results can be notified of their invalidation, and can detect the invalidation, propagate the invalidation to any further client tiers with the appropriate derivative type mapping, and refresh their cached values so that clients need not synchronously make the API requests again—ensuring that the client has access to the most up-to-date copy of data as inexpensively as possible—in terms of bandwidth and latency.
159 Citations
22 Claims
-
1. A method of caching derived data at an edge cache coupled to an edge server, for use in responding to requests from a data consuming application via an application program interface (abbreviated API) to at least one application program running via an edge server, wherein the application program uses core data as input and returns derived data, the method of caching derived data including:
-
a core cache manager, running on a caching system, receiving information regarding core data instances of interest requested from a data source and regarding requests for derived data of interest; the core cache manager; monitoring and detecting changes to the core data instances of interest; inferring impact on the derived data of the changed core data instances; pre-caching an updated version of the impacted derived data by replaying at least one API access that is dependent on the changed core data instances; informing an edge cache manager, running on a same device as or connected by a bus or local area network to an edge server, that responds to requests from the data consuming application, of the changes to the core data instances of interest and of the impact on derived data returned by at least one API; and the core cache manager, responsive to information from the data consuming application regarding the changes to core data instances of interest and to the impacted derived data, determining whether follow-up requests from the edge cache manager for the changed core data instances and the impacted derived data can be satisfied by the core cache manager without accessing the data source and satisfying the requests for the changed core data and the impacted derived data from cache memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system of computing devices, including:
-
an edge cache that stores both core data and derived data, wherein the derived data is generated by passing some of the core data to at least one application program interface (abbreviated API) and receiving the derived data in return; a data source from which core data is obtained; at least one application program running on a server accessed via the API, wherein the application program receives the core data as input and returns the derived data; an edge cache manager, local to an edge server instance, that refreshes an edge cache of core data and derived data requested from the application program; a core cache manager running on a caching system that; accesses interest indications of core data instances and derived data of interest to the edge cache manager; monitors and detects changes to the core data instances of interest; infers impact on the derived data of the changed core data instances; pre-caches an updated version of the impacted derived data by replaying at least one API access that is dependent on the changed core data instances; and informs the edge cache manager of the changes to the core data instances of interest and of the impact on derived data returned by the at least one API; and wherein the edge cache manager, responsive to information from the core cache manager regarding the changes to the interesting core data and the impact on derived data determines whether the derived data is of continuing interest and, if so, replays the at least one API access using the changed core data instances to refresh cached derived data. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium loaded with computer instructions that, when executed, cause a computer system to cache derived data for a client cache, including:
-
an edge cache that stores both core data and derived data, wherein the derived data is generated by passing some of the core data to at least one application program interface (abbreviated API) and receiving the derived data in return; a data source from which core data is obtained; at least one application program running on a server accessed via the API, wherein the application program receives the core data as input and returns the derived data; an edge cache manager, local to an edge server instance, that refreshes an edge cache of core data and derived data requested from the application program; a core cache manager running on a caching system that; accesses interest indications of core data instances and derived data of interest to the edge cache manager; monitors and detects changes to the core data instances of interest; infers impact on the derived data of the changed core data instances; pre-caches an updated version of the impacted derived data by replaying at least one API access that is dependent on the changed core data instances; and informs the edge cache manager of the changes to the core data instances of interest and of the impact on derived data returned by at least one API; and wherein the edge cache manager, responsive to information from the core cache manager regarding the changes to the interesting core data and to the impacted derived data, determines whether the impacted derived data is of continuing interest and, if so, replays the at least one API access with the changed core data to refresh cached derived data from the API access. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A cache manager including a core cache API through which the cache manager communicates with an external customer process, the cache manager running on an edge caching system that includes a processor and computer instructions that when executed the processor cause the cache manager to carry out a method including:
-
monitoring and detecting changes to core data instances of interest to the external customer process; inferring impact on derived data of the changed core data instances to the external customer process; pre-caching an updated version of the impacted derived data by replaying at least one API access that is dependent on the changed core data instances; informing the external customer process of the changes to the core data instances of interest and of the impact on derived data returned by at least one API; and responsive to information regarding the changes to core data instances of interest and the impacted derived data, determining whether follow-up requests from the external customer process for the changed core data instances and the impacted derived data can be satisfied by the cache manager without accessing a data source and satisfying the requests for the changed core data and the impacted derived data from cache memory.
-
Specification