IP Library Granted Patent US 12,086,470
Granted Patent B2
US 12,086,470 · App. 17/561,814 · Granted Sep 10, 2024

Storage device and data processing method

Inventors: Takashi Nagao (Tokyo, JP); Tomohiro Yoshihara (Tokyo, JP); Akira Yamamoto (Tokyo, JP); Yuusaku Kiyota (Tokyo, JP)
Assignee: HITACHI, LTD.
G06F3/0661G06F3/0608G06F3/0641G06F3/0673H03M7/6011
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 12,086,470
App. No.
17/561,814
Granted
Sep 10, 2024
Kind
B2
Abstract

The present invention realizes a storage device that has a high data reduction effect without decreasing I/O performances. The storage device includes a processor, an accelerator, a memory, and a storage medium, the processor specifies data to be compressed that is data stored in the storage medium from data stored in the memory and transmits a compression instruction including information relating to the data to be compressed to the accelerator, and the accelerator reads the plurality of continuous items of data from the memory and compresses the plurality of items of data to be compressed obtained by excluding data that is not to be compressed from the plurality of items of data, based on the information relating to the data to be compressed received from the processor, to generate compressed data stored in the storage device.

Claims (93)

1. A storage device comprising:

a processor;

an accelerator;

a memory; and

a storage device including a storage medium that stores data corresponding to a first data string previously written to the storage device, the first data string having a first part that has been deduplicated and deleted from the storage device and a second part that has been compressed and stored in the storage device, and maintains deduplicated data management information, regarding the first part of the first data string, including address information indicating where the first part of the first data string is located in the storage device or the memory,

wherein the processor, after receiving a read request for the first data string:

obtains data that configures the first part of the first data string based on the deduplicated data management information and stores the obtained data that configures the first part of the first data string to at least a first address in the memory,

obtains compressed data generated from compressing the second part of the first data string, from the storage medium, and stores the compressed data in the memory, and

transmits, to the accelerator, a decompression instruction to decompress the compressed data into a plurality of items of data that configures the second part of the first data string, the decompression instruction including second addresses where the plurality of items of data that configures the second part of the first data string should be stored in the memory after being decompressed, and

the accelerator:

generates the plurality of items of data that configures the second part of the first data string by decompressing the obtained compressed data, after receiving the decompression instruction, and

stores each of the plurality of items of data that configures the second part of the first data string in the memory in accordance with the second addresses so that the first part of the first data string stored at the at least one first address and the plurality of items of data that configures the second part of the first data string stored at the second addresses form a data string which has a configuration that is identical to a configuration of the first data string previously written to the storage device,

wherein the memory stores a plurality of continuous items of data configuring the first data string,

wherein the processor:

identifies, from among the plurality of continuous items of data, data to be compressed that is data to be stored in the storage device and data that is not to be compressed that is data to not be stored in the storage device, and

transmits a compression instruction for the plurality of continuous items of data including information indicating which of the plurality of continuous items of data are to be compressed to the accelerator, and

the accelerator:

reads the plurality of continuous items of data, which includes the data to be compressed and the data that is not to be compressed, from the memory,

combines the data to be compressed by excluding the data that is not to be compressed from the plurality of continuous items of data, based on the compression instruction received from the processor, and

compresses the combined data to generate compressed data to be stored in the storage device.

2. The storage device according to claim 1 , wherein

the processor executes the deduplication process on the first data string stored in the memory and configured from the plurality of continuous items of data, and

the data that is not to be compressed is data that is not to be stored in the storage device in the deduplication process.

3. The storage device according to claim 2 , wherein

the processor identifies the data to be compressed from the data that configures a second data string based on a result of the deduplication process with respect to the second data string, and

generates second address information indicating an address of the data to be compressed in the second data string, as the information relating to the data to be compressed, and

if the compression instruction is received, the accelerator reads the second data string from the memory and obtains the data to be compressed from the second data string based on the second address information.

4. The storage device according to claim 3 , wherein

the processor:

identifies each of the data to be compressed of a plurality of data strings based on a result of the deduplication process with respect to the plurality of data strings, and

generates third address information indicating an address of the data to be compressed in each of the plurality of data strings, as the information indicating which of the plurality of continuous items of data are to be compressed, and

if the compression instruction is received, the accelerator reads the plurality of data strings from the memory and obtains a predetermined number of items of the data to be compressed, from the plurality of data strings based on the third address information.

5. The storage device according to claim 4 , wherein

first compressed data generated from a data string configured with first data is stored,

the processor:

reads the first compressed data from the storage device and stores the first compressed data in the memory, if it is not required to maintain the first data by writing of a new data string, and

transmits a decompression instruction of the first compressed data to the accelerator,

the accelerator generates a third data string by decompressing the first compressed data and stores the third data string in the memory,

the processor transmits a compression instruction including information relating to the first data to the accelerator, and

the accelerator obtains data excluding the first data from data that configures the third data string, and

compresses a fourth data string configured with the obtained data to generate second compressed data.

6. The storage device according to claim 4 , wherein

first compressed data generated from a data string configured with first data is stored,

the processor:

reads the first compressed data from the storage device and stores the first compressed data in the memory, if it is not required to maintain the first data by writing a new data string, and

transmits a re-compression instruction including information relating to the first data to the accelerator, and

the accelerator:

