IP Library › Granted Patent US 11,068,441
Granted Patent B2
US 11,068,441 · App. 16/737,751 · Granted Jul 20, 2021

Caseless file lookup in a distributed file system

Inventors: Anand Avati (Mountain View, CA); Jeffrey Darcy (Lexington, MA)
Assignee: Red Hat, Inc.
G06F16/137G06F16/116G06F16/13G06F16/152G06F16/166
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,068,441
App. No.
16/737,751
Granted
Jul 20, 2021
Kind
B2
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 (43)

1. A method comprising:

receiving a request from a client system to store a file in a volume;

identifying a type of the client system based on a type of file system associated with the client system, wherein the client system is identified as a case sensitive client system when the file system associated with the client system is case sensitive and wherein the client system is identified as a case insensitive client system when the file system associated with the client system is case insensitive;

collapsing a name of the file when the client system is identified as the case insensitive system;

calculating, by a processing device, for the name of the file, a first hash value when the client system is identified as the case sensitive client system and a second hash value when the client system is identified as the case insensitive client system; and

storing the file at a first storage server of a plurality of storage servers in view of the first hash value when the client system is identified as the case sensitive client system or the second hash value when the client system is identified as the case insensitive client system.

2. The method of claim 1 , further comprising transmitting, to the client system, the file from the first storage server of the plurality of storage servers in view of a priority function.

3. The method of claim 2 , wherein the first storage server is associated with a first hash value range.

4. The method of claim 1 , wherein the first hash value is calculated in view of a first hash algorithm and the second hash value is calculated in view of a second hash algorithm.

5. The method of claim 1 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.

6. The method of claim 1 , further comprising:

receiving a request for a second file;

identifying an assigned hash value associated with the second file; and

querying a server of the plurality of storage servers that is associated with a hash value range that includes the assigned hash value.

7. The method of claim 6 , wherein the querying of the sever results in an indication of whether the storage server comprises the requested file.

8. 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;

identify a type of the client system based on a type of file system associated with the client system, wherein the client system is identified as a case sensitive client system when the file system associated with the client system is case sensitive and wherein the client system is identified as a case insensitive client system when the file system associated with the client system is case insensitive;

collapse a name of the file when the client system is identified as the case insensitive system;

calculate for the name of the file, a first hash value when the client system is identified as the case sensitive client system and a second hash value when the client system is identified as the case insensitive client system; and

store the file at a first storage server of a plurality of storage servers in view of the first hash value when the client system is identified as the case sensitive client system or the second hash value when the client system is identified as the case insensitive client system.

9. The system of claim 8 , wherein the first storage server is associated with a first hash value range.

10. The system of claim 8 , wherein the first hash value is calculated in view of a first hash algorithm and the second hash value is calculated in view of a second hash algorithm.

11. The system of claim 8 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.

12. The system of claim 8 , the processing device is further to:

receive a request for a second file; and

identify an assigned hash value associated with the second file.

13. The system of claim 8 , wherein the processing device further to query a server of the plurality of storage servers associated that is associated with a hash value range that includes the assigned hash value.

14. A non-transitory machine-readable storage medium including data that, when accessed by a processing device, cause the processing device to:

receive a request to retrieve a stored file in a volume associated with a plurality of storage servers;

collapse a name of the file to generate a modified name of the file;

calculate a plurality of hash values for the name of the file by using a first hash function with the modified name of the file and a second hash function with the name of the file;

query, by the processing device, 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;

receive from each of different storage servers of the plurality of storage servers a positive indication that the file is stored on each of the different storage servers;

using a priority function, select the file from a first one of the different storage servers; and

transmit, to the client device, the file from the first one of the different storage servers in view of the priority function.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the plurality of hash values comprises a first hash value and a second hash value.

16. The non-transitory machine-readable storage medium of claim 15 , wherein a first storage server of the plurality of storage servers is associated with a first hash value range and a second server of the plurality of storage servers 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.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the first hash value is calculated in view of a first hash algorithm and the second hash value is calculated in view of a second hash algorithm.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the first hash value and the second hash value are calculated in view of a same hash algorithm.

19. The system of claim 8 , wherein the processing device further to transmit the file from the first storage server to the client system in view of a priority function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2020
From: AVATI, ANAND; DARCY, JEFFREY
To: RED HAT, INC.
Reel/Frame 051463/0984 →
Continuity (2)
Continuation 14178198 · Feb 11, 2014
Related Publication 20200142860A1 · May 7, 2020