Claims
- 1. A method including steps for
compressing, at a first cache, an object stored at said first cache; coupling a compressed version of said object from said first cache to a second cache. decompressing, at said second cache, an uncompressed version of said object.
- 2. A method as in claim 1, wherein said second cache can only recover an uncompressed object from said compressed object in response to a contents of said second memory.
- 3. A method as in claim 1, wherein said second cache can recover an uncompressed object from said compressed object without further information.
- 4. A method as in claim 1, wherein
said steps for compressing include steps for determining a known function of a first object at said first cache; said compressed version includes a result of said known function; said steps for decompressing include steps for determining said known function of a second object at said second cache, and comparing said compressed version with a result of said known function of said second object.
- 5. A method as in claim 4, wherein said known function is substantially irreversible.
- 6. A method including steps for
determining, at a first cache, a first object signature responsive to said first object; coupling said first object signature to a second cache; comparing, at said second cache, said first object signature with a function of at least one second object; refraining from transmitting said first object in response to said steps for comparing.
- 7. A method as in claim 6, including steps for
coupling a result of said steps for comparing to said first cache; and coupling said first object to said second cache responsive to said comparison result.
- 8. A method as in claim 6,
including steps for storing at said first cache information whether said first object is likely to be stored at said second cache; wherein said steps for transmitting said object signature are responsive to said information.
- 9. A method including steps for
determining, at a first cache, first information regarding a likelihood whether an object received from a server is stale; determining, at a second cache, second information regarding a likelihood whether said object will be requested by a client; coupling said first information and said second information between said first memory and said second memory; discarding said object at first cache disposed in response to said second information; and discarding said object at said second cache disposed in response to said first information.
- 10. A method including steps for
storing a first object at a first cache; determining an object signature at said first cache in response to said object; transmitting said object signature to a second cache; comparing said object signature with a function of at least one object stored at said second cache; transmitting said first object to said second cache in response to said steps for comparing.
- 11. A method as in claim 10,
including steps for storing at said first cache information whether said first object is likely to be stored at said second cache; wherein said steps for transmitting said object signature are responsive to said information.
- 12. A method as in claim 10, including steps for transmitting a result of said steps for comparing to said first cache.
- 13. A method including steps for
storing, at a first cache, a first object and first information regarding whether to discard said first object; storing, at a second cache, a second object and second information regarding whether to discard said second object; coupling said first information to said second cache; and discarding said second object in response to said first information and in response to said second information.
- 14. A method as in claim 13, including steps for
coupling said second information to said first cache; and discarding said first object in response to said first information and in response to said second information.
- 15. A method as in claim 13, wherein said first information includes a likelihood of said object being stored at said second cache.
- 16. A method including steps for
storing, at a first cache, an object from a server and first information regarding said object at said server; storing, at a second cache, an object for delivery to a client and second information regarding requests for said object by said client; transmitting said first information from said first cache to said second cache; transmitting said second information from said second cache to said first cache; whereby said first cache and said second cache can collectively operate more effectively.
- 17. A system including
a first cache disposed for being coupled to a server, and having memory for storing an object from said server and for storing first information regarding said object at said server; a second cache disposed for being coupled to a client, and having memory for storing said object for delivery to said client and for storing second information regarding requests for said object by said client; a first communication path between said first cache and said second cache, disposed for transmitting said first information from said first cache to said second cache; a second communication path between said first cache and said second cache, disposed for transmitting said second information from said second cache to said first cache; whereby said first cache and said second cache can collectively operate more effectively.
- 18. A system including
a first cache disposed for being coupled to a server, and having memory for storing an object from said server, said object having an associated object signature; a second cache disposed for being coupled to a client, and having memory for storing said object for delivery to said client; a communication path between said first cache and said second cache, whereby said first cache can transmit either said object signature or said object to said second cache; whereby said first cache can refrain from transmitting said object to said second cache when said object is already stored at said second cache.
- 19. A system as in claim 18, including a communication path between said second cache and said first cache, whereby said second cache can transmit a result of a comparison between said object signature and said object at said second cache.
- 20. A system as in claim 18, including a communication path
coupling said object signature to said second cache; coupling a result of a comparison between said object signature and a function of said object at said second cache; and coupling said object to said second cache responsive to said comparison result.
- 21. A system as in claim 18, including
a first communication path coupling said object signature to said second cache; a second communication path coupling to said first cache a result of a comparison between said object signature and a function of said object at said second cache; and a third communication path coupling said object to said second cache responsive to said comparison result.
- 22. A system as in claim 18, including
a third cache disposed for being coupled to a second client, and having memory for storing said object for delivery to said second client; a communication path between said first cache and said third cache, whereby said first cache can transmit either said object signature or said object to said third cache; whereby said first cache can refrain from transmitting said object to said third cache when said object is already stored at said third cache.
- 23. A system as in claim 18, including memory at said first cache including information whether said object is likely to be stored at said second cache.
- 24. A system including
a first cache including a first memory and an information compressor; a second cache including a second memory and an information decompressor; and a communication path disposed for coupling a compressed object from said first cache to said second cache.
- 25. A system as in claim 24, wherein
said first memory includes a first object; said information compressor includes a known function; said communication path is disposed for coupling to said second cache a first result of said known function applied to said first object; said second memory includes a second object; said information decompressor includes said known function, and a comparison between said first result and a second result of said known function applied to said second object; whereby said second cache is disposed for determining that said second object is substantially identical to said first object in response to a result of said comparison.
- 26. A system as in claim 25, wherein said known function is substantially irreversible.
- 27. A system as in claim 24, wherein said information compressor is lossy.
- 28. A system as in claim 24, wherein said second cache can only recover an uncompressed object from said compressed object in response to a contents of said second memory.
- 29. A system as in claim 24, wherein said second cache can recover an uncompressed object from said compressed object without further information.
- 30. A system including
a first cache including a first object and a first object signature responsive to said first object; a second cache including a second object, said second cache coupled to said first object signature; said first cache coupled to a result of a comparison between said first object signature and a second object signature responsive to said second object; whereby said first cache can refrain from transmitting said first object in response to said comparison.
- 31. A system as in claim 30, including a communication path
coupling said first object signature to said second cache; coupling said comparison result to said first cache; and coupling said first object to said second cache responsive to said comparison result.
- 32. A system as in claim 30, including
a first communication path coupling said first object signature to said second cache; a second communication path coupling said comparison result to said first cache; and a third communication path coupling said first object to said second cache responsive to said comparison result.
- 33. A system as in claim 30, including
a third cache including a third object, said third cache coupled to said first object signature; said first cache coupled to a result of a second comparison between said first object signature and a third object signature responsive to said third object; whereby said first cache can refrain from transmitting said first object in response to said second comparison.
- 34. A system as in claim 30, including information at said first cache whether said transmitting said first object is likely to be desirable.
- 35. A system including
a first cache including a first object and first information regarding whether to discard said first object; a second cache coupled to said first information, said second cache including a second object and second information regarding whether to discard said second object, said second cache disposed for discarding said second object in response to said first information and in response to said second information.
- 36. A system as in claim 35, wherein
said first cache is coupled to said second information and is disposed for discarding said first object in response to said first information and in response to said second information.
- 37. A system as in claim 35, wherein said first information includes a likelihood of said object being stored at said second cache.
- 38. A system including
a first cache including first information regarding a likelihood whether an object received from a server is stale; a second cache including second information regarding a likelihood whether said object will be requested by a client; a communication path capable of coupling said first information and said second information between said first memory and said second memory; said first cache disposed for discarding said object in response to said second information; and said second cache disposed for discarding said object in response to said first information.
- 39. A system including
a first memory including a first object received from a server and a first object signature responsive to said first object; a second memory including a second object ready for delivery to a client; a communication path capable of coupling said first object signature to said second memory; a comparator coupled to said second memory and to said communication path, responsive to whether a second object signature responsive to said second object is substantially identical to said first object signature; said communication path capable of coupling an output of said comparator to said first memory; whereby said first memory can refrain from delivering said first object to said second memory in response to said output of said comparator.
- 40. A system including
a plurality of caches, each including memory; a communication network coupling each said cache to substantially all other said caches; at least a first said cache having an object in its memory and disposed to transmit said object to a second said cache only if said second cache does not already have said object in its memory.
- 41. A system as in claim 40, including memory at said first cache including information whether said object is likely to be stored at said second cache.
- 42. A system as in claim 40, wherein said communication network
couples an object signature for said object to said second cache; couples to said first cache a result of a comparison between said object signature and a function of said object at said second cache; and couples said object to said second cache responsive to said comparison result.
- 43. A system as in claim 40, wherein
said first cache includes a first signature function coupled to memory for said first cache; said second cache includes a second signature function coupled to memory for said second cache, and a comparator coupled to said first signature function and said second signature function; wherein said first cache refrains from transmitting said first object in response to said comparator.
- 44. A system including
a set of root caches disposed for receiving a data item from a set of servers; a set of leaf caches disposed for delivering said data item to a set of clients, at least one of said leaf caches being coupled to at least one of said root caches; wherein said root caches and said leaf caches include memory having said data item stored therein after an initial use of said data item; wherein said data item has an associated item signature, said item signature being responsive to said data item; wherein if a server returns a second data item substantially identical to said one data item, said one root cache transmits said item signature to said one leaf cache; whereby said one root cache refrains from transmitting said data item more than once to said one leaf cache.
- 45. A system as in claim 44, wherein said set of root caches and said set of leaf caches are disposed in a tree structure.
- 46. A system as in claim 44, wherein said set of root caches has exactly one member.
- 47. A system as in claim 44, including memory in said one root cache indicating for each particular said leaf cache whether said particular leaf cache is likely to have said data item in its memory.
- 48. A method including steps for
associating, at both a source and a destination, a tag value with a dictionary element; if said dictionary element is present at said destination, transmitting, from said source to said destination, said tag value in place of said dictionary element; if said dictionary element is not present at said destination, transmitting, from said source to said destination, said dictionary element.
- 49. A method including steps for
providing a set of associations, at both a source and a destination, each association including a tag value and a dictionary element; possibly discarding one or more of said set of associations at said destination; transmitting, from said source to said destination, a selected tag value or its associated-dictionary element, in response to said steps for possibly discarding.
- 50. A method as in claim 49, including steps for
transmitting, from said destination to said source, an indication responsive to said steps for possibly discarding; whereby if said dictionary element is still present at said destination, said source does not need to transmit said dictionary element to said destination.
- 51. A method including steps for
transmitting a dictionary element from a source to a destination; associating, at both said source and said destination, a tag value with said dictionary element; possibly discarding said dictionary element at said destination; transmitting, from said source to said destination, said tag value or said dictionary element in response to said steps for possibly discarding.
- 52. A method as in claim 51, including steps for
transmitting, from said destination to said source, an indication responsive to said steps for possibly discarding; whereby if said dictionary element is still present at said destination, said source does not need to transmit said dictionary element to said destination.
- 53. Unreliable dictionary compression.
- 54. A method as in claim 53, wherein a set of dictionary elements for said method each includes an entire object deliverable from a server to a client.
- 55. A method as in claim 53, wherein a set of dictionary elements for said method includes at least one object larger than one kilobyte.
- 56. A system including
means for associating, at both a source and a destination, a tag value with a dictionary element; means, if said dictionary element is present at said destination, for transmitting, from said source to said destination, said tag value in place of said dictionary element; means, if said dictionary element is not present at said destination, for transmitting, from said source to said destination, said dictionary element.
- 57. A system including
means for providing a set of associations, at both a source and a destination, each association including a tag value and a dictionary element; means for possibly discarding one or more of said set of associations at said destination; means for transmitting, from said source to said destination, a selected tag value or its associated dictionary element, in response to said steps for possibly discarding.
- 58. A system as in claim 57, including
means for transmitting, from said destination to said source, an indication responsive to said steps for possibly discarding; whereby if said dictionary element is still present at said destination, said source does not need to transmit said dictionary element to said destination.
- 59. A system including
means for transmitting a dictionary element from a source to a destination; means for associating, at both said source and said destination, a tag value with said dictionary element; means for possibly discarding said dictionary element at said destination; means for transmitting, from said source to said destination, said tag value or said dictionary element in response to said steps for possibly discarding.
- 60. A system as in claim 59, including
means for transmitting, from said destination to said source, an indication responsive to said steps for possibly discarding; whereby if said dictionary element is still present at said destination, said source does not need to transmit said dictionary element to said destination.
Parent Case Info
[0001] This application is a continuation of application Ser. No. 09/127,249 filed Jul. 31, 1998, and of PCT application Serial Number PCT/US99/17149 filed Jul. 28, 1999, hereby incorporated by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09127249 |
Jul 1998 |
US |
Child |
10206388 |
Jul 2002 |
US |