File storage system, cache appliance, and method
First Claim
1. A system for responding to a file system protocol request in regard to a back-end server comprising:
- a primary token server;
a plurality of cache appliances in communication with the token server, each of which receives tokens from the token server to synchronize access to data and attributes caches of the cache appliances by revoking incompatible tokens when granting new tokens, and reading and writing data and attributes to the back-end server when tokens are revoked, the cache appliance having persistent storage in which data and attributes are stored, and the token server having persistent storage in which tokens are stored and where the cache appliance maintains its own copy of modified data and attributes, and stores them to the back-end file server upon revocation of a write token, wherein the token server produces a write data token to write data to the back-end server by the cache appliance, and ensures that no two write data tokens are granted over a single byte of any same file, wherein the token server produces write attribute tokens for files stored in the back-end server and ensures that no two write attribute tokens are granted for the same file, and wherein the token server revokes an already granted write data or write attribute token by recalling the granted write data or write attribute token if a new write data or write attribute token is requested from the token server and is incompatible with the already granted write attribute or write data token and when a write data or write attribute token is revoked, the cache appliance writes the modified version of the file'"'"'s data or attributes to the back-end file server; and
a hot spare token server to which the write data tokens and write attribute tokens are mirrored, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server, the token server produces hold modified tokens for the cache appliance for the file'"'"'s attributes and data, and data and attributes associated with the hold modified tokens are retrieved directly from the cache appliance having the hold modified tokens, the hold modified tokens identify the cache appliance having the hold modified tokens.
2 Assignments
0 Petitions
Accused Products
Abstract
A file storage system for storing data of a file received from a client includes a back-end file server in which the data is stored. The system includes a cache appliance in communication with the file server, such that the appliance stores portions of the data or attributes of the file, and uses the stored data or attributes to process file system requests received from the client, and which reads and writes data and attributes to the back-end file server independently. A system for responding to a file system protocol request in regard to a back-end server includes a token server. The system includes a plurality of cache appliances in communication with the token server, each of which receives tokens from the token server to synchronize access to data and attributes caches of the cache appliances, and reading and writing data and attributes to the back-end servers when tokens are revoked, the cache appliance having persistent storage in which data are stored, and the token server having persistent storage in which tokens are stored. A storage system includes a plurality of backend servers. The system includes a token server which grants permission to read and write file attributes and data system, and includes a plurality of cache appliances in communication with at least one of the backend servers and the token server for processing an incoming NFS request to the one backend server. Each cache appliance comprises an NFS server which converts incoming NFS requests into cache manager operations; a token client module in communication with the token server having a cache of tokens obtained from the token server; a cache manager that caches data and attributes and uses tokens from the token client module to ensure that the cached data or attributes are the most recent data or attributes, and an NFS client which sends outgoing NFS requests to the back-end file server. Methods for storing data of a file received from a client.
-
Citations
16 Claims
-
1. A system for responding to a file system protocol request in regard to a back-end server comprising:
-
a primary token server; a plurality of cache appliances in communication with the token server, each of which receives tokens from the token server to synchronize access to data and attributes caches of the cache appliances by revoking incompatible tokens when granting new tokens, and reading and writing data and attributes to the back-end server when tokens are revoked, the cache appliance having persistent storage in which data and attributes are stored, and the token server having persistent storage in which tokens are stored and where the cache appliance maintains its own copy of modified data and attributes, and stores them to the back-end file server upon revocation of a write token, wherein the token server produces a write data token to write data to the back-end server by the cache appliance, and ensures that no two write data tokens are granted over a single byte of any same file, wherein the token server produces write attribute tokens for files stored in the back-end server and ensures that no two write attribute tokens are granted for the same file, and wherein the token server revokes an already granted write data or write attribute token by recalling the granted write data or write attribute token if a new write data or write attribute token is requested from the token server and is incompatible with the already granted write attribute or write data token and when a write data or write attribute token is revoked, the cache appliance writes the modified version of the file'"'"'s data or attributes to the back-end file server; and a hot spare token server to which the write data tokens and write attribute tokens are mirrored, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server, the token server produces hold modified tokens for the cache appliance for the file'"'"'s attributes and data, and data and attributes associated with the hold modified tokens are retrieved directly from the cache appliance having the hold modified tokens, the hold modified tokens identify the cache appliance having the hold modified tokens. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for responding to a file system protocol request in regard to a back-end server comprising the steps of:
-
receiving tokens from a primary token server in communication with a plurality of cache appliances; synchronizing access to data caches and attributes caches of the cache appliances with the tokens by revoking incompatible tokens when granting new tokens; reading and writing file data and attributes in the caches of the cache appliances holding tokens; writing data in the data caches and attributes in the attributes caches to a back-end server when the tokens are revoked, the cache appliance having persistent storage in which the data and attributes are stored, and the token server having persistent storage in which tokens are stored; mirroring in a hot spare token server the write data tokens and write attribute tokens, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server; producing write attribute tokens by the token server for files stored in the back-end server, the token server ensuring that no two write attribute tokens are granted for the same file; the token server revoking an already granted write data or write attribute token by recalling the granted write data or write attribute token if a new write data or write attribute token is requested from the token server and is incompatible with the already granted write attribute or write data token; and producing with the token server ownership tokens for the cache appliance for the file'"'"'s attributes and data to allow the cache appliance to read data from another cache appliance. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A system for responding to a file system protocol request in regard to a back-end server comprising:
-
a primary token server; a plurality of cache appliances in communication with the token server, each of which receives tokens from the token server to synchronize access to data and attributes caches of the cache appliances by revoking incompatible tokens when granting new tokens, and reading and writing data and attributes to the back-end server when tokens are revoked, the cache appliance having persistent storage in which data and attributes are stored, and the token server having persistent storage in which tokens are stored and where the cache appliance maintains its own copy of modified data and attributes, and stores them to the back-end file server upon revocation of a write token, wherein the token server produces a write data token to write data to the back-end server by the cache appliance, and ensures that no two write data tokens are granted over a single byte of any same file, wherein the token server produces write attribute tokens for tiles stored in the back-end server and ensures that no two write attribute tokens are granted for the same file, and wherein the token server revokes an already granted write data or write attribute token by recalling the granted write data or write attribute token if a new write data or write attribute token is requested from the token server and is incompatible with the already granted write attribute or write data token and when a write data or write attribute token is revoked, the cache appliance writes the modified version of the file'"'"'s data or attributes to the back-end file server; and a hot spare token server to which the write data tokens and write attribute tokens are mirrored, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server, the token server produces a ghost token persisting for a limited time period after revocation of an original token upon granting of a new token conflicting with the ghost token, an indication is returned to the new token'"'"'s owner, indicating that the new token would have conflicted with the original token if the new token had been requested earlier, allowing the owner of the new token to act as if the new token had been obtained earlier than it was requested.
-
-
15. A method for responding to a file system protocol request in regard to a back-end server comprising the steps of:
-
receiving tokens from a primary token server in communication with a plurality of cache appliances; synchronizing access to data caches and attributes caches of the cache appliances with the tokens by revoking incompatible tokens when granting new tokens; reading and writing file data and attributes in the caches of the cache appliances holding tokens; writing data in the data caches and attributes in the attributes caches to a back-end server when the tokens are revoked, the cache appliance having persistent storage in which the data and attributes are stored, and the token server having persistent storage in which tokens are stored; mirroring in a hot spare token server the write data tokens and write attribute tokens, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server; and choosing the token server by a function which includes a file handle as a parameter using hashing, which maps the file handle to a plurality of token servers.
-
-
16. A method for responding to a file system protocol request in regard to a back-end server comprising the steps of:
-
receiving tokens from a primary token server in communication with a plurality of cache appliances; synchronizing access to data caches and attributes caches of the cache appliances with the tokens by revoking incompatible tokens when granting new tokens; reading and writing file data and attributes in the caches of the cache appliances holding tokens; writing data in the data caches and attributes in the attributes caches to a back-end server when the tokens are revoked, the cache appliance having persistent storage in which the data and attributes are stored, and the token server having persistent storage in which tokens are stored; mirroring in a hot spare token server the write data tokens and write attribute tokens, the hot spare token server replaces the primary token server if the primary token server fails and continues operation with a reconstructed token database, if the hot spare token server replaces the primary token server, the hot spare server becomes the primary token server and each write data token and write attribute token that is mirrored in the hot spare token server is revoked in a same way as when a corresponding write data token or read data token is revoked in the primary token server; and leasing the read data tokens and read attribute tokens and automatically revoking them when their lease expires, which prevents read access to the data and the attributes associated with the read data tokens and read attribute tokens.
-
Specification