CACHED DATA REPURPOSING
First Claim
1. A method comprising:
- receiving a client request for client-requested data;
accessing a cache set to attempt to locate the client-requested data;
a) if the data is in the cache set and is not expired data, returning the data from the cache set in response to the client request;
orb) if the data is in the cache set and is expired data, maintaining the expired data and requesting the data from a data provider, andi) if the requested data is available from the data provider, receiving the data from the data provider in response to the request for the data from the data provider and returning the data from the data provider in response to the client request;
orii) if the data is not available from the data provider, returning the expired data in response to the client request.
1 Assignment
0 Petitions
Accused Products
Abstract
The described technology is directed towards repurposing expired cached data when no unexpired data is available. Cached, unexpired data is used in response to a request when such data exists. If such data does not exist, e.g., at a front-end data service, then an attempt to obtain the requested data from another (e.g., back-end data service) is made. If the attempt is unsuccessful, and expired cached data exists, the expired cached data is returned in response to the request, e.g., instead of returning an error. A back-end data service may similarly return expired cached data when the back-end data service is unable to obtain unexpired requested data elsewhere. An emergency mode may be entered in which data, whether expired or not, is returned from a cache when such data exists, such as when an attempt to obtain the data elsewhere is known in advance to be futile.
18 Citations
20 Claims
-
1. A method comprising:
-
receiving a client request for client-requested data; accessing a cache set to attempt to locate the client-requested data; a) if the data is in the cache set and is not expired data, returning the data from the cache set in response to the client request;
orb) if the data is in the cache set and is expired data, maintaining the expired data and requesting the data from a data provider, and i) if the requested data is available from the data provider, receiving the data from the data provider in response to the request for the data from the data provider and returning the data from the data provider in response to the client request;
orii) if the data is not available from the data provider, returning the expired data in response to the client request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising, a front-end data service, the front-end data service coupled to communicate with a back-end data service, and the front-end data service coupled to communicate with client requesters, including to receive a client request for data, the front-end data service including a front-end cache set that is accessed for the request to determine if cached data exists in the front-end cache set to use in a response to the client request for data;
- and
if cached data exists in the front-end cache set and the cached data is not expired, the front-end data service uses the data from the front-end cache set in the response to the client request for data; if cached data does not exist in the front-end cache set, the front-end data makes a front-end service request for the data to the back-end data service, and if data is returned from the back-end data service in a back-end response to the front-end service request, the front-end data service uses the data returned from the back-end data service in the response to the client request for data; and if cached data exists in the front-end cache set, and the cached data is expired cached data, the front-end data service makes a front-end service request for the data to the back-end data service, and if the data is not available from the back-end data service, the front-end data service uses the expired cached data from the front-end cache set in response to the client request for data. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- and
-
16. One or more machine-readable storage media having machine-executable instructions, which when executed perform steps, comprising:
-
(a) receiving a client request for data at a front-end data service; (b) accessing a front-end cache set to attempt to obtain the data, and if obtained from the front-end cache set, determining whether the data is expired, and if not expired, using the data in a response to the client and advancing to step (d), and if expired, maintaining the expired data; (c) communicating with a back-end data service to attempt to obtain the data, and if the data is available from the back-end data service, using the data in a response to the client and advancing to step (d), and (i) if the data is not available from the back-end data service, and expired data is maintained via step (b), using the expired data in a response to the client and advancing to step (d);
or(ii) if the data is not available from the back-end data service and no expired data is maintained, providing an error message in a response to the client and advancing to step (d); and (d) communicating the response to the client. - View Dependent Claims (17, 18, 19, 20)
and (d) communicating the back-end response to the front-end data service.
-
-
20. The one or more machine-readable storage media of claim 16 wherein communicating with the back-end data service to attempt to obtain the data comprises sending a front-end data service request to the back-end data service, and having further machine-executable instructions comprising, operating the back-end data service is in an emergency mode, including receiving the front-end data service request for data at the back-end data service, accessing a back-end cache set to attempt to obtain the data, and if obtained from the back-end cache set, returning the data from the back-end cache set in response to the front-end data service request, and if not obtained from the back-end cache set, returning an error message in response to the front-end data service request.
Specification