Shared running-buffer-based caching system
First Claim
1. A network proxy server, comprising:
- a network connection able to intercept content-object requests of clients from a server, and able to respond instead of said server to such; and
a plurality of content buffers for duplicating web content passing through from said server to any client, and for caching such web content to any subsequent clients;
wherein, multiple, moving-window buffers are included in the plurality of content buffers to service content requests of a server by various independent clients; and
wherein, whole requests for content-object from single clients can be serviced simultaneously from parts distributed across more than one such content buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A server-proxy-client network delivers web content objects from servers to clients from cache content at a proxy server in between. Multiple, moving-window buffers are used to service content requests of the server by various independent clients. A first request for content is delivered by the server through the proxy to the requesting client. The content is simultaneously duplicated to a first circulating buffer. Once the buffer fills, the earlier parts are automatically deleted. The buffer therefore holds a most-recently delivered window of content. If a second request for the same content comes in, a check is made to see if the start of the content is still in the first buffer. If it is, the content is delivered from the first buffer. Otherwise, a second buffer is opened and both buffers are used to deliver what they can simultaneously. Such process can open up third and fourth buffers depending on the size of the content, the size of the buffers, and the respective timing of requests.
118 Citations
15 Claims
-
1. A network proxy server, comprising:
-
a network connection able to intercept content-object requests of clients from a server, and able to respond instead of said server to such; and
a plurality of content buffers for duplicating web content passing through from said server to any client, and for caching such web content to any subsequent clients;
wherein, multiple, moving-window buffers are included in the plurality of content buffers to service content requests of a server by various independent clients; and
wherein, whole requests for content-object from single clients can be serviced simultaneously from parts distributed across more than one such content buffer.
-
-
2. A system of delivering objects from servers to clients comprising:
-
receiving a first request for an content object from a first client;
allocating a first running buffer;
retrieving the content object as a datastream having a start point and inserting the datastream into the first buffer while delivering the same datastream to the first client;
when the first buffer is filled, deleting data from the start point of the datastream while continuing to insert retrieved data into the buffer, so that the buffer contains a moving window of the retrieved data;
receiving a second request for the content object from a client;
if the second request is received while the start point of the datastream is still in the first buffer, serving the content object directly from the first buffer; and
if the second request is received after the start point has been deleted from the first buffer, retrieving the portion of the content object that has been deleted from the first buffer, commencing from the start point, and delivering the same as a datastream while simultaneously delivering a different part of the content object from the first buffer. - View Dependent Claims (3, 4, 5, 6, 7, 8)
-
-
9. Computer data storage media having stored thereon software performing the following functions:
-
receiving a first request for an content object;
allocating a first running buffer;
retrieving the content object as a datastream having a start point and inserting the datastream into the first buffer while delivering the same datastream;
when the first buffer is filled, deleting data from the start point of the datastream while continuing to insert retrieved data into the buffer, so that the buffer contains a moving window of the retrieved data;
receiving a second request for the content object;
if the second request is received while the start point of the datastream is in the first buffer, serving the content object directly from the first buffer;
if the second request is received after the start point has been deleted from the first buffer;
retrieving the portion of the content object that has been deleted from the first buffer, commencing from the start point, and delivering the same as a datastream while simultaneously delivering a different part of the content object as a datastream from the first buffer. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification