Apparatus and method for storing data in a proxy cache in a network
First Claim
Patent Images
1. An apparatus for caching data in a network, the apparatus comprising:
- a proxy cache configured to receive request for an object from a client and to fetch data blocks from a server, wherein the proxy cache includes a memory; and
the proxy cache configured to cache the data blocks in a hierarchical relationship within the object and as an active data set, wherein the hierarchical relationship of data blocks are stored in the memory in the proxy cache;
wherein in response to a cache miss where the proxy cache does not contain a requested data block, the proxy cache determines which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and wherein the proxy cache sends a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and the proxy cache will fetch the data block from the server and cache the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, the invention provides an apparatus for caching data in a network, with the apparatus including a proxy cache configured to receive request for an object from a client and to fetch data blocks from a server. The proxy cache may be configured to cache the data blocks in a hierarchical relationship within the object. The object may be, for example, a data file or a directory. The data blocks that are cached in the proxy cache define an active data set which is based upon a request from a client.
-
Citations
73 Claims
-
1. An apparatus for caching data in a network, the apparatus comprising:
-
a proxy cache configured to receive request for an object from a client and to fetch data blocks from a server, wherein the proxy cache includes a memory; and the proxy cache configured to cache the data blocks in a hierarchical relationship within the object and as an active data set, wherein the hierarchical relationship of data blocks are stored in the memory in the proxy cache; wherein in response to a cache miss where the proxy cache does not contain a requested data block, the proxy cache determines which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and wherein the proxy cache sends a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and the proxy cache will fetch the data block from the server and cache the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 48, 49, 50, 51, 52, 53, 54, 62, 63, 64, 72)
-
-
16. A method for caching data in a network, the method comprising:
-
receiving request for an object from a client; if each data block in the requested object is in the cache, then sending the requested object to the client; and if a data block in the requested object is missing, then fetching the data block from a server, filling the data block in a hierarchical relationship and as part of an active data set, and sending the requested object to the client, wherein the hierarchical relationship including the data block are stored in a memory in a proxy cache; wherein in response to a cache miss where the proxy cache does not contain a requested data block, determining, by the proxy cache, which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and sending, by the proxy cache, a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and fetching a data block from the server and caching the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 55, 56, 57, 58, 59, 60, 61, 65, 66, 67, 68, 69, 71, 73)
-
-
27. An apparatus for caching data in a network, the apparatus comprising:
-
means for receiving a request for an object from a client; coupled to the receiving means, means for sending the requested object to the client, if each data block in the requested object is in the cache; and coupled to the receiving means, means for fetching the data block from a server, for filling the data block in a hierarchical relationship and as part of an active data set, and for sending the requested object to the client, if a data block in the requested object is missing, wherein the hierarchical relationship including the data block are stored in a memory in a proxy cache; wherein in response to a cache miss where the proxy cache does not contain a requested data block, the proxy cache determines which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and wherein the proxy cache sends a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and the proxy cache will fetch a data block from the server and cache the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss.
-
-
28. An apparatus for caching data in a network, the apparatus comprising:
-
a proxy cache configured to receive request for an object from a client and to fetch data blocks from a server, wherein the proxy cache includes a memory; and the proxy cache configured to cache the data blocks in a hierarchical relationship within the object and as an active data set which is defined based upon a request from a client, wherein the hierarchical relationship of data blocks are stored in the memory in the proxy cache; wherein in response to a cache miss where the proxy cache does not contain a requested data block, the proxy cache determines which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and wherein the proxy cache sends a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and the proxy cache will fetch a data block from the server and cache the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A method for caching data in a network, the method comprising:
-
receiving request for an object from a client; determining if at least one data block in the requested object is stored in a cache; and if each data block in the requested object is in the cache, then sending the requested object to the client; and if a data block in the requested object is missing, then fetching the data block from a server, allocating the data block in the cache, wherein the data block is allocated in an active data set that is dependent upon a given time period, and sending the requested object to the client; wherein in response to a cache miss where the proxy cache does not contain a requested data block, determining, by the proxy cache, which server stores the requested data block by using a translation table of N values and FSid values in the proxy cache, where an N value is a hash computation based on an address of a server that has the requested data block, a volume name the contains the data block, and a file name of the data block, and an FSid value is a file system identifier of a server-side file handle from the server, and sending, by the proxy cache, a file handle associated with the requested data block to the server only if the address of the server is identified by the N value, and fetching a data block from the server and caching the fetched data block in the active data set so that the active data will include a content in a first time period and will include a different content in a second time period and wherein the data blocks in the active data set is updated or a data block in the active data set is flushed, in response to a cache miss. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 70)
-
Specification