Claims
- 1. A method for searching a hierarchical distributed cache on a plurality of networked nodes, the method comprising:
inputting a cached data search request to one of the plurality of networked nodes; searching a cached data identifier directory stored on the networked node that received the cached data search request and determining if the requested data is cached on the networked node that received the search request; if the requested data is cached on the networked node that received the cached data search request, outputting an acknowledgement signal; if the requested data is not cached on the networked node that received the cached data search request, transmitting the cached data search request to other nodes in the plurality of networked nodes and determining if the requested data is cached on the other nodes in the plurality of networked nodes by searching a cached data identifier directory of at least one other networked node; and if the requested data is found cached on at least one of the other nodes in the plurality of networked nodes, retrieving the requested data from its storage location and transmitting the requested data to the networked node that received the cached data search request.
- 2. The method as claimed in claim 1, wherein transmitting the cached data search request to other nodes in the plurality of networked nodes further comprises spanning a network tree based upon a root node identifier in the cached data identifier associated with the cached data search request.
- 3. The method as claimed in claim 2, further comprising transmitting the cached data search request to another node based upon the spanned network tree.
- 4. The method as claimed in claim 1, wherein transmitting the requested data further comprises updating the cached data identifier directory on the transmitting node and each of the nodes in the pathway between the transmitting node and the networked node that received the cached data search request.
- 5. The method as claimed in claim 1, wherein transmitting the requested data further comprises caching the requested data on each node on the pathway between the transmitting node and the networked node that received the cached data search request.
- 6. A method for searching a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, the method comprising:
receiving a cached data search request from a client processor of one of the plurality of networked nodes; searching a cached data identifier directory of the networked node that received the cached data search request and determining if the requested data is cached on the networked node that received the search request; if the requested data is cached on the networked node that received the cached data search request, outputting an acknowledgement signal to the client processor; if the requested data is not cached on the networked node that received the search request, transmitting the cached data search request to at least one other node in the plurality of networked nodes and determining if the requested data is cached on at least one other networked node by searching a cached data identifier directory of at least one other networked node; and if the requested data is found cached on at least one of the other networked node, retrieving the requested data from its storage location and transmitting the requested data to the networked node that received the cached data search request.
- 7. The method as claimed in claim 6, wherein transmitting the cached data search request to other nodes in the plurality of networked nodes further comprises spanning a network tree based upon a root node identifier in the cached data identifier associated with the cached data search request.
- 8. The method as claimed in claim 7, further comprising transmitting the cached data search request to another node based upon the spanned network tree.
- 9. The method as claimed in claim 6, wherein transmitting the requested data further comprises updating the cached data identifier directory on the transmitting node and each of the nodes in the pathway between the transmitting node and the networked node that received the cached data search request.
- 10. The method as claimed in claim 6, wherein transmitting the requested data further comprises caching the requested data on each node on the pathway between the transmitting node and the networked node that received the cached data search request.
- 11. The method as claimed in claim 6, wherein transmitting the requested data further comprising notifying the client processor and transmitting the requested data from the networked node that received the cached data search request to the client processor.
- 12. A method for searching a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, each cached data identifier directory listing the cached data identifier associated with each piece of data in a node's data cached, the method comprising:
receiving a cached data search request from a client processor of one of the plurality of networked nodes, wherein the cached data search request identifies a cached data identifier to be located; searching a cached data identifier directory of the networked node that received the cached data search request and determining if the requested cached data identifier is listed in the cached data identifier directory on the networked node that received the search request; if the requested cached data identifier is listed in the cached data identifier directory on the networked node that received the cached data search request, outputting an acknowledgement signal to the client processor; if the requested cached data identifier is not listed in the cached data identifier directory on the networked node that received the search request, transmitting the cached data search request to at least one other node in the plurality of networked nodes and determining if the requested cached data identifier is listed in the cached data identifier directory of at least one other networked node by searching a cached data identifier directory of at least one other networked node; and if the requested cached data identifier is located on at least one of the other networked node, retrieving the requested data from its storage location indicated by the cached data identifier and transmitting the requested data to the networked node that received the cached data search request.
- 13. The method as claimed in claim 12, wherein transmitting the cached data search request to other nodes in the plurality of networked nodes further comprises spanning a network tree based upon a root node identifier in the cached data identifier associated with the cached data search request.
- 14. The method as claimed in claim 13, further comprising transmitting the cached data search request to another node based upon the spanned network tree.
- 15. The method as claimed in claim 12, wherein transmitting the requested data further comprises updating the cached data identifier directory on the transmitting node and each of the nodes in the pathway between the transmitting node and the networked node that received the cached data search request.
- 16. The method as claimed in claim 12, wherein transmitting the requested data further comprises caching the requested data on each node on the pathway between the transmitting node and the networked node that received the cached data search request.
- 17. The method as claimed in claim 12, wherein transmitting the requested data further comprising notifying the client processor and transmitting the requested data from the networked node that received the cached data search request to the client processor.
- 18. A computer system adapted for a distributed hierarchical cache, the computer system comprising:
a plurality of networked processors; a memory comprising software instructions adapted to enable the computer system to perform:
inputting a cached data search request to one of the plurality of networked processors; searching a cached data identifier directory stored on the networked processors that received the cached data search request and determining if the requested data is cached on the networked processor that received the search request; if the requested data is cached on the networked processor that received the cached data search request, outputting an acknowledgement signal; if the requested data is not cached on the networked processor that received the cached data search request, transmitting the cached data search request to other processors in the plurality of networked processors and determining if the requested data is cached on the other processors in the plurality of networked processors by searching a cached data identifier directory of at least one other networked processor; and if the requested data is found cached on at least one of the other processors in the plurality of networked processors, retrieving the requested data from its storage location and transmitting the requested data to the networked processor that received the cached data search request.
- 19. The computer system as claimed in claim 18, wherein transmitting the cached data search request to other processors in the plurality of networked processors further comprises spanning a network tree based upon a root node identifier in the cached data identifier associated with the cached data search request.
- 20. The computer system as claimed in claim 19, further comprising transmitting the cached data search request to another processor based upon the spanned network tree.
- 21. The computer system as claimed in claim 18, wherein transmitting the requested data further comprises updating the cached data identifier directory on the transmitting processor and each of the processors in the pathway between the transmitting processor and the networked processor that received the cached data search request.
- 22. The computer system as claimed in claim 18, wherein transmitting the requested data further comprises caching the requested data on each processor on the pathway between the transmitting processor and the networked processor that received the cached data search request.
- 23. The computer system as claimed in claim 18, wherein the cached data search request is input to a networked processor from an attached client processor.
- 24. The computer system as claimed in claim 23, wherein transmitting the requested data further comprising notifying the client processor and transmitting the requested data from the networked node that received the cached data search request to the client processor.
- 25. A computer program product for a distributed hierarchical cache, the computer program product comprising:
software instructions for enabling a computer system of networked processors to perform predetermined operations, and a computer readable medium bearing the software instructions; the predetermined operations comprising:
inputting a cached data search request to one of the plurality of networked processors; searching a cached data identifier directory stored on the networked processors that received the cached data search request and determining if the requested data is cached on the networked processor that received the search request; if the requested data is cached on the networked processor that received the cached data search request, outputting an acknowledgement signal; if the requested data is not cached on the networked processor that received the cached data search request, transmitting the cached data search request to other processors in the plurality of networked processors and determining if the requested data is cached on the other processors in the plurality of networked processors by searching a cached data identifier directory of at least one other networked processor; and if the requested data is found cached on at least one of the other processors in the plurality of networked processors, retrieving the requested data from its storage location and transmitting the requested data to the networked processor that received the cached data search request.
- 26. An executable program for a distributed hierarchical cache for a computer system comprised of a plurality of networked processors, the executable program comprising:
a first executable code portion which, when executed on a computer system, inputs a cached data search request to one of the plurality of networked processors; a second executable code portion which, when executed on a computer system, searches a cached data identifier directory stored on the networked processors that received the cached data search request and determining if the requested data is cached on the networked processor that received the search request; a third executable code portion which, when executed on a computer system, determines if the requested data is cached on the networked processor that received the cached data search request, outputting an acknowledgement signal; a fourth executable code portion which, when executed on a computer system, determines if the requested data is not cached on the networked processor that received the cached data search request, transmitting the cached data search request to other processors in the plurality of networked processors and determining if the requested data is cached on the other processors in the plurality of networked processors by searching a cached data identifier directory of at least one other networked processor; and a fifth executable code portion which, when executed on a computer system, determines if the requested data is found cached on at least one of the other processors in the plurality of networked processors, retrieving the requested data from its storage location and transmitting the requested data to the networked processor that received the cached data search request.
- 27. A method for updating data in a hierarchical distributed cache on a plurality of networked nodes, the method comprising:
accessing a network node and modifying cached prior data stored on the accessed network node; searching a cached data identifier directory and determining if the accessed node had previously updated other network nodes with the cached prior data; if the cached data identifier directory indicates that other nodes were updated with the cached prior data, transmitting the modified data to those nodes and replacing the cached prior data with the modified data; and determining if the accessed node was updated by at least one other network node with the cached prior data, and if yes, transmitting the modified data to the at least one other network node and replacing the cached prior data with the modified data; and issuing an acknowledgement signal indicating modified data has replaced cached prior data.
- 28. The method as claimed in claim 27, wherein issuing an acknowledgement signal comprises transmitting an acknowledgement signal from networked nodes that receive modified data to the networked node that transmitted the modified data.
- 29. The method as claimed in claim 27, wherein determining if the accessed node was updated by at least one other network node further comprises determining if the accessed node is a root node.
- 30. The method as claimed in claim 29, wherein determining if the accessed node was updated by at least one other network node further comprises transmitting the modified data to other networked nodes until the root node is reached.
- 31. The method as claimed in claim 30, wherein the method further comprises sending an acknowledgement from the root node to the accessed node upon receipt of the modified cached data at the root node.
- 32. The method as claimed in claim 27, wherein the modified data comprises a partial modification of the cached prior data that is transmitted to other networked nodes.
- 33. The method as claimed in claim 27, wherein the cached prior data on a network node that is receiving modified data is invalidated before the modified data is stored.
- 34. A method for updating data in a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, the method comprising:
accessing a network node via a client processor and modifying cached prior data stored on the accessed network node; searching the cached data identifier directory of the accessed node and determining if the accessed node had previously updated other network nodes with the cached prior data; if the cached data identifier directory indicates that other nodes were updated with the cached prior data, transmitting the modified data to those nodes and replacing the cached prior data with the modified data; and determining if the accessed node was updated by at least one other network node with the cached prior data, and if yes, transmitting the modified data to the at least one other network node and replacing the cached prior data with the modified data; and issuing an acknowledgement signal to the accessed node indicating modified data has replaced cached prior data and receiving the acknowledgement signal at the client processor.
- 35. A method for updating data in a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, each cached data identifier directory listing the cached data identifier associated with each piece of data in a node's data cached, the method comprising:
accessing a network node via a client processor attached to the accessed network node and modifying cached prior data stored on the accessed network node; searching a cached data identifier directory for a cached data identifier associated with the cached prior data and determining if the accessed node had previously updated other network nodes with the cached prior data; if the cached data identifier directory indicates that other nodes were updated with the cached prior data, forwarding the modified data to those nodes and replacing the cached prior data with the modified data; and determining if the accessed node was updated by at least one other network node with the cached prior data, and if yes, forwarding the modified data to the at least one other network node and replacing the cached prior data with the modified data; and issuing an acknowledgement signal to the accessed node indicating modified data has replaced cached prior data and receiving the acknowledgement signal at the client processor.
- 36. A computer system adapted for a distributed hierarchical cache, the computer system comprising:
a plurality of networked nodes; a memory comprising software instructions adapted to enable the computer system to perform the steps of:
accessing a network node and modifying cached prior data stored on the accessed network node; searching a cached data identifier directory and determining if the accessed node had previously updated other network nodes with the cached prior data; if the cached data identifier directory indicates that other nodes were updated with the cached prior data, transmitting the modified data to those nodes and replacing the cached prior data with the modified data; and determining if the accessed node was updated by at least one other network node with the cached prior data, and if yes, transmitting the modified data to the at least one other network node and replacing the cached prior data with the modified data; and issuing an acknowledgement signal indicating modified data has replaced cached prior data.
- 37. The computer system as claimed in claim 36, wherein the software instructions are further adapted to send an acknowledgement signal from networked nodes that receive modified data to the networked node that transmitted the modified data.
- 38. The computer system as claimed in claim 36, wherein the software instructions are further adapted to determine if the accessed node was updated by at least one other network node further by determining if the accessed node is a root node.
- 39. The computer system as claimed in claim 37, wherein the software instructions are further adapted to transmit the modified data to other networked nodes until the root node is reached.
- 40. The computer system as claimed in claim 39, wherein the software instructions are further adapted to send an acknowledgement from the root node to the accessed node upon receipt of the modified cached data at the root node.
- 41. The computer system as claimed in claim 36, wherein the modified data comprises a partial modification of the cached prior data that is transmitted to other networked nodes.
- 42. The computer system as claimed in claim 36, wherein the software instructions are further adapted so a network node that is receiving modified data is invalidated before the modified data is stored.
- 43. A computer program product for modifying data on a distributed hierarchical cache, the computer program product comprising:
software instructions for enabling a computer system of networked processors to perform predetermined operations, and a computer readable medium bearing the software instructions; the predetermined operations comprising:
accessing a network processor and modifying cached prior data stored on the accessed network processor; searching a cached data identifier directory and determining if the accessed processor had previously updated other network processors with the cached prior data; if the cached data identifier directory indicates that other processors were updated with the cached prior data, transmitting the modified data to those processors and replacing the cached prior data with the modified data; and determining if the accessed processor was updated by at least one other network node with the cached prior data, and if yes, transmitting the modified data to the at least one other network processor and replacing the cached prior data with the modified data; and issuing an acknowledgement signal indicating modified data has replaced cached prior data.
- 44. An executable program for modifying data on a distributed hierarchical cache for a computer system comprised of a plurality of networked processors, the executable program comprising:
a first executable code portion which, when executed on the computer system, accesses a network processor and modifies cached prior data stored on the accessed network processor under the direction of an operator; a second executable code portion which, when executed on the computer system, searches a cached data identifier directory and determines if the accessed processor had previously updated other network processors with the cached prior data; if the cached data identifier directory indicates that other processors were updated with the cached prior data, a third executable code portion which, when executed on the computer system, forwards the modified data to those processors and replaces the cached prior data with the modified data; and a fourth executable code portion which, when executed on the computer system, determines if the accessed processor was updated by at least one other network node with the cached prior data, and if yes, transmits the modified data to the at least one other network processor and replaces the cached prior data with the modified data; and a fifth executable code portion which, when executed on the computer system, issues an acknowledgement signal indicating modified data has replaced cached prior data.
- 45. A method for invalidating data in a hierarchical distributed cache on a plurality of networked nodes, the method comprising:
accessing a network node and issuing an invalidation request against the cached identified data stored on the accessed network node; searching a cached data identifier directory and determining if the accessed node had previously updated other network nodes with the cached identified data; if the cached data identifier directory indicates that other nodes were updated with the cached identified data, transmitting the invalidation request to those nodes; and determining if the accessed node was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network node; and issuing an acknowledgement signal indicating the cached identified data is invalidated.
- 46. A method for invalidating data in a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, the method comprising:
accessing a network node via a client processor and issuing an invalidation request against cached identified data stored on the accessed network node; searching the cached data identifier directory of the accessed node and determining if the accessed node had previously updated other network nodes with the cached identified data; if the cached data identifier directory indicates that other nodes were updated with the cached identified data, transmitting the invalidation request to those nodes; and determining if the accessed node was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network node; and issuing an acknowledgement signal to the accessed node indicating the cached identified data has been invalidated and receiving the acknowledgement signal at the client processor.
- 47. A method for invalidating data in a hierarchical distributed cache, the hierarchical distributed cache spread across a plurality of networked nodes, wherein each of the networked nodes are accessed by client processors, and each of the networked nodes comprise a data cache and a cached data identifier directory, each cached data identifier directory listing the cached data identifier associated with each piece of data in a node's data cached, the method comprising:
accessing a network node via a client processor attached to an access node and issuing an invalidation request against cached identified data stored on the accessed network node; searching the cached data identifier directory of the accessed node and determining if the accessed node had previously updated other network nodes with the cached identified data; if the cached data identifier directory indicates that other nodes were updated with the cached identified data, transmitting the invalidation request to those nodes; and determining if the accessed node was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network node; and issuing an acknowledgement signal to the accessed node indicating the cached identified data has been invalidated and receiving the acknowledgement signal at the client processor.
- 48. A computer system adapted for a distributed hierarchical cache, the computer system comprising:
a plurality of networked nodes; a memory comprising software instructions adapted to enable the computer system to perform the steps of:
accessing a network node and issuing an invalidation request against cached identified data stored on the accessed network node; searching a cached data identifier directory and determining if the accessed node had previously updated other network nodes with the cached identified data; if the cached data identifier directory indicates that other nodes were updated with the cached identified data, transmitting the invalidation request to those nodes; and determining if the accessed node was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network node; and issuing an acknowledgement signal indicating the cached identified data has been invalidated.
- 49. A computer program product for invalidating data on a distributed hierarchical cache, the computer program product comprising:
software instructions for enabling a computer system of networked processors to perform predetermined operations, and a computer readable medium bearing the software instructions; the predetermined operations comprising:
accessing a network processor and issuing an invalidation request against cached identified data stored on the accessed network processor; searching a cached data identifier directory and determining if the accessed processor had previously updated other network processors with the cached identified data; if the cached data identifier directory indicates that other processors were updated with the cached identified data, transmitting the invalidation request to those processors; and determining if the accessed processor was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network processor; and issuing an acknowledgement signal indicating the cached identified data has been invalidated.
- 50. An executable program for invalidating data on a distributed hierarchical cache for a computer system comprised of a plurality of networked processors, the executable program comprising:
a first executable code portion which, when executed on the computer system, accesses a network processor and issues an invalidation request against cached identified data stored on the accessed network processor; a second executable code portion which, when executed on the computer system, searches a cached data identifier directory and determines if the accessed processor had previously updated other network processors with the cached identified data; if the cached data identifier directory indicates that other processors were updated with the cached identified data, a third executable code portion which, when executed on the computer system, forwards the invalidation request to those processors; and a fourth executable code portion which, when executed on the computer system, determines if the accessed processor was updated by at least one other network node with the cached identified data, and if yes, transmitting the invalidation request to the at least one other network processor; and a fifth executable code portion which, when executed on the computer system, issues an acknowledgement signal indicating that cached identified data has been invalidated.
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application is an application filed under 35 U.S.C. § 111(a), claiming benefit pursuant to 35 U.S.C. § 120 of the filing date of the Provisional Application Serial No. 60/256,917 filed on Dec. 21, 2000, pursuant to 35 U.S.C. § 111(b). The Provisional Application Serial No. 60/256,917 is incorporated herein by reference for all it discloses.
PCT Information
Filing Document |
Filing Date |
Country |
Kind |
PCT/US01/19567 |
6/20/2001 |
WO |
|