Techniques for content-based caching in a computer system
First Claim
1. A computer implemented method for caching comprising:
- performing first processing in response to a client failing to retrieve contents of a data element from a cache location specified by a first data element identifier including a first content identifier determined based upon the contents of the data element at a first point in time, said first processing including obtaining the contents of the data element from a data element source and storing the contents of the data element at a cache location specified by the first data element identifier;
updating the contents of the data element at a second point in time to create a second contents of the data element and storing the second contents of the data element at the second point in time in the data element source, said data element at said second point in time having a second content identifier determined based on the second contents of the data element at the second point in time; and
performing second processing in response to the client failing to retrieve the second contents of the data element from a cache location specified by a second data element identifier including the second content identifier, said second processing including obtaining the second contents of the data element from the data element source, and storing the second contents of the data element at a cache location specified by the second data element identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
Described are techniques for data processing and caching. In response to a client failing to retrieve contents of a data element from a cache location specified by a first data element identifier including a first content-based identifier, the contents of the data element are obtained and stored at a cache location specified by the first data element identifier. The contents of the data element are updated at a second point in time and stored as second contents in the data element source. The data element at the second point in time has a second content-based identifier. In response to the client failing to retrieve the second contents of the data element from a cache location specified by a second data element identifier including the second content-based identifier, the second contents of the data element are obtained and stored at a cache location specified by the second data element identifier.
68 Citations
32 Claims
-
1. A computer implemented method for caching comprising:
-
performing first processing in response to a client failing to retrieve contents of a data element from a cache location specified by a first data element identifier including a first content identifier determined based upon the contents of the data element at a first point in time, said first processing including obtaining the contents of the data element from a data element source and storing the contents of the data element at a cache location specified by the first data element identifier; updating the contents of the data element at a second point in time to create a second contents of the data element and storing the second contents of the data element at the second point in time in the data element source, said data element at said second point in time having a second content identifier determined based on the second contents of the data element at the second point in time; and performing second processing in response to the client failing to retrieve the second contents of the data element from a cache location specified by a second data element identifier including the second content identifier, said second processing including obtaining the second contents of the data element from the data element source, and storing the second contents of the data element at a cache location specified by the second data element identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for processing requests received by a server comprising:
-
processing at a first point in time, in response to receiving a request from a client, one or more rules using a rules engine executing on the server; generating, as a result of processing the one or more rules, a data stream including a first data element identifier for a data element referenced by the one or more rules, wherein the first data element identifier includes a first content identifier determined based upon contents of the data element at the first point in time; transmitting the data stream to the client wherein the client subsequently attempts to obtain the data element from a cache location specified by the first data element identifier; performing first processing in response to the client failing to obtain the contents of the data element from the cache location specified by the first data element identifier, said first processing including retrieving the contents of the data element from a data element source, transmitting the contents of the data element to the client, and storing the contents of the data element at the cache location specified by the first data element identifier; updating the contents of the data element at a second point in time to create a second contents of the data element and storing second contents of the data element at the second point in time in the data element source, said data element at said second point in time having a second content identifier determined based on the contents of the data element at the second point in time; and performing second processing in response to the client failing to obtain the second contents of the data element from a cache location specified by a second data element identifier including the second content identifier, said second processing including retrieving the second contents of the data element from the data element source, transmitting the second contents of the data element to the client, and storing the second contents of the data element at the cache location specified by the second data element identifier. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer implemented method for caching comprising:
-
storing, at a first point in time, contents of a data element and associated metadata at a data element source, said associated metadata including a file name and a first content identifier based upon the contents of the data element at the first point in time; determining whether the data element is stored at a cache location identified by a first data element identifier, the first data element identifier including the first content identifier and the file name; performing first processing in response to determining that the data element is not stored at the cache location identified by the first data element identifier, said first processing including obtaining the contents of the data element from the data element source and storing the contents of the data element at the cache location specified by the first data element identifier; updating the contents of the data element at a second point in time to create updated contents; storing, at the data element source, updated contents of the data element at the second point in time and associated metadata including the file name and a second content identifier based on the updated contents of the data element at the second point in time; determining whether the data element is stored at a cache location identified by a second data element identifier, the second data element identifier including the second content identifier and the file name; and performing second processing in response to determining that the data element is not stored at the cache location identified by the second data element identifier, said second processing including obtaining the updated contents of the data element from the data element source and storing the updated contents of the data element at the cache location specified by the second data element identifier.
-
-
31. A non-transitory computer readable medium comprising executable code stored thereon for data processing and caching, the computer readable medium comprising executable code stored thereon that:
-
perform first processing in response to a client failing to retrieve contents of a data element from a cache location specified by a first data element identifier including a first content identifier determined based upon the contents of the data element at a first point in time, said first processing including obtaining the contents of the data element from a data element source and storing the contents of the data element at a cache location specified by the first data element identifier; update the contents of the data element at a second point in time to create a second contents of the data element and store the second contents of the data element at the second point in time in the data element source, said data element at said second point in time having a second content identifier determined based on the second contents of the data element at the second point in time; and perform second processing in response to the client failing to retrieve the second contents of the data element from a cache location specified by a second data element identifier including the second content identifier, said second processing including obtaining the second contents of the data element from the data element source, and storing the second contents of the data element at a cache location specified by the second data element identifier.
-
-
32. A non-transitory computer readable medium comprising executable code stored thereon for processing requests received by a server, the computer readable medium comprising executable code stored that:
-
process at a first point in time, in response to receiving a request from a client, one or more rules using a rules engine executing on the server; generate, as a result of processing the one or more rules, a data stream including a first data element identifier for a data element referenced by the one or more rules, wherein the first data element identifier includes a first content identifier determined based upon contents of the data element at the first point in time; transmit the data stream to the client wherein the client subsequently attempts to obtain the data element from a cache location specified by the first data element identifier; perform first processing in response to the client failing to obtain the contents of the data element from the cache location specified by the first data element identifier, said first processing including retrieving the contents of the data element from a data element source, transmitting the contents of the data element to the client, and storing the contents of the data element at the cache location specified by the first data element identifier; update the contents of the data element at a second point in time to create a second contents of the data element and store the second contents of the data element at the second point in time in the data element source, said data element at said second point in time having a second content identifier determined based on the contents of the data element at the second point in time; and perforin second processing in response to the client failing to obtain the second contents of the data element from a cache location specified by a second data element identifier including the second content identifier, said second processing including retrieving the second contents of the data element from the data element source, transmitting the second contents of the data element to the client, and storing the second contents of the data element at the cache location specified by the second data element identifier.
-
Specification