IP Library Granted Patent US 8,572,326
Granted Patent B2
US 8,572,326 · App. 13/525,780 · Granted Oct 29, 2013

Method and system for dynamic distributed data caching when a source of data is not available

Inventors: Keith A. Lowery (Richardson, TX); Bryan S. Chin (Plano, TX); David A. Consolver (Arlington, TX); Gregg A. DeMasters (Plano, TX)
Assignee: Parallel Networks, LLC
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,572,326
App. No.
13/525,780
Granted
Oct 29, 2013
Kind
B2
Abstract

A method and system for dynamic distributed data caching is presented. The method includes establishing a cache community of members for data storage. A request for data at a particular member of the cache community is generated. A cache location in the cache community where the data would be located is determined. A determination is made as to whether the data is stored at the cache location. The data is requested from a source of the data in response to the data not being cached at the cache location. A determination is made as to whether the source is currently unavailable to provide the data. The data is continuously requested from the source while waiting for the source to become available. The particular member is allowed to request other data while waiting for data to become available from the source.

Claims (56)

1. A method for dynamic distributed data caching, comprising:

establishing a cache community of members for data storage;

generating a request for data at a particular member of the cache community;

determining a cache location in the cache community where the data would be located;

determining whether the data is stored at the cache location;

requesting the data from a source of the data in response to the data not being cached at the cache location;

determining that the source is currently unavailable to provide the data;

continuing to request the data from the source while waiting for the source to become available;

allowing the particular member to request other data while waiting for data to become available from the source.

2. The method of claim 1 , further comprising:

retrieving the data when the source becomes available to process the request;

providing the data to the particular member;

caching the data at the cache location.

3. The method of claim 1 , further comprising:

providing the particular member a display indicating a response time to one or more sources of data.

4. The method of claim 1 , further comprising:

generating a cache status message indicating that a caching function is either active or inactive at the particular member.

5. The method of claim 1 , further comprising:

abandoning the request for the data after a predetermined period of time has elapsed without successfully retrieving the data.

6. The method of claim 1 , further comprising:

negotiating a primary distribution of data to be cached among a plurality of cache locations in the cache community.

7. The method of claim 6 , further comprising:

negotiating a secondary distribution of data for the cache community, the secondary distribution anticipating a failure of a member of the cache community.

8. A non-transitory computer readable storage medium including code for dynamic distributed data caching, the code operable to:

establish a cache community of members for data storage;

generate a request for data at a particular member of the cache community;

determine a cache location in the cache community where the data would be located;

determine whether the data is stored at the cache location;

request the data from a source of the data in response to the data not being cached at the cache location;

determine that the source is currently unavailable to provide the data;

continue to request the data from the source while waiting for the source to become available;

allow the particular member to request other data while waiting for data to become available from the source.

9. The medium of claim 8 , wherein the code is further operable to

retrieve the data when the source becomes available to process the request;

provide the data to the particular member;

cache the data at the cache location.

10. The medium of claim 8 , wherein the code is further operable to:

provide the particular member a display indicating a response time to one or more sources of data.

11. The medium of claim 8 , wherein the code is further operable to:

generate a cache status message indicating that a caching function is either active or inactive at the particular member.

12. The medium of claim 8 , wherein the code is further operable to:

abandon the request for the data after a predetermined period of time has elapsed without successfully retrieving the data.

13. The medium of claim 6 , wherein the code is further operable to:

negotiate a primary distribution of data to be cached among a plurality of cache locations in the cache community.

14. The medium of claim 13 , wherein the code is further operable to:

negotiate a secondary distribution of data for the cache community, the secondary distribution anticipating a failure of a member of the cache community.

15. A system for dynamic distributed data caching, comprising:

a memory operable to store a browser and a cache module;

a processor executing the browser at a particular member of a cache community, the browser operable to generate a request for data;

the processor executing the cache module, the cache module operable to determine a cache location in the cache community where the data would be located, the cache module operable to determine whether the data is stored at the cache location, the cache module operable to request the data from a source of the data in response to the data not being cached at the cache location, the cache module operable to determine that the source is currently unavailable to provide the data, the cache module operable to continue to request the data from the source while waiting for the source to become available,

wherein the browser is allowed to request other data while waiting for data to become available from the source.

16. The system of claim 15 , wherein the cache module is operable to retrieve the data when the source becomes available to process the request, the cache module operable to provide the data to the browser, the cache module operable to cache the data at the cache location.

17. The system of claim 15 , wherein the cache module is operable to provide the browser a display indicating a response time to one or more sources of data.

18. The system of claim 15 , wherein the cache module is operable to generate a cache status message indicating that a caching function is either active or inactive at the particular member.

19. The system of claim l 5 , wherein the cache module is operable to abandon the request for the data after a predetermined period of time has elapsed without successfully retrieving the data.

20. The system of claim 15 , wherein the cache module is operable to negotiating a primary and secondary distribution of data to be cached among a plurality of cache locations in the cache community.

Assignments (7)
COURT ORDER Recorded Apr 22, 2021
From: PARALLEL NETWORKS LICENSING, LLC
To: MICROSOFT CORPORATION
Reel/Frame 056027/0120 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 028394 FRAME 0181. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER DOCUMENT. Recorded Jul 6, 2012
From: EPICREALM LICENSING, LLC
To: EPICREALM LICENSING, LP
Reel/Frame 028503/0396 →
MERGER Recorded Jun 18, 2012
From: EPICREALM INC.
To: EPICREALM OPERATING INC.
Reel/Frame 028394/0007 →
MERGER Recorded Jun 18, 2012
From: EPICREALM LICENSING, LLC
To: EPIC REALM LICENSING, LP
Reel/Frame 028394/0181 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: EPICREALM LICENSING, LP
To: PARALLEL NETWORKS, LLC
Reel/Frame 028394/0333 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: ERICREALM OPERATING INC.
To: EPICREALM LICENSING LLC
Reel/Frame 028394/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: LOWERY, KEITH A.; CHIN, BRYAN S.; CONSOLVER, DAVID A.; DEMASTERS, GREGG A.
To: EPICREALM INC.
Reel/Frame 028393/0890 →
Continuity (5)
Continuation 13026966 · Feb 14, 2011
Continuation 12791311 · Jun 1, 2010
Continuation 11681544 · Mar 2, 2007
Division 09759406 · Jan 12, 2001
Related Publication 20120254341A1 · Oct 4, 2012