IP Library Granted Patent US 8,966,053
Granted Patent B2
US 8,966,053 · App. 12/172,913 · Granted Feb 24, 2015

Methods and systems for performing a prefetch abort operation for network acceleration

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,966,053
App. No.
12/172,913
Granted
Feb 24, 2015
Kind
B2
Abstract

The present invention relates to systems, apparatus, and methods of determining whether to abort a prefetch operation. The method includes receiving a prefetched object downloaded from a content server, and checking the prefetched object to determine the prefetched object's size. The method further includes determining a probability of use of the prefetched object, checking a link between a server and a client to determine the link's bandwidth, and checking the link between the server and the client to determine the link's latency. In addition, the method includes, based on at least one of the size of the prefetched object, the probability of use of the prefetched object, the bandwidth of the link, and the latency of the link, determining whether to forward the prefetched object to the client.

Claims (45)

1. A method of determining whether to abort a prefetch operation, the method comprising:

determining that an object is to be prefetched from a content server to a proxy server based on part on the probability that the object will be accessed by a client;

prefetching, at the proxy server, the object from the content server, wherein the proxy server and the content server are in communication over a link between the proxy server and the content server, and wherein the prefetching, at the proxy server, the object from the content server comprises receiving the prefetched object at the proxy server;

checking, in response to receipt of the prefetched object at the proxy server, the prefetched object to determine the prefetched object's size;

determining a probability of use of the prefetched object;

checking a link between the proxy server and a client to determine the link's bandwidth;

based on the size of the prefetched object, the probability of use of the prefetched object, and the bandwidth of the link, determining, at the proxy server, whether prefetching of the prefetched object from the proxy server to the client should be aborted; and

in response to determining that prefetching to the client of the prefetched object should be aborted, abstaining from forwarding the prefetched object from the proxy server to the client.

2. The method of determining whether to abort a prefetch operation as recited in claim 1 , wherein the link between the proxy server and the content server is a low latency link and wherein the link between the proxy server and the client is a high latency link.

3. The method of determining whether to abort a prefetch operation as recited in claim 1 , wherein a user history is used, at least in part, to determine a probability of use of the prefetched object.

4. The method of determining whether to abort a prefetch operation as recited in claim 1 , wherein the size of the prefetched object, the probability of use of the prefetched object, the bandwidth of the link, a latency of the link, and an amount of time associated with the initial download of the prefetched object are each assigned a point value.

5. The method of determining whether to abort a prefetch operation as recited in claim 4 , wherein the point values are summed to generate a total point value.

6. The method of determining whether to abort a prefetch operation as recited in claim 5 , wherein if the total point value is greater than or equal to a threshold value, then the prefetched object is forwarded to the client.

7. The method of determining whether to abort a prefetch operation as recited in claim 1 , further comprising determining an amount of time associated with an initial download of the prefetched object from the Internet.

8. The method of determining whether to abort a prefetch operation as recited in claim 1 , further comprising communicating the prefetched object from the proxy server to the client in response to the determining whether prefetching of the prefetched object from the proxy server to the client should be aborted.

9. The method of determining whether to abort a prefetch operation as recited in claim 1 , further comprising performing a cost-benefit analysis on the prefetched object.

10. The method of determining whether to abort a prefetch operation as recited in claim 1 , further comprising, based on the cost-benefit analysis, determining whether the cost of prefetching the object outweighs the benefit of prefetching the object.

11. The method of determining whether to abort a prefetch operation as recited in claim 10 , wherein if the cost outweighs the benefit, then not prefetching the object, and wherein if the benefit outweighs the cost, then prefetching the object.

12. The method of determining whether to abort a prefetch operation as recited in claim 1 , further comprising based on determining to prefetch the prefetched object, forwarding the prefetched object to the client.

13. A system for determining whether to abort a prefetch operation, the system comprising:

a content server configured to:

transmit objects over a network connection;

a proxy server coupled with the content server via the network connection, the proxy server configured to:

determine that an object is to be prefetched from a content server to a proxy server based in part on the probability that the object will be accessed by a client;

prefetch the object from the content server, wherein prefetching the object from the content server comprises receiving the prefetched object at the proxy server;

check, in response to receipt of the prefetched object at the proxy server, the prefetched object to determine the prefetched object's size;

determine a probability of use of the prefetched object;

determine an amount of time associated with the initial download of the prefetched object;

check a link between the proxy server and a client to determine the link's bandwidth;

determine a latency of the link between the proxy server and the client; and

based on the size of the prefetched object, the probability of use of the prefetched object, the bandwidth of the link, the amount of time associated with the initial download of the prefetched object, and the latency of the link, determine whether prefetching of the prefetched object from the proxy server to the client should be aborted, and in response to a determination that prefetching to the client of the prefetched object should be aborted, abstain from forwarding the prefetched object from the proxy server to the client.

14. The system for determining whether to abort a prefetch operation as recited in claim 13 , wherein the client system further comprises a proxy client.

15. The system for determining whether to abort a prefetch operation as recited in claim 14 , wherein the proxy client is configured to intercept communications between the client and the proxy server.

16. The system for determining whether to abort a prefetch operation as recited in claim 15 , wherein the proxy client and the proxy server are configured to provide network acceleration for the client.

17. A non-transitory machine-readable medium having sets of instructions stored thereon which, when executed by one or more machines, cause the one or more machines to:

determine that an object is to be prefetched from a content server to a proxy server based on part on the probability that the object will be accessed by a client;

prefetch, at the proxy server, the object from the content server, wherein the proxy server and the content server are in communication over a link between the proxy server and the content server, and wherein prefetching the object from the content server comprises receiving the prefetched object at the proxy server;

check, in response to receipt of the object at the proxy server, the prefetched object to determine the prefetched object's size;

determine a probability of use of the prefetched object;

determine an amount of time associated with the initial download of the prefetched object;

check a link between the proxy server and a client to determine the link's bandwidth;

based on the size of the prefetched object, the probability of use of the prefetched object, the bandwidth of the link, and the amount of time associated with the initial download of the prefetched object, determine whether prefetching of the prefetched object from the proxy server to the client should be aborted

in response to determining that prefetching to the client of the prefetched object should be aborted, abstaining from forwarding the prefetched object from the proxy server to the client.

18. The non-transitory machine-readable medium as recited in claim 17 , wherein the sets of instructions which, when further executed by the one or more machines, cause the one or more machines to, based on the cost-benefit analysis, determine whether the cost of prefetching the object outweighs the benefit of prefetching the object.

19. The non-transitory machine-readable medium as recited in claim 18 , wherein if the cost outweighs the benefit, then not prefetching the object, and wherein if the benefit outweighs the cost, then prefetching the object.

Assignments (11)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0026 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0036 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
SECURITY AGREEMENT Recorded May 9, 2012
From: VIASAT, INC.
To: UNION BANK, N.A.
Reel/Frame 028184/0152 →