IP Library Granted Patent US 7,519,677
Granted Patent B2
US 7,519,677 · App. 11/681,413 · Granted Apr 14, 2009

Method and system for dynamic distributed data caching

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 7,519,677
App. No.
11/681,413
Granted
Apr 14, 2009
Kind
B2
Abstract

A method and system for dynamic distributed data caching is presented. The method includes providing a cache community ( 402 ) comprising at least one peer ( 413 ). Each peer has an associated first content portion ( 511 ) indicating content to be cached by the respective peer. A client ( 404 ) may be allowed to join the cache community. A peer list ( 426 ) associated with the cache community is updated to include the client. The peer list indicates the peers in the cache community. A respective second content portion ( 511 ) is associated with each peer based on the addition of the client.

Claims (73)

1. A method for dynamic distributed caching, comprising:

requesting a list of cache communities from a cache server;

identifying those cache communities in the list that satisfy a best fit criteria for joining;

affirmatively determining whether at least one of the identified cache communities in the list exists;

attempting to join an existing cache community in response to an existence of at least one of the identified cache communities; and

generating a new cache community in response to no existing cache communities being found, no cache communities in the list satisfying the best fit criteria for joining, and attempts to join an existing cache community having failed.

2. The method of claim 1 , wherein requesting the list includes:

generating a community request; and

communicating the community request to the cache server.

3. The method of claim 2 , further comprising:

determining whether a response has been received from the cache server within a threshold time.

4. The method of claim 1 , wherein determining whether at least one of the cache communities in the list exists includes:

generating a probe message; and

broadcasting the probe message.

5. The method of claim 4 , wherein the probe message includes a CRMSG_WAKEUP data message.

6. The method of claim 4 , further comprising:

determining whether a response to the probe message has been received from at least one existing cache community within a threshold time.

7. The method of claim 4 , wherein broadcasting the probe message includes multicasting the probe message on an Internet Protocol multicast address.

8. The method of claim 1 , wherein attempting to join an existing cache community includes:

generating a join request;

communicating the join request to the existing cache community.

9. The method of claim 1 , wherein generating the new cache community includes:

generating an add master request; and

communicating the add master request to the cache server.

10. The method of claim 9 , wherein the add master request includes a CRMSG_ADDMASTER data message.

11. A computer readable medium including code for dynamic distributed caching, the code operable to:

request a list of cache communities from a cache server;

identify those cache communities in the list that satisfy a best fit criteria for joining;

affirmatively determine whether at least one of the identified cache communities exists;

attempt to join an existing cache community in response to an existence of at least one of the identified cache communities; and

generate a new cache community in response to no existing cache communities being found, no cache communities in the list satisfying the best fit criteria for joining, and attempts to join an existing cache community having failed.

12. The computer readable medium of claim 11 , wherein the code is further operable to:

generate a community request; and

communicate the community request to the cache server.

13. The computer readable medium of claim 12 , wherein the code is further operable to determine whether a response has been received from the cache server within a threshold time.

14. The computer readable medium of claim 11 , wherein the code is further operable to:

generate a probe message; and

broadcast the probe message.

15. The computer readable medium of claim 14 , wherein the probe message includes a CRMSG_WAKEUP data message.

16. The computer readable medium of claim 14 , wherein the code is further operable to determine whether a response to the probe message has been received from at least one existing cache community within a threshold time.

17. The computer readable medium of claim 14 , wherein the code is further operable to multicast the probe message on an Internet Protocol multicast address.

18. The computer readable medium of claim 11 , wherein the code is further operable to:

generate a join request; and

communicate the join request to the existing cache community.

19. The computer readable medium of claim 11 , wherein the code is further operable to:

generating an add master request; and

communicating the add master request to the cache server.

20. The computer readable medium of claim 19 , wherein the add master request includes a CRMSG_ADDMASTER data message.

21. A system for dynamic distributed caching, comprising:

means for requesting a list of cache communities from a cache server;

means for identifying those cache communities in the list that satisfy a best fit criteria for joining;

means for affirmatively determining whether at least one of the identified cache communities in the list exists;

means for attempting to join an existing cache community in response to the existence of at least one of the identified cache communities; and

means for generating a new cache community in response to no existing cache communities being found, no cache communities in the list satisfying the best fit criteria for joining, and attempts to join an existing cache community having failed.

22. The method of claim 21 , wherein the means for requesting the list includes:

means for generating a community request; and

means for communicating the community request to the cache server.

23. The method of claim 22 , further comprising:

means for determining whether a response has been received from the cache server within a threshold time.

24. The method of claim 21 , wherein the means for determining whether at least one of the cache communities in the list exists includes:

means for generating a probe message; and

means for broadcasting the probe message.

25. The method of claim 24 , wherein the probe message includes a CRMSG_WAKEUP data message.

26. The method of claim 24 , further comprising:

means for determining whether a response to the probe message has been received from at least one existing cache community within a threshold time.

27. The method of claim 24 , wherein the means for broadcasting the probe message includes means for multicasting the probe message on an Internet Protocol multicast address.

28. The method of claim 21 , wherein the means for attempting to join an existing cache community includes:

means for generating a join request;

means for communicating the join request to the existing cache community.

29. The method of claim 21 , wherein the means for generating the new cache community includes:

means for generating an add master request; and

means for communicating the add master request to the cache server.

30. The method of claim 29 , wherein the add master request includes a CRMSG_ADDMASTER data message.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Sep 26, 2007
From: EPICREALM OPERATING INC.
To: EPICREALM LICENSING LLC
Reel/Frame 019886/0631 →
MERGER Recorded Sep 26, 2007
From: EPICREALM LICENSING, LLC
To: EPICREALM LICENSING, LP
Reel/Frame 019886/0728 →
NUNC PRO TUNC ASSIGNMENT Recorded Sep 26, 2007
From: EPICREALM LICENSING, LP
To: PARALLEL NETWORKS, LLC
Reel/Frame 019886/0769 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2007
From: LOWERY, KEITH A.; CHIN, BRYAN S.; CONSOLVER, DAVID A.; DEMASTERS, GREGG A.
To: EPICREALM INC.
Reel/Frame 018953/0969 →
CHANGE OF NAME Recorded Mar 2, 2007
From: EPICREALM INC.
To: EPICREALM OPERATING INC.
Reel/Frame 018954/0119 →
Continuity (2)
Division 0975940600 · Jan 12, 2001
Related Publication 20070150576A1 · Jun 28, 2007