Invalidation and refresh of multi-tier distributed caches
First Claim
1. A method of caching derived data, including:
- a shared 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, wherein at least one application program running on a server accessed by a data consuming application via an application program interface (abbreviated API) receives the core data as input and returns the derived data;
the shared 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; and
informing a local cache manager, running on a same user device as or connected by a bus or local area network to the data consuming application, 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
the shared cache manager, responsive to requests from the local cache manager regarding the changes to the core data instances of interest and to the impacted derived data, determining whether follow-up requests from the local cache manager for the changed core data instances and the impacted derived data can be satisfied by the shared 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.
-
Citations
25 Claims
-
1. A method of caching derived data, including:
-
a shared 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, wherein at least one application program running on a server accessed by a data consuming application via an application program interface (abbreviated API) receives the core data as input and returns the derived data; the shared 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; and informing a local cache manager, running on a same user device as or connected by a bus or local area network to the data consuming application, 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 the shared cache manager, responsive to requests from the local cache manager regarding the changes to the core data instances of interest and to the impacted derived data, determining whether follow-up requests from the local cache manager for the changed core data instances and the impacted derived data can be satisfied by the shared 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, 9)
-
-
10. A system of computing devices, including:
-
a data consuming application running on a user device that consumes 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 the core data is obtained; at least one application program running on a server accessed by the data consuming application via the API, wherein the application program receives the core data as input and returns the derived data; a local cache manager, running on the same user device as or connected by a bus or local area network to the data consuming application, wherein the local cache manager refreshes a local cache of data used by the data consuming application; and a shared cache manager running on a caching system that accesses interest indications of core data instances and derived data of interest to the data consuming application; 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 local 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 local cache manager, responsive to information from the shared cache manager regarding the changes to the core data instances of interest 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 (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer readable storage medium loaded with computer instructions that, when executed, cause a shared cache manager running on a caching system to cache derived data to take actions including:
-
the shared cache manager receiving information regarding core data instances of interest requested from a data source and regarding requests for derived data of interest, wherein at least one application program running on a server accessed by a data consuming application via an application program interface (abbreviated API) receives the core data as input and returns the derived data; the shared 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; and informing a local cache manager, running on the same device as or connected by a bus or local area network to the data consuming application, 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 the shared cache manager, responsive to requests from the local cache manager regarding the changes to the core data instances of interest and to the impacted derived data, determining whether follow-up requests from the local cache manager for the changed core data instances and the impacted derived data can be satisfied by the shared 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 (20, 21, 22, 23, 24)
-
-
25. A shared cache manager running on an edge caching system that includes a processor and computer instructions that when executed the processor cause the shared cache manager to carry out a method including:
-
accessing interest indications of core data instances and derived data of interest to a data consuming application; 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 to generate the derived data; and informing a local cache manager, running on the same device as or connected by a bus or local area network to the data consuming application, of the changes to the core data instances of interest and of the impact on derived data returned by the at least one API; responding to an update request from the local cache manager for the updated version of the impacted derived data.
-
Specification