BYTE RANGE CACHING
First Claim
1. A computer-implemented method for responding to client requests for portions of a content resource, the method comprising:
- receiving a request for a range of bytes that represents a portion of a content resource stored on a server;
identifying one or more chunks that the requested range of bytes overlaps based on a configurable chunk size into which the caching system divides the content resource;
determining whether each overlapped chunk is currently stored in a cache;
upon determining that at least one overlapped chunk is not currently stored in the cache,sending a byte range request to an origin server to download the overlapped chunks that are not stored in the cache;
receiving a response from the origin server that contains a byte range that includes the requested overlapped chunks; and
storing the received byte range in corresponding chunks in the cache; and
sending a response to the received request that includes the specified range of bytes retrieved from the cache,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A caching system segments content into multiple, individually cacheable chunks cached by a cache server that caches partial content and serves byte range requests with low latency and fewer duplicate requests to an origin server. The system receives a request from a client for a byte range of a content resource. The system determines the chunks overlapped by the specified byte range and sends a byte range request to the origin server for the overlapped chunks not already stored in a cache. The system stores the bytes of received responses as chunks in the cache and responds to the received request using the chunks stored in the cache. The system serves subsequent requests that overlap with previously requested ranges of bytes from the already retrieved chunks in the cache and makes requests to the origin server only for those chunks that a client has not previously requested.
133 Citations
20 Claims
-
1. A computer-implemented method for responding to client requests for portions of a content resource, the method comprising:
-
receiving a request for a range of bytes that represents a portion of a content resource stored on a server; identifying one or more chunks that the requested range of bytes overlaps based on a configurable chunk size into which the caching system divides the content resource; determining whether each overlapped chunk is currently stored in a cache; upon determining that at least one overlapped chunk is not currently stored in the cache, sending a byte range request to an origin server to download the overlapped chunks that are not stored in the cache; receiving a response from the origin server that contains a byte range that includes the requested overlapped chunks; and storing the received byte range in corresponding chunks in the cache; and sending a response to the received request that includes the specified range of bytes retrieved from the cache, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system for caching chunks of a content resource to respond to client requests for portions of the resource, the system comprising:
-
a processor and memory configured to execute software instructions; a request receiving component configured to receive requests from clients to download a portion of the content resource; a cache store configured to store cache chunks received from an origin server in response to a chunk request; a chunk mapping component configured to map received client requests into resource chunks stored by the cache store; an origin communication component configured to send requests to the origin server for chunks requested by clients that are not stored in the cache store; a chunk caching component configured to store chunk request responses from the origin server in the cache store; and a response mapping component configured to map the chunks available in the cache store to the byte range specified by a received client request. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable storage medium comprising instructions for controlling a computer system to configure a cache that caches chunks of a content resource, wherein the instructions, when executed, cause a processor to perform actions comprising:
-
receiving a request to set a chunk size that specifies an upper boundary on the size of a chunk of the content resource; determining a previously set chunk size; determining whether the request specifies purging an existing cache of chunks; upon determining that the request specifies purging an existing cache of chunks, deleting the existing cache of chunks; and upon determining that the request does not specify deleting an existing cache of chunks, converting the existing cache of chunks to chunks of the requested chunk size.
-
Specification