US10534753B2ActiveUtilityA1
Caseless file lookup in a distributed file system
Est. expiryFeb 11, 2034(~7.6 yrs left)· nominal 20-yr term from priority
G06F 16/116G06F 16/166G06F 16/137G06F 16/152G06F 16/13
64
PatentIndex Score
1
Cited by
21
References
17
Claims
Abstract
A caseless file lookup in a distributed file system is disclosed. A request to store a file in a volume may be received. In response to the request, the type of client system issuing the request may be identified. Based on the type of client system that has been identified, a first hash value or a second hash value may be calculated for the name of the file to generate and assign a hash value to the file. The file may be stored in a storage resource based on the first or second hash value that has been generated for the file.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
receiving a request from a client system to store a file in a volume associated with a plurality of storage servers;
identifying a type of the client system in view of a type of file system associated with the client system, the client system being identified as a case sensitive client system when the file system is case sensitive and the client system being identified as a case insensitive client system when the file system is case insensitive;
selecting a first hash function or a second hash function by using the identification of the type of file system associated with the client system requesting to store the file;
calculating, by a processing device, for a name of the file, a first hash value by selecting the first hash function when the client system is identified as the case sensitive client system and a second hash value by selecting the second hash function when the client system is identified as the case insensitive client system;
storing the file at a first storage server of the plurality of storage servers in view of the first hash value when the client system is identified as the case sensitive client system or at a second storage server of the plurality of storage servers in view of the second hash value when the client system is identified as the case insensitive client system;
receiving a request to retrieve the stored file in the volume associated with the plurality of storage servers;
in response to receiving the request to retrieve the stored file, calculate a plurality of hash values for the name of the file by using the first hash function with a modified name of the file and the second hash function with the name of the file;
querying the plurality of storage servers associated with the volume for the stored file in view of the plurality of hash values, wherein different hash values are provided to different storage servers to query the plurality of storage servers for the stored file;
in response to the query, receiving from each of two or more storage servers of the plurality of storage servers a positive indication that the file is stored on each of the two or more storage servers;
using a priority function to select the file from a first storage server of the two or more storage servers; and
transmitting, to the client device, the file from the first storage server in view of the priority function.
2. The method of claim 1 , wherein the first storage server is associated with a first hash value range and the second storage server is associated with a second hash value range, and the first hash value is within the first hash value range and the second hash value is within the second hash value range.
3. The method of claim 1 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.
4. The method of claim 1 , further comprising:
receiving a request for a second file stored in the distributed file system;
identifying an assigned hash value associated with the second file; and
querying a server of the plurality of storage servers, the server being associated with a storage resource that is associated with a hash value range that comprises the assigned hash value.
5. The method of claim 4 , wherein the querying of the server results in an indication of whether the storage resource comprises the requested file.
6. The method of claim 1 , wherein the modified name of the file corresponds to a change in case of a letter of the name of the file from uppercase to lowercase or from lowercase to uppercase.
7. The method of claim 1 , wherein querying the plurality of storage servers associated with the volume for the stored file in view of the plurality of hash values comprises:
providing a query to each of the plurality of storage servers that is assigned a hash value range that comprises any of the plurality of hash values, the query indicating, for each of the plurality of servers, to search a list of file names in a plurality of cases at a respective storage server.
8. The method of claim 1 , wherein the calculated plurality of hash values comprises a first hash value that is calculated by using the name of the file from the request, a second hash value for the name of the file with each case of a letter of the name being uppercase, and a third hash value for the name of the file with each case of a letter of the name being lowercase.
9. A system, comprising:
a memory; and
a processing device, operatively coupled with the memory, to:
receive a request from a client system to store a file in a volume associated with a plurality of storage servers;
identify a type of the client system in view of a type of file system associated with the client system, the client system being identified as a case sensitive client system when the file system is case sensitive and the client system being identified as a case insensitive client system when the file system is case insensitive;
select a first hash function or a second hash function by using the identification of the type of file system associated with the client system requesting to store the file;
calculate, for a name of the file, a first hash value by selecting the first hash function when the client system is identified as the case sensitive client system and a second hash value by selecting the second hash function when the client system is identified as the case insensitive client system;
store the file at a first storage server of the plurality of storage servers in view of the first hash value when the client system is identified as the case sensitive client system or at a second storage server of the plurality of storage servers in view of the second hash value when the client system is identified as the case insensitive client system;
receive a request to retrieve the stored file in the volume associated with the plurality of storage servers;
in response to receiving the request to retrieve the stored file, calculate a plurality of hash values for the name of the file by using the first hash function with a modified name of the file and the second hash function with the name of the file;
query the plurality of storage servers associated with the volume for the stored file in view of the plurality of hash values, wherein different hash values are provided to different storage servers to query the plurality of storage servers for the stored file;
in response to the query, receive from each of two or more storage servers of the plurality of storage servers a positive indication that the file is stored on each of the two or more storage servers;
use a priority function to select the file from a first storage server of the two or more storage servers; and
transmit, to the client device, the file from the first storage server in view of the priority function.
10. The system of claim 9 , wherein the first storage server is associated with a first hash value range and the second storage server is associated with a second hash value range, and the first hash value is within the first hash value range and the second hash value is within the second hash value range.
11. The system of claim 9 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.
12. The system of claim 9 , the processing device is further to:
receive a request for a second file stored in the distributed file system;
identify an assigned hash value associated with the second file; and
query a server of the plurality of storage servers, the server being associated with a storage resource that is associated with a hash value range that comprises the assigned hash value.
13. The system of claim 12 , wherein the querying of the server results in an indication of whether the storage resource comprises the requested file.
14. A non-transitory machine-readable storage medium comprising data that, when accessed by a processing device, cause the processing device to:
receive a request from a client system to store a file;
identify a type of the client system in view of a type of file system associated with the client system, the client system being identified as a case sensitive client system when the file system is case sensitive and the client system being identified as a case insensitive client system when the file system is case insensitive;
select, by the processing device, a first hash function or a second hash function by using the identification of the type of file system associated with the client system requesting to store the file;
calculate, for a name of the file, a first hash value by selecting the first hash function when the client system is identified as the case sensitive client system and a second hash value by selecting the second hash function when the client system is identified as the case insensitive client system;
store the file at a first storage server of the plurality of storage servers in view of the first hash value when the client system is identified as the case sensitive client system or at a second storage server of the plurality of storage servers in view of the second hash value when the client system is identified as the case insensitive client system;
receive a request to retrieve the stored file in the volume associated with the plurality of storage servers;
in response to receiving the request to retrieve the stored file, calculate a plurality of hash values for the name of the file by using the first hash function with a modified name of the file and the second hash function with the name of the file;
query the plurality of storage servers associated with the volume for the stored file in view of the plurality of hash values, wherein different hash values are provided to different storage servers to query the plurality of storage servers for the stored file;
in response to the query, receive from each of two or more storage servers of the plurality of storage servers a positive indication that the file is stored on each of the two or more storage servers;
use a priority function to select the file from a first storage server of the two or more storage servers; and
transmit, to the client device, the file from the first storage server in view of the priority function.
15. The non-transitory machine-readable storage medium of claim 14 , wherein the first storage server is associated with a first hash value range and the second storage server is associated with a second hash value range, and the first hash value is within the first hash value range and the second hash value is within the second hash value range.
16. The non-transitory machine-readable storage medium of claim 14 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.
17. The non-transitory machine-readable storage medium of claim 14 , wherein the processing device is further to:
receive a request for a second file stored in the distributed file system;
identify an assigned hash value associated with the second file; and
query a server of the plurality of storage servers, the server being associated with a storage resource that is associated with a hash value range that comprises the assigned hash value.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.