# US 10,372,674 B2 · File management in a storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,674 B2
- Document ID: US10372674B2
- Status: Granted
- Kind: B2
- Application number: 14/884,889
- Filed: 2015-10-16
- Published: 2017-04-20
- Granted: 2019-08-06
- Earliest claimed: 2015-10-16
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Tohru Hasegawa; Sosuke Matsui; Shinsuke Mitsuma; Tsuyoshi Miyamura; Noriko Yamamoto
- Web page: https://patentgrep.com/patent/US10372674B2

## CPC

- G06F 16/137: {Hash-based (content-based indexing of textual data G06F16/31)}
- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 16/1748: {De-duplication implemented within the file system, e.g. based on file segments (de-duplication techniques in storage systems for the management of data blocks G06F3/0641)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In an approach to determining a storage to which to store a file in a storage system including at least one server and at least two storages which can communicate with the at least one server through a communication network, a computer obtains a file name of a file to be stored in a storage. The computer determines an effect of deduplication of data of the file based on the file name, and responsive to determining the effect of deduplication exists, selects a part of the file name. The computer then calculates a hash value using the part of the file name and determines a storage to which to store the file based on the hash value.

## Claims

### Claim 1

A method for determining a storage to which to store a file in a storage system, the storage system including at least one server and at least two storages which can communicate with the at least one server through a communication network comprising the steps of:
obtaining, by one or more processors, a file name of a file to be stored in one of the at least two storages;
determining, by one or more computer processors, an effect of deduplication of data of the file based on the file name;
responsive to determining the effect of deduplication exists, selecting, by one or more computer processors, a length of characters of the file name, wherein the length of characters of the file name selected is selected by:
selecting, by one or more computer processors, a storage of the at least two storages;
calculating, by one or more computer processors, a deviation score of an amount of the selected storage that is in use;
comparing, by one or more computer processors, the deviation score with a threshold value to determine whether the amount of the selected storage used is greater than other storage of the at least two storages;
responsive to determining that the amount of the selected storage used is greater than other storage of the at least two storages, generating, by one or more computer processors, a list of a plurality of files stored in the selected storage;
finding, by one or more computer processors, at least two files of the plurality of files stored in the selected storage that has a prefix equal to a prefix of the file to be stored in one of the at least two storages; and
selecting, by one or more computer processors, a length of characters of the file name of the file to be stored in one of the at least two storages that is longer than the prefix;
calculating, by one or more computer processors, a hash value using the length of characters of the file name; and
determining, by one or more computer processors, a storage of the at least two storages to which to store the file based on the hash value.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the step of determining an effect of deduplication includes comparing, by one or more computer processors, the file name to information of a plurality of file names registered in a pre-defined filter, the information of the plurality of file names in the pre-defined filter having a high possibility that duplication of data may take place.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the information of the plurality of file names selected in the pre-defined filter includes at least one of an extension of a file, one or more first several characters of a file name, a header of a file, and an absolute path of a parent directory of a file.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the selected length of characters of the file name includes one or more first several characters having a predetermined length of the file name.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the one or more first several characters includes a character string from a head of the file name to a first punctuation mark.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the step of determining a storage to which to store the file includes using a table which defines one or more storages where each hash value is stored.

### Claim 7

A storage system comprising:
at least one server; and
at least two storages which can communicate with the at least one server through a communication network,
wherein the server determines a storage to which to store a file in response to a write request of the file from a client by performing the steps of:
obtaining a file name of a file to be stored in a storage;
determining an effect of deduplication of data of the file based on the file name;
responsive to determining the effect of deduplication exists, selecting a length of characters of the file name, wherein the length of characters of the file name selected is selected by:
selecting, by one or more computer processors, a storage of the at least two storages;
calculating, by one or more computer processors, a deviation score of an amount of the selected storage that is in use;
comparing, by one or more computer processors, the deviation score with a threshold value to determine whether the amount of the selected storage used is greater than other storage of the at least two storages;
responsive to determining that the amount of the selected storage used is greater than other storage of the at least two storages, generating, by one or more computer processors, a list of a plurality of files stored in the selected storage;
finding, by one or more computer processors, at least two files of the plurality of files stored in the selected storage that has a prefix equal to a prefix of the file to be stored in one of the at least two storages; and
selecting, by one or more computer processors, a length of characters of the file name of the file to be stored in one of the at least two storages that is longer than the prefix;
calculating a hash value using the length of characters of the file name; and
determining a storage to which to store the file based on the hash value.

### Claim 8 (depends on 7)

The storage system according to claim 7, wherein the step of determining an effect of deduplication includes comparing the file name to information of a plurality of file names registered in a pre-defined filter, the information of the plurality of file names in the pre-defined filter having a high possibility that duplication of data may take place.

### Claim 9 (depends on 8)

The storage system according to claim 8, wherein the information of the plurality of file names selected in the pre-defined filter includes at least one of an extension of a file, one or more first several characters of a file name, a header of a file, and an absolute path of a parent directory of a file.

### Claim 10 (depends on 7)

The storage system according to claim 7, wherein the selected length of characters of the file name includes one or more first several characters having a predetermined length of the file name.

### Claim 11 (depends on 10)

The storage system according to claim 10, wherein the one or more first several characters includes a character string from a head of the file name to a first punctuation mark.

### Claim 12 (depends on 7)

The storage system according to claim 7, wherein the step of determining a storage to which to store the file includes using a table which defines one or more storages where each hash value is stored.

### Claim 13 (depends on 7)

The storage system according to claim 7, wherein at least one server includes a proxy server and a storage server, the proxy server performs each of the steps, and the storage server stores the file in the storage determined by the proxy server.

### Claim 14

A computer program product for determining a storage to which to store a file in a storage system including at least one server and at least two storages which can communicate with the at least one server through a communication network, the computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the stored program instructions comprising:
program instructions to obtain a file name of a file to be stored in a storage:
program instructions to determine an effect of deduplication of data of the file based on the file name;
responsive to determining the effect of deduplication exists, program instructions to select a length of characters of the file name, wherein the program instructions to select the length of characters of the file name comprise:
program instructions to select a storage of the at least two storages;
program instructions to calculate a deviation score of an amount of the selected storage that is in use;
program instructions to compare the deviation score with a threshold value to determine whether the amount of the selected storage used is greater than other storage of the at least two storages;
responsive to the program instructions to determine that the amount of the selected storage used is greater than other storage of the at least two storages, program instructions to generate a list of a plurality of files stored in the selected storage;
program instructions to find at least two files of the plurality of files stored in the selected storage that has a prefix equal to a prefix of the file to be stored in one of the at least two storages; and
program instructions to select a length of characters of the file name of the file to be stored in one of the at least two storages that is longer than the prefix;
program instructions to calculate a hash value using the length of characters of the file name; and
program instructions to determine a storage to which to store the file based on the hash value.

### Claim 15 (depends on 14)

The computer program product according to claim 14, wherein the program instructions to determine an effect of deduplication includes program instructions to compare the file name to information of a plurality of file names registered in a pre-defined filter, the information of the plurality of file names in the pre-defined filter having a high possibility that duplication of data may take place.

### Claim 16 (depends on 15)

The computer program product according to claim 15, wherein the information of the plurality of file names selected in the pre-defined filter includes at least one of an extension of a file, one or more first several characters of a file name, a header of a file, and an absolute path of a parent directory of a file.
