System and method for performing flash crowd caching of dynamically generated objects in a data communication network
First Claim
1. A method for responding, by a device intermediary to a server and a plurality of clients, to a plurality of requests from different clients using a single response from the server, the method comprising:
- (a) forwarding, by a device intermediary to a server and a plurality of clients, a first request for a dynamically generated object from a first client to the server;
(b) receiving, by the device, a plurality of requests from different clients for the dynamically generated object requested by the first request, during a time period in which the server is processing and transmitting a response to the first request from the first client to the device and while the response is not yet transmitted to the first client;
(c) holding, by the device, the plurality of requests during the time period while waiting for the response to the first request for the dynamically generated object and not forwarding the plurality of requests to the server;
(d) transmitting, by the device upon receiving the response from the server to the first request, the response to the first client, the response comprising the dynamically generated object; and
(e) transmitting, by the device upon receiving the response from the server to the first request, responses to each of the plurality of requests using the dynamically generated object from the response to the first request.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed towards a “flash crowd” technique for handling situations where the cache receives additional requests, e.g., nearly simultaneous requests, for the same object during the time the server is processing and returning the response object for a first requestor. Once all such nearly simultaneous requests are responded to by the cache, the object is flushed from the cache, with no additional expiry time or invalidation action needed. This technique of the present invention enables data to be cached and served for very small amounts of time for objects that would otherwise be considered non-cacheable. As such, this technique yields a significant improvement in applications that serve fast changing data to a large volume of concurrent users, such, for example, as real time stock quotes, or a fast evolving news story.
757 Citations
16 Claims
-
1. A method for responding, by a device intermediary to a server and a plurality of clients, to a plurality of requests from different clients using a single response from the server, the method comprising:
-
(a) forwarding, by a device intermediary to a server and a plurality of clients, a first request for a dynamically generated object from a first client to the server; (b) receiving, by the device, a plurality of requests from different clients for the dynamically generated object requested by the first request, during a time period in which the server is processing and transmitting a response to the first request from the first client to the device and while the response is not yet transmitted to the first client; (c) holding, by the device, the plurality of requests during the time period while waiting for the response to the first request for the dynamically generated object and not forwarding the plurality of requests to the server; (d) transmitting, by the device upon receiving the response from the server to the first request, the response to the first client, the response comprising the dynamically generated object; and (e) transmitting, by the device upon receiving the response from the server to the first request, responses to each of the plurality of requests using the dynamically generated object from the response to the first request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for responding to a plurality of requests from different clients using a single response from a server, the system comprising:
-
a device intermediary to a server and a plurality of clients, a packet engine of the device forwarding a first request for a dynamically generated object from a first client to the server; wherein the device receives a plurality of requests from different clients for the dynamically generated object requested by the first request, during a time period in which the server is processing and transmitting a response to the first request from the first client to the device and while the response is not yet transmitted to the first client by the device; and wherein the packet engine holds the plurality of requests during the time period while waiting for the response to the first request for the dynamically generated object and does not forward the plurality of requests to the server; and wherein the packet engine, upon receiving the response comprising the dynamically generated object from the server to the first request, transmits the response to the first client and transmits responses to each of the plurality of requests using the dynamically generated object from the response to the first request. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification