IP Library Granted Patent US 9,521,214
Granted Patent B2
US 9,521,214 · App. 13/237,722 · Granted Dec 13, 2016

Application acceleration with partial file caching

Inventors: Hariharan Kolam (Palo Alto, CA); Manav Ratan Mital (San Carlos, CA); Raghu Venkat (Palo Alto, CA)
Assignee: Instart Logic, Inc.
H04L67/34H04L67/2885H04L29/06034
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 9,521,214
App. No.
13/237,722
Granted
Dec 13, 2016
Kind
B2
Abstract

A method of distributing content is disclosed. The method includes receiving by an edge server an indication indicating that a client has sent a request for a file that includes content related to executing an application. The method includes analyzing interaction with the client by the edge server to determine a first portion of the file that is likely to be required by the client for executing the application sooner than a second portion of the file. The method further includes generating by the edge server a modified file that includes the first portion of the file. The method further includes transmitting the modified file to the client.

Claims (45)

1. A method of distributing content, comprising:

receiving by an edge server an indication indicating that a client has sent a file request for a file that includes a plurality of pieces of content related to executing an application;

analyzing by the edge server previous content requests by one or more clients to determine a first portion of the file that is likely to be required by the client for executing the application sooner than a second portion of the file, wherein a previous content request by one client comprises an explicit request sent to the edge server or another server, requesting a specific piece of content related to executing the application;

generating by the edge server a modified file that includes the first portion of the file, wherein the first portion of the file includes a partial file corresponding to the file, and wherein the partial file is fetched from a cache within a hierarchy of caches, and wherein a level of the cache within the hierarchy of caches is determined at least in part based on the analyzed previous content requests by the one or more clients, and wherein a cache located at a higher level within the hierarchy of caches has a higher network latency path to the client; and

transmitting the modified file to the client.

2. The method of claim 1 , wherein the determining of the level of the cache within the hierarchy of caches further comprises determining the level of the cache at least in part based on how likely the partial file is required by the client and other clients for executing the application.

3. The method of claim 1 , wherein the cache is located at one of the following: a primary store server, the edge server, or other edge servers.

4. The method of claim 3 , wherein the primary store server has access to the file, and wherein the partial file is distributed to the cache from the primary store server.

5. The method of claim 1 , wherein the first portion of the file is sufficient to permit initial functioning of the application, and wherein the modified file is formatted with at least one placeholder for the second portion of the file, and wherein the application can begin to access the first portion of the file by accessing the modified file, and wherein the application can access the second portion of the file using the at least one placeholder.

6. The method of claim 5 , wherein accessing the second portion of the file using the at least one placeholder comprises accessing the portion from one of the following: a cache located on a device on which the client runs, a file system located on the device on which the client runs, or a memory located on the device on which the client runs.

7. The method of claim 5 , wherein accessing the second portion of the file using the at least one placeholder comprises sending a request for the portion by the client.

8. The method of claim 1 , wherein the first portion of the file is based on a state of the application.

9. The method of claim 8 , wherein the application is a game application, and wherein the state of the application is a player level.

10. The method of claim 1 , wherein the first portion of the file comprises likely to be used portions of the file.

11. The method of claim 1 , wherein the file is a Small Web Format (SWF) file.

12. The method of claim 1 , wherein the file includes a script, and wherein the modified file includes a modified script.

13. The method of claim 1 , wherein the file includes a first class, and wherein the modified file includes a second class that imports the first class.

14. The method of claim 1 , further comprising transmitting a subset of the second portion of the file to the client prior to the client requesting the subset.

15. The method of claim 14 , wherein the subset is in part based on how likely the subset is used by the application.

16. An edge server for distributing content, comprising:

a processor configured to:

receive an indication indicating that a client has sent a file request for a file that includes a plurality of pieces of content related to executing an application;

analyze previous content requests by one or more clients to determine a first portion of the file that is likely to be required by the client for executing the application sooner than a second portion of the file, wherein a previous content request by one client comprises an explicit request sent to the edge server or another server, requesting a specific piece of content related to executing the application;

generate a modified file that includes the first portion of the file, wherein the first portion of the file includes a partial file corresponding to the file, and wherein the partial file is fetched from a cache within a hierarchy of caches, and wherein a level of the cache within the hierarchy of caches is determined at least in part based on the analyzed previous content requests by the one or more clients, and wherein a cache located at a higher level within the hierarchy of caches has a higher network latency path to the client; and

transmit the modified file to the client; and

a memory coupled to the processor and configured to provide the processor with instructions.

17. The edge server of claim 16 , wherein the determining of the level of the cache within the hierarchy of caches further comprises determining the level of the cache at least in part based on how likely the partial file is required by the client and other clients for executing the application.

18. The edge server of claim 16 , wherein the cache is located at one of the following: a primary store server, the edge server, or other edge servers.

19. The edge server of claim 18 , wherein the primary store server has access to the file, and wherein the partial file is distributed to the cache from the primary store server.

20. The edge server of claim 16 , wherein the first portion of the file is sufficient to permit initial functioning of the application, and wherein the modified file is formatted with at least one placeholder for the second portion of the file, and wherein the application can begin to access the first portion of the file by accessing the modified file, and wherein the application can access the second portion of the file using the at least one placeholder.

21. The edge server of claim 20 , wherein accessing the second portion of the file using the at least one placeholder comprises accessing the portion from one of the following: a cache located on a device on which the client runs, a file system located on the device on which the client runs, or a memory located on the device on which the client runs.

22. The edge server of claim 20 , wherein accessing the second portion of the file using the at least one placeholder comprises sending a request for the portion by the client.

23. The edge server of claim 16 , wherein the first portion of the file is based on a state of the application.

24. The edge server of claim 23 , wherein the application is a game application, and wherein the state of the application is a player level.

25. The edge server of claim 16 , wherein the first portion of the file comprises likely to be used portions of the file.

26. The edge server of claim 16 , wherein the file is a Small Web Format (SWF) file.

27. The edge server of claim 16 , wherein the file includes a script, and wherein the modified file includes a modified script.

28. The edge server of claim 16 , wherein the file includes a first class, and wherein the modified file includes a second class that imports the first class.

29. The edge server of claim 16 , further comprising transmitting a subset of the second portion of the file to the client prior to the client requesting the subset.

30. The edge server of claim 29 , wherein the subset is in part based on how likely the subset is used by the application.

31. A computer program product for distributing content, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving by an edge server an indication indicating that a client has sent a file request for a file that includes a plurality of pieces of content related to executing an application;

analyzing by the edge server previous content requests by one or more clients to determine a first portion of the file that is likely to be required by the client for executing the application sooner than a second portion of the file, wherein a previous content request by one client comprises an explicit request sent to the edge server or another server, requesting a specific piece of content related to executing the application;

generating by the edge server a modified file that includes the first portion of the file, wherein the first portion of the file includes a partial file corresponding to the file, and wherein the partial file is fetched from a cache within a hierarchy of caches, and wherein a level of the cache within the hierarchy of caches is determined at least in part based on the analyzed previous content requests by the one or more clients, and wherein a cache located at a higher level within the hierarchy of caches has a higher network latency path to the client; and

transmitting the modified file to the client.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: INSTART LOGIC, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 052121/0335 →
CHANGE OF NAME Recorded Dec 4, 2012
From: INSTART, INC.
To: INSTART LOGIC, INC.
Reel/Frame 029405/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2011
From: KOLAM, HARIHARAN; MITAL, MANAV RATAN; VENKAT, RAGHU
To: INSTART INC.
Reel/Frame 027208/0058 →
Continuity (1)
Related Publication 20130073689A1 · Mar 21, 2013