# US 2025/0094070 A1 · Data Storage Method and Apparatus

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

- Number: US 2025/0094070 A1
- Document ID: US20250094070A1
- Status: Published application
- Kind: A1
- Application number: 18/964,996
- Filed: 2024-12-02
- Published: 2025-03-20
- Earliest claimed: 2019-10-17
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Zhi Rao
- Web page: https://patentgrep.com/patent/US20250094070A1

## CPC

- G06F 3/0641: {De-duplication techniques}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0611: {in relation to response time}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0673: {Single storage device}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data storage method and apparatus includes receiving a data write request, where the data write request carries to-be-written data, and the to-be-written data includes at least one data block; calculating a fingerprint of each data block, where the fingerprint uniquely identifies the data block; determining whether the fingerprint of each data block exists in a fingerprint list, where the fingerprint list includes a fingerprint corresponding to a data block stored in a high-speed storage medium and a fingerprint corresponding to a data block stored in a low-speed storage medium; and performing a deduplication operation on the to-be-written data.

## Claims

### Claim 1

A data storage method implemented by a storage apparatus, wherein the data storage method comprises:
receiving a first data block;
calculating a first fingerprint that is of the first data block and that uniquely identifies the first data block;
compressing the first data block to obtain a second data block when the first fingerprint does not match fingerprints that correspond to third data blocks and that are stored in a hybrid storage pool of the storage apparatus, wherein the third data blocks comprise fourth data blocks stored in solid-state drives (SSDs) of the hybrid storage pool and comprise fifth data blocks stored in hard disk drives (HDDs) of the hybrid storage pool; and
storing the second data block into the hybrid storage pool.

### Claim 2 (depends on 1)

The data storage method of claim 1, further comprising storing the fingerprints in an internal storage of the storage apparatus.

### Claim 3 (depends on 2)

The data storage method of claim 2, wherein the internal storage comprises a fingerprint list, and wherein the fingerprint list comprises a second fingerprint corresponding to a sixth data block stored in the SSDs and a third fingerprint corresponding to a seventh data block stored in the HDDs.

### Claim 4 (depends on 3)

The data storage method of claim 3, further comprising adding, to the fingerprint list, the first fingerprint when the first fingerprint is not included in the fingerprint list.

### Claim 5 (depends on 1)

The data storage method of claim 1, wherein each of the third data blocks is a compressed data block.

### Claim 6 (depends on 1)

The data storage method of claim 1, wherein the second data block is unique in the hybrid storage pool.

### Claim 7 (depends on 1)

The data storage method of claim 1, wherein storing the second data block comprises storing the second data block in a first SSD of the SSDs.

### Claim 8 (depends on 7)

The data storage method of claim 7, further comprising migrating the second data block from the first SSD to a first HDD of the HDDs when an access frequency of the first data block is below a threshold.

### Claim 9 (depends on 1)

The data storage method of claim 1, wherein a size of the first data block is 4 kilobytes (KB), 8 KB, or 16 KB.

### Claim 10

A storage apparatus, comprising:
a hybrid storage pool comprising solid-state drives (SSDs) and hard disk drives (HDDs);
a memory configured to store program instructions; and
at least one processor coupled to the memory and configured to execute the program instructions to cause the storage apparatus to:
receive a first data block;
calculate a first fingerprint that is of the first data block and that uniquely identifies the first data block;
compress the first data block to obtain a second data block when the first fingerprint does not match fingerprints that correspond to third data blocks and that are stored in the hybrid storage pool, wherein the third data blocks comprise fourth data blocks stored in SSDs and fifth data blocks stored in HDDs; and
store the second data block into the hybrid storage pool.

### Claim 11 (depends on 10)

The storage apparatus of claim 10, wherein the at least one processor is further configured to execute the program instructions to cause the storage apparatus to store the fingerprints in an internal storage of the storage apparatus.

### Claim 12 (depends on 11)

The storage apparatus of claim 11, wherein the internal storage comprises a fingerprint list, and wherein the fingerprint list comprises a second fingerprint corresponding to a sixth data block stored in the SSDs and a third fingerprint corresponding to a seventh data block stored in the HDDs.

### Claim 13 (depends on 12)

The storage apparatus of claim 12, wherein the at least one processor is further configured to execute the program instructions to cause the storage apparatus to add, to the fingerprint list, the first fingerprint when the first fingerprint is not included in the fingerprint list.

### Claim 14 (depends on 10)

The storage apparatus of claim 10, wherein each of the third data blocks is a compressed data block.

### Claim 15 (depends on 10)

The storage apparatus of claim 10, wherein the second data block is unique in the hybrid storage pool.

### Claim 16 (depends on 10)

The storage apparatus of claim 10, wherein the at least one processor is further configured to execute the program instructions to cause the storage apparatus to store the second data block in a first SSD of the SSDs.

### Claim 17 (depends on 16)

The storage apparatus of claim 16, wherein the at least one processor is further configured to execute the program instructions to cause the storage apparatus to migrate the second data block from the first SSD to a first HDD of the HDDs when an access frequency of the first data block is below a threshold.

### Claim 18 (depends on 10)

The storage apparatus of claim 10, wherein a size of the first data block is 4 kilobytes (KB), 8 KB, or 16 KB.

### Claim 19

A computer program product comprising computer-executable instructions that are stored on a non-transitory computer readable storage medium and that, when executed by at least one processor of a storage apparatus, cause the storage apparatus to:
receive a first data block;
calculate a first fingerprint that is of the first data block and that uniquely identifies the first data block;
compress the first data block to obtain a second data block when the first fingerprint does not match fingerprints that correspond to third data blocks and that are stored in a hybrid storage pool of the storage apparatus, wherein the third data blocks comprise fourth data blocks stored in solid-state drives (SSDs) of the hybrid storage pool and comprise fifth data blocks stored in hard disk drives (HDDs) of the hybrid storage pool; and
store the second data block into the hybrid storage pool.

### Claim 20 (depends on 19)

The computer program product of claim 19, wherein the second data block is unique in the hybrid storage pool.
