IP Library Granted Patent US 8,463,846
Granted Patent B2
US 8,463,846 · App. 12/775,348 · Granted Jun 11, 2013

File bundling for cache servers of content delivery networks

Inventor: Antoine Jean Girbal (Los Gatos, CA)
Assignee: CDNetworks Co., Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,463,846
App. No.
12/775,348
Granted
Jun 11, 2013
Kind
B2
Abstract

Data access time in content delivery networks is improved by storing files in cache servers as file bundles. A cache server determines that multiple files are requested by the same client based on information available in the request including the IP address of the client, a URL of a webpage referring to the file, and/or a cookie stored at a client. The cache server stores multiple files requested by the same client on the hard drive as a file bundle with meta data associating the files with one another, such that they can be accessed together. A future request from the client for a file in a file bundle results in multiple files from the file bundle being loaded in the memory. If the client requests another file from the file bundle, the file is accessed directly from the memory instead of the hard drive, resulting in improved performance.

Claims (57)

1. In a cache server of a content delivery network including a plurality of cache servers, a computer-implemented method for storing files on the cache server, the method comprising:

receiving a first request for a first file;

retrieving the first file from a first content source;

receiving a second request for a second file;

retrieving the second file from the first content source or a second content source;

determining whether the first request and the second request are received from a same client; and

responsive to determining that the first request and the second request are received from the same client, storing the first file and the second file on a storage device of the cache server with metadata associating the first file with the second file in a file bundle.

2. The method of claim 1 , wherein determining that the first request and the second request are received from a same client comprises:

identifying a first parameter associated with the first request, wherein the first parameter is associated with a first client;

identifying a second parameter associated with the second request, wherein the second parameter is associated with a second client; and

determining that the first parameter matches the second parameter.

3. The method of claim 1 , wherein the first request and the second request are determined to be from a same client if the first request and the second request are received from a same connection between the client and the cache server.

4. The method of claim 1 , wherein the first request and the second request are determined to be from a same client if a first network address obtained from the first request is identical to a second network address obtained from the second request.

5. The method of claim 1 , wherein the first request and the second request are determined to be from a same client if a first cookie obtained from the first request matches a second cookie obtained from the second request.

6. The method of claim 1 , wherein the first file and second file are stored on the storage device in adjacent locations.

7. The method of claim 1 , wherein the cache server is a first cache server of an edge point of presence (POP) of the content delivery network and the first content source is a second cache server of the edge POP of the content delivery network.

8. The method of claim 1 , wherein the cache server is in a first edge point of presence (POP) of the content delivery network and the first content source is another cache server in a second edge POP of the content delivery network.

9. The method of claim 1 , wherein the first content source is an origin server.

10. The method of claim 1 , wherein the metadata comprises a pointer from the first file to the second file in the storage device.

11. The method of claim 1 , wherein the first file and the second file are stored on the storage device in the file bundle such that the first and the second file can be read by a single seek operation of the storage device.

12. The method of claim 1 , further comprising:

receiving a third request for a third file;

retrieving the third file from a third content source; and

responsive to determining that the third request is received from another client different from the client from which the first request and the second request are received, storing the third file on the storage device of the cache server in another file bundle different from said file bundle in which the first file and the second file are stored.

13. The method of claim 1 , wherein the first file and the second file of the file bundle are temporarily stored in a memory device of the cache server before the first file and the second file are stored in the storage device.

14. The method of claim 13 , wherein the first file and the second file are stored in the storage device after a predetermined amount of time passes since storage of the first file and the second file in the memory device of the cache server.

15. The method of claim 13 , wherein the first file and the second file are stored in the storage device after a predetermined number of files are included in the file bundle that is temporarily stored in the memory device.

16. A cache server of a content delivery network including at least a processor and a computer readable storage medium storing computer instructions configured to cause the processor to perform a computer-implemented method of storing files on the cache server, the method comprising:

receiving a first request for a first file;

retrieving the first file from a first content source;

receiving a second request for a second file;

retrieving the second file from the first content source or a second content source;

determining whether the first request and the second request are received from a same client; and

responsive to determining that the first request and the second request are received from the same client, storing the first file and the second file on a storage device of the cache server with metadata associating the first file with the second file in a file bundle.

17. The cache server of claim 16 , wherein determining that the first request and the second request are received from a same client comprises:

identifying a first parameter associated with the first request, wherein the first parameter is associated with a first client;

identifying a second parameter associated with the second request, wherein the second parameter is associated with a second client; and

determining that the first parameter matches the second parameter.

18. The cache server of claim 16 , wherein the method further comprises

receiving a third request for a third file;

retrieving the third file from a third content source; and

responsive to determining that the third request is received from another client different from the client from which the first request and the second request are received, storing the third file on the storage device of the cache server in another file bundle different from said file bundle in which the first file and the second file are stored.

19. A non-transitory computer readable storage medium storing a computer program product including computer instructions configured to cause a processor of a computer to perform a computer-implemented method of storing files on a cache server of a content delivery network, the method comprising:

receiving a first request for a first file;

retrieving the first file from a first content source;

receiving a second request for a second file;

retrieving the second file from the first content source or a second content source;

determining whether the first request and the second request are received from a same client; and

responsive to determining that the first request and the second request are received from the same client, storing the first file and the second file on a storage device of the cache server with metadata associating the first file with the second file in a file bundle.

20. The non-transitory computer readable storage medium of claim 19 , wherein determining that the first request and the second request are received from a same client comprises:

identifying a first parameter associated with the first request, wherein the first parameter is associated with a first client;

identifying a second parameter associated with the second request, wherein the second parameter is associated with a second client; and

determining that the first parameter matches the second parameter.

21. The non-transitory computer readable storage medium of claim 19 , wherein the method further comprises

receiving a third request for a third file from the content delivery network;

retrieving the third file from a third content source; and

responsive to determining that the third request is received from another client different from the client from which the first request and the second request are received, storing the third file on the storage device of the cache server in another file bundle different from said file bundle in which the first file and the second file are stored.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2020
From: HONGKONG CDNETWORKS HOLDINGS CO., LTD
To: CDNETWORKS HOLDINGS SINGAPORE PTE. LTD.
Reel/Frame 052097/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2019
From: CDNETWORKS CO., LTD.
To: HONGKONG CDNETWORKS HOLDINGS COMPANY LIMITED
Reel/Frame 048384/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2010
From: GIRBAL, ANTOINE JEAN
To: CDNETWORKS CO., LTD.
Reel/Frame 024349/0241 →
Continuity (1)
Related Publication 20110276623A1 · Nov 10, 2011