# US 2021/0278977 A1 · Method and system for performing data deduplication and compression in a data cluster

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

- Number: US 2021/0278977 A1
- Document ID: US20210278977A1
- Status: Published application
- Kind: A1
- Application number: 16/810,932
- Filed: 2020-03-06
- Published: 2021-09-09
- Earliest claimed: 2020-03-06
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Dharmesh M. Patel; Ravikanth Chaganti; Rizwan Ali
- Web page: https://patentgrep.com/patent/US20210278977A1

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In general, the invention relates to a method for storing data. The method includes obtaining data from a host, making a first determination that a data cluster comprises a plurality of non-volatile memory devices, based on the first determination: storing processed data corresponding to the data in at least one of the plurality of non-volatile memory devices, and making a second determination to de-stage at least a portion of the processed data to a persistent storage device, and based on the second determination, initiating a delayed compression operation on the processed data.

## Claims

### Claim 1

A method for storing data, the method comprising:
obtaining host data from a host;
making a first determination that a data cluster comprises a plurality of non-volatile memory devices;
based on the first determination:
storing processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices, wherein the processed data is generated based on a protection policy specifying requirements for generating and storing the processed data associated with the host data; and
making a second determination to de-stage at least a portion of the processed data to a persistent storage device; and
based on the second determination, initiating a delayed compression operation on the processed data.

### Claim 2 (depends on 1)

The method of claim 1, wherein the delayed compression operation comprises:
compressing at least a portion of the processed data to obtain compressed data; and
initiating transmission of the compressed data to the persistent storage device.

### Claim 3 (depends on 1)

The method of claim 1, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing an erasure coding operation on at least a portion of the host data to generate processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 4 (depends on 3)

The method of claim 3, wherein performing the erasure coding operation comprises generating at least one parity value using at least a portion of the host data.

### Claim 5 (depends on 1)

The method of claim 1, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing a replication operation on at least a portion of the host data to generated processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data cluster comprises at least one node, wherein the at least one of the plurality of non-volatile memory devices and the persistent storage device are located on the at least one node.

### Claim 7 (depends on 1)

The method of claim 1, wherein making the second determination to de-stage at least a portion of the processed data to the persistent storage device comprises:
making a third determination that a storage threshold for the at least one of the plurality of non-volatile memory devices has been exceeded.

### Claim 8

A system, comprising:
a processor;
a data processor, which when executed by the processor performs a method, the method comprising:
obtaining host data from a host;
making a first determination that a data cluster comprises a plurality of non-volatile memory devices;
based on the first determination:
storing processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices, wherein the processed data is generated based on a protection policy specifying requirements for generating and storing the processed data associated with the host data; and
making a second determination to de-stage at least a portion of the processed data to a persistent storage device; and
based on the second determination, initiating a delayed compression operation on the processed data.

### Claim 9 (depends on 8)

The system of claim 8, wherein the delayed compression operation comprises:
compressing at least a portion of the processed data to obtain compressed data; and
initiating transmission of the compressed data to the persistent storage device.

### Claim 10 (depends on 8)

The system of claim 8, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing an erasure coding operation on at least a portion of the host data to generate processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 11 (depends on 10)

The system of claim 10, wherein performing the erasure coding operation comprises generating at least one parity value using at least a portion of the host data.

### Claim 12 (depends on 8)

The system of claim 8, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing a replication operation on at least a portion of the host data to generated processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 13 (depends on 8)

The system of claim 8, wherein the data cluster comprises at least one node, wherein the at least one of the plurality of non-volatile memory devices and the persistent storage device are located on the at least one node.

### Claim 14 (depends on 8)

The system of claim 8, wherein making the second determination to de-stage at least a portion of the processed data to the persistent storage device comprises:
making a third determination that a storage threshold for the at least one of the plurality of non-volatile memory devices has been exceeded.

### Claim 15

A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method, the method comprising:
obtaining host data from a host;
making a first determination that a data cluster comprises a plurality of non-volatile memory devices;
based on the first determination:
storing processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices, wherein the processed data is generated based on a protection policy specifying requirements for generating and storing the processed data associated with the host data; and
making a second determination to de-stage at least a portion of the processed data to a persistent storage device; and
based on the second determination, initiating a delayed compression operation on the processed data.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the delayed compression operation comprises:
compressing at least a portion of the processed data to obtain compressed data; and
initiating transmission of the compressed data to the persistent storage device.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing an erasure coding operation on at least a portion of the host data to generate processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein performing the erasure coding operation comprises generating at least one parity value using at least a portion of the host data.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein storing the processed data corresponding to the host data in at least one of the plurality of non-volatile memory devices comprising:
performing a replication operation on at least a portion of the host data to generated processed data; and
initiating transmission of the processed data to the at least one of the plurality of non-volatile memory devices.

### Claim 20 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the data cluster comprises at least one node, wherein the at least one of the plurality of non-volatile memory devices and the persistent storage device are located on the at least one node.
