IP Library Granted Patent US 8,725,836
Granted Patent B2
US 8,725,836 · App. 13/614,361 · Granted May 13, 2014

Method and apparatus for content synchronization

Inventors: Keith A. Lowery (Richardson, TX); David K. Davidson (Dallas, TX); Avinash C. Saxena (Plano, TX)
Assignee: Parallel Networks, LLC
H04L67/2842G06F17/30902
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,725,836
App. No.
13/614,361
Granted
May 13, 2014
Kind
B2
Abstract

When requested content is available at a data center, the data center returns the requested content to the data center. When the requested content is locally unavailable at the data center, the requested content is retrieved from an origin server. The retrieval of the content from the origin server may be delayed based on the processing load at the origin server. When retrieval of the content is delayed, the request is prioritized and placed in a queue for handling by the origin server based on the priority of the request. Also, when retrieval of the content is delayed, a status page may be communicated to the browser to inform a user of the delay and provide alternate content and status information related to the request determined as a function of the request or the current state of the origin server.

Claims (78)

1. A computer-implemented method for processing data requests, comprising:

receiving data at a cache server;

receiving an expiration command associated with the data at the cache server from a remote client;

marking the data as expired in response to the expiration command;

receiving a request for the data at the cache server;

requesting permission to send the request to an origin server in order to retrieve the data upon determining that the data is marked as expired;

determining a priority associated with the data;

assigning the priority to the request;

storing the request in a queue of requests;

sending the request from the queue to the origin server in response to the priority of the request having a highest value compared to other requests in the queue.

2. The computer-implemented method of claim 1 , wherein the priority is determined based on the request and the data.

3. The computer-implemented method of claim 1 , wherein the priority is determined based on the request, the data, and external information associated with the request.

4. The computer-implemented method of claim 1 , further comprising:

determining that the data is not prioritizable;

determining a default priority associated with the data;

assigning the default priority to the request.

5. The computer-implemented method of claim 4 , wherein the default priority is determined based on an amount of prioritizable data stored in the origin server.

6. The computer-implemented method of claim 1 , further comprising:

determining a delay before the request is sent from the queue to the origin server;

comparing the delay to a predetermined time limit;

determining whether to send a status update in response to the delay exceeding the predetermined time limit.

7. The computer-implemented method of claim 1 , further comprising:

determining a delay before the request is sent from the queue to the origin server;

comparing the delay to a predetermined time limit;

determining whether the origin server is available to process requests in response to the delay not exceeding the predetermined time limit.

8. A non-transitory computer readable medium including code for processing data requests, the code operable to:

receiving data at a cache server;

receiving an expiration command associated with the data at the cache server from a remote client;

marking the data as expired in response to the expiration command;

receiving a request for the data at the cache server;

requesting permission to send the request to an origin server in order to retrieve the data upon determining that the data is marked as expired;

determining a priority associated with the data;

assigning the priority to the request;

storing the request in a queue of requests;

sending the request from the queue to the origin server in response to the priority of the request having a highest value compared to other requests in the queue.

9. The non-transitory computer readable medium of claim 8 , wherein the priority is determined based on the request and the data.

10. The non-transitory computer readable medium of claim 8 , wherein the priority is determined based on the request, the data, and external information associated with the request.

11. The non-transitory computer readable medium of claim 8 , wherein the code is further operable to:

determine that the data is not prioritizable;

determine a default priority associated with the data;

assign the default priority to the request.

12. The non-transitory computer readable medium of claim 11 , wherein the default priority is determined based on an amount of prioritizable data stored in the origin server.

13. The non-transitory computer readable medium of claim 8 , wherein the code is further operable to:

determine a delay before the request is sent from the queue to the origin server;

compare the delay to a predetermined time limit;

determine whether to send a status update in response to the delay exceeding the predetermined time limit.

14. The non-transitory computer readable medium of claim 8 , wherein the code is further operable to:

determine a delay before the request is sent from the queue to the origin server;

compare the delay to a predetermined time limit;

determine whether the origin server is available to process requests in response to the delay not exceeding the predetermined time limit.

15. A system for processing data requests, comprising:

an origin server operable to store data;

a flow control server operable to:

determine a priority associated with the data;

assign the priority to a request for the data;

a cache server operable to:

receive data;

receive an expiration command associated with the data from a remote client;

mark the data as expired in response to the expiration command;

receive a request for the data;

request permission from the flow control server to send the request to an origin server in order to retrieve the data upon determining that the data is marked as expired;

receiving the priority assigned to the request;

storing the request in a queue of requests;

sending the request from the queue to the origin server in response to the priority of the request having a highest value compared to other requests in the queue.

16. The system of claim 15 , wherein the priority is determined based on the request, the data, and external information associated with the request.

17. The system of claim 15 , wherein the flow control server is further operable to:

determine that the data is not prioritizable;

determine a default priority associated with the data;

assign the default priority to the request.

18. The system of claim 17 , wherein the default priority is determined based on an amount of prioritizable data stored in the origin server.

19. The system of claim 15 , wherein the flow control server is further operable to:

determine a delay before the request is sent from the queue to the origin server;

compare the delay to a predetermined time limit;

determine whether to send a status update in response to the delay exceeding the predetermined time limit.

20. The system of claim 15 , wherein the flow control server is further operable to:

determine a delay before the request is sent from the queue to the origin server;

compare the delay to a predetermined time limit;

determine whether the origin server is available to process requests in response to the delay not exceeding the predetermined time limit.

Assignments (6)
COURT ORDER Recorded Apr 22, 2021
From: PARALLEL NETWORKS LICENSING, LLC
To: MICROSOFT CORPORATION
Reel/Frame 056027/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2012
From: LOWERY, KEITH A.; DAVIDSON, DAVID K.; SAXENA, AVINASH C.
To: EPICREALM INC.
Reel/Frame 028956/0807 →
MERGER Recorded Sep 13, 2012
From: EPICREALM INC.
To: EPICREALM OPERATING INC.
Reel/Frame 028956/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2012
From: EPICREALM OPERATING INC.
To: EPICREALM LICENSING LLC
Reel/Frame 028956/0972 →
MERGER Recorded Sep 13, 2012
From: EPICREALM LICENSING, LLC
To: EPICREALM LICENSING, LP
Reel/Frame 028957/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2012
From: EPICREALM LICENSING, LP
To: PARALLEL NETWORKS, LLC
Reel/Frame 028957/0106 →
Continuity (3)
Continuation 09590760 · Jun 8, 2000
Provisional Application 60180843 · Feb 7, 2000
Related Publication 20130031060A1 · Jan 31, 2013