generates a third data string by decompressing the first compressed data and stores the third data string in the memory, if the re-compression instruction is received,

obtains data excluding the first data from data configuring the third data string, and

compresses a fourth data string configured with the obtained data, to generate second compressed data.

7. A data processing method executed by a storage device, wherein

the storage device includes a processor, an accelerator, a memory, and a storage device, the storage device storing data corresponding to a first data string previously written to the storage device, the first data string having a first part that has been deduplicated and deleted from the storage device and a second part that has been compressed and stored in the storage device, and maintains deduplicated data management information, regarding the first part of the first data string, including address information indicating where the first part of the first data string is located in the storage device or the memory,

the data processing method comprising the steps of:

obtaining, by the processor, after receiving a read request for the first data string, data that configures the first part of the first data string based on the deduplicated data management information, and stores the obtained data that configures the first part of the first data string to at least a first address in the memory,

obtaining, by the processor, compressed data generated from compressing the second part of the first data string that configures the read data string, from the storage device, and storing the compressed data in the memory,

transmitting, by the processor to the accelerator, a decompression instruction to decompress the compressed data into a plurality of items of data that configures the second part of the first data string, the decompression instruction including second addresses where the plurality of items of data that configures the second part of the first data string should be stored in the memory after being decompressed,

generating, by the accelerator after receiving the decompression instruction, the plurality of items of data that configures the second part of the first data string by decompressing the obtained compressed data, and

storing, by the accelerator, each of the plurality of items of data that configures the second part of the first data string in the memory in accordance with the second addresses so that the first part of the first data string stored at the at least one first address and the plurality of items of data that configures the second part of the first data string stored at the second addresses form a data string which has a configuration that is identical to a configuration of the first data string previously written to the storage device,

wherein the memory stores a plurality of continuous items of data,

wherein the data processing method further comprises the steps of:

identifying, by the processor, from among the plurality of continuous items of data, data to be compressed that is data to be stored in the storage device and data that is not to be compressed that is data to not be stored in the storage device,

transmitting, by the processor, a compression instruction for the plurality of continuous items of data including information indicating which of the plurality of continuous items of data are to be compressed to the accelerator,

reading, by the accelerator, the plurality of continuous items of data, which includes the data to be compressed and the data that is not to be compressed, from the memory,

combining, by the accelerator, the data to be compressed by excluding the data that is not to be compressed from the plurality of continuous items of data, based on the compression instruction received from the processor, and

compressing, by the accelerator, the combined data to generate compressed data to be stored in the storage device.

8. The data processing method according to claim 7 , further comprising the steps of:

executing, by the processor, the deduplication process on the first data string stored in the memory and configured from the plurality of continuous items of data,

wherein the data that is not to be compressed is data that is not to be stored in the storage device in the deduplication process.

9. The data processing method according to claim 8 ,

wherein the step of identifying includes:

identifying, by the processor, the data to be compressed from the data that configures a second data string based on a result of the deduplication process with respect to the second data string, and

generating, by the processor, first address information indicating an address of the data to be compressed in the second data string, as the information relating to the data to be compressed, and

the step of reading includes reading, by the accelerator, the second data string from the memory and obtaining the data to be compressed from the second data string based on the first address information.

10. The data processing method according to claim 9 , wherein

the step of identifying includes:

identifying, by the processor, each of the data to be compressed of a plurality of data strings based on a result of the deduplication process with respect to the plurality of data strings, and

generating, by the processor, third address information indicating an address of the data to be compressed in each of the plurality of data strings, as the information indicating which of the plurality of continuous items of data are to be compressed, and

the step of reading includes reading, by the accelerator, the plurality of data strings from the memory and obtaining a predetermined number of items of the data to be compressed, from the plurality of data strings based on the third address information.

11. The data processing method according to claim 10 ,

wherein the storage device stores first compressed data generated from a data string configured with first data,

the data processing method further comprises the steps of:

reading, by the processor, the first compressed data from the storage device and storing the first compressed data in the memory, if it is not required to maintain the first data by writing of a new data string,

transmitting, by the processor, a decompression instruction of the first compressed data to the accelerator,

generating, by the accelerator, a third data string by decompressing the first compressed data and storing the third data string in the memory,

transmitting, by the processor, a compression instruction including information relating to the first data to the accelerator, and

obtaining, by the accelerator, data excluding the first data from data that configures the third data string, and compressing a fourth data string configured with the obtained data to generate second compressed data.

12. The data processing method according to claim 10 , wherein

the storage device stores first compressed data generated from a data string configured with first data,

the data processing method further comprises the steps of:

reading, by the processor, the first compressed data from the storage device and storing the first compressed data in the memory, if it is not required to maintain the first data by writing a new data string,

transmitting, by the processor, a re-compression instruction including information relating to the first data to the accelerator,

generating, by the accelerator, a third data string by decompressing the first compressed data and storing the third data string in the memory, if the re-compression instruction is received, and

obtaining, by the accelerator, data excluding the first data from data configuring the third data string and compressing a fourth data string configured with the obtained data, to generate second compressed data.

Assignments (1)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
Priority Claims (1)
JP 2020-156106 · Sep 17, 2020 · national
Continuity (2)
Continuation 17190152 · Mar 2, 2021
Related Publication 20220121402A1 · Apr 21, 2022