IP Library Granted Patent US 8,504,663
Granted Patent B2
US 8,504,663 · App. 13/613,543 · Granted Aug 6, 2013

Method and system for community data caching

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,504,663
App. No.
13/613,543
Granted
Aug 6, 2013
Kind
B2
Abstract

A cache module ( 26 ) at a client computer ( 12 ) controls a cache portion ( 28 ) on a storage device ( 24 ). The cache module communicates with other cache modules at other clients to form a cache community ( 15 ). The cache modules store World Wide Web or other content in the cache portions for retrieval in response to requests ( 32 ) for content from browsers ( 30 ) in the cache community. When the requested content is not available in the cache community, the requested content may be retrieved from an origin server ( 19 ) using the Internet.

Claims (46)

1. A client system for community data caching, comprising:

a memory, the memory including a dedicated cache portion operable to cache content;

a cache module operable to manage content cached in the cache portion of the memory, the cache module storing information identifying locations of other cache portions within a distributed cache community where content should be cached;

a processor operable to generate a request for content;

wherein the cache module is operable to intercept and process the request, determine where the content should be located, transmit a query for the content if the content should be located at any of the other cache portions, and deliver requested content from any of the other cache portions in the cache community when cached or from an origin server when not cached.

2. The system of claim 1 , wherein the information stored in the cache module indicates a particular client system and associated cache module in the cache community responsible for caching which content.

3. The system of claim 1 , wherein the cache module is operable to negotiate a primary distribution of portions of content to be cached within the cache community.

4. The system of claim 3 , wherein the primary distribution is determined by one of splitting requests alphabetically, by hash value, and by Internet Protocol address range.

5. The system of claim 3 , wherein the primary distribution is determined by one or more of link speed of the client system, processing power at the client system, and size of dedicated cache portion in the memory.

6. The system of claim 3 , wherein the cache module is operable to negotiate a secondary distribution of portions of content to be cached within the cache community different than the primary distribution to provide a backup of cached content.

7. The system of claim 1 , wherein the cache module is configurable to limit one or more of an amount of data cached in the cache portion, amount of bandwidth available to a user of the client system, and an amount of processor time used by the cache module.

8. A method for community data caching, comprising:

allocating a dedicated cache portion in a memory at a particular one of a plurality of distributed locations in a cache community for caching content;

managing content cached in the cache portion of the memory;

storing information identifying distributed locations of cache portions within the cached community where particular content is desired to should be cached;

intercepting a request for content;

determining where the content should be located;

sending a query to a particular distributed location where the content should be located;

receiving the requested content from the particular distributed location when cached therein;

retrieving the content from an origin server when the requested content is not cached at the particular distributed location.

9. The method of claim 8 , wherein the information indicates which distributed location is responsible for caching which content.

10. The method of claim 8 , further comprising:

negotiating a primary distribution of portions of content to be cached.

11. The method of claim 10 , wherein the primary distribution is determined by one of splitting requests alphabetically, by hash value, and by Internet Protocol address range.

12. The method of claim 10 , wherein the primary distribution is determined by one or more of link speed at the particular distributed location, processing power at the particular distributed location, and size of the dedicated cache portion at the particular distributed location.

13. The method of claim 10 , further comprising:

negotiating a secondary distribution of portions of content to be cached to provide a backup of cached content.

14. The method of claim 8 , further comprising:

limiting one or more of an amount of data cached in the cache portion, amount of bandwidth available to the particular distributed location, and an amount of processor time used by the particular distributed location.

15. A system for community data caching, comprising:

means for allocating a dedicated cache portion in a memory at a particular one of a plurality of distributed locations in a cache community for caching content;

means for managing content cached in the cache portion of the memory;

means for storing information identifying distributed locations of cache portions within the cached community where particular content is desired to should be cached;

means for intercepting a request for content;

means for determining where the content should be located;

means for sending a query to a particular distributed location where the content should be located;

means for receiving the requested content from the particular distributed location when cached therein;

means for retrieving the content from an origin server when the requested content is not cached at the particular distributed location.

16. The method of claim 15 , further comprising:

means for negotiating a primary distribution of portions of content to be cached.

17. The method of claim 16 , wherein the primary distribution is determined by one of splitting requests alphabetically, by hash value, and by Internet Protocol address range.

18. The method of claim 16 , wherein the primary distribution is determined by one or more of link speed at the particular distributed location, processing power at the particular distributed location, and size of the dedicated cache portion at the particular distributed location.

19. The method of claim 16 , further comprising:

means for negotiating a secondary distribution of portions of content to be cached to provide a backup of cached content.

20. The method of claim 15 , further comprising:

means for limiting one or more of an amount of data cached in the cache portion, amount of bandwidth to the particular distributed location, and an amount of processor time used by the particular distributed location.

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.; CHIN, BRYAN S.; CONSOLVER, DAVID A.; DEMASTERS, GREGG A.
To: EPICREALM INC.
Reel/Frame 028953/0885 →
MERGER Recorded Sep 13, 2012
From: EPICREALM INC.
To: EPICREALM OPERATING INC.
Reel/Frame 028954/0033 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2012
From: EPICREALM OPERATING INC.
To: EPICREALM LICENSING LLC
Reel/Frame 028954/0116 →
MERGER Recorded Sep 13, 2012
From: EPICREALM LICENSING, LLC
To: EPICREALM LICENSING, LP
Reel/Frame 028954/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2012
From: EPCIREALM LICENSING, LP
To: PARALLEL NETWORKS, LLC
Reel/Frame 028954/0426 →
Continuity (7)
Continuation 13419188 · Mar 13, 2012
Continuation 13176393 · Jul 5, 2011
Continuation 12748969 · Mar 29, 2010
Continuation 12186340 · Aug 5, 2008
Continuation 11379985 · Apr 24, 2006
Continuation 09759392 · Jan 12, 2001
Related Publication 20130007188A1 · Jan 3, 2013