IP Library Granted Patent US 11,977,525
Granted Patent B2
US 11,977,525 · App. 17/192,544 · Granted May 7, 2024

Method to optimize ingest in dedupe systems by using compressibility hints

Inventors: Jagannathdas Rath (Bengaluru, IN); Kalyan C. Gunda (Bengaluru, IN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/215G06F16/1744H03M7/30
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,977,525
App. No.
17/192,544
Granted
May 7, 2024
Kind
B2
Abstract

A method, system and computer-readable storage medium for transferring data segments from one computer system to a second computing system. Prior to transfer of the data segments, the first system calculates compressibility ratio of each segment and compares the compressibility ratio to a preset threshold. Based on the comparison, the first system assigns a compressibility hint to each segment. The first system transfers the segments to the second system, together with the corresponding compressibility hint. The second system stores each segment in a compressible region or in a non-compressible region based on the hint. Then the second system compresses the compressible region and stores the compressed region in a container, and stores the non-compressible region uncompressed in the container.

Claims (64)

1. A method of transferring data segments from a client to a storage system, comprising:

for an uncompressed first data segment in the data segments, generating at the client a first compressibility hint indicating whether the uncompressed first data segment should be compressed based on a threshold;

determining that the first compressibility hint indicates not to compress the uncompressed first data segment;

only in response to determining that the first compressibility hint indicates not compress the uncompressed first data segment:

compressing the uncompressed first data segment to produce a compressed first data segment;

determining a size difference between the compressed first data segment and the uncompressed first data segment;

determining an actual amount of time required to compress the uncompressed first data segment;

determining to adjust the threshold based on analyzing the size difference with the actual amount of time required to compress the uncompressed first data segment; and

adjusting the threshold based on the determining to adjust the threshold; and

sending the uncompressed first data segment to the storage system with the first compressibility hint to assist the storage system in determining whether to compress the uncompressed first data segment prior to storing the first uncompressed data segment.

2. The method of claim 1 , further comprising:

generating a first ratio based on a size of the compressed first data segment and a size of the uncompressed first data segment; and

generating the first compressibility hint based on comparing the first ratio to the threshold.

3. The method of claim 2 , wherein the first compressibility hint comprises a binary value corresponding to whether the first ratio surpasses the threshold.

4. The method of claim 1 , further comprising:

at the storage system, storing the data segments in a compressible region or in a non-compressible region according to their corresponding compressibility hint.

5. The method of claim 4 , further comprising:

compressing the compressible region and writing resulting compressed region into a container object, and directly writing the non-compressible region into the container object.

6. The method of claim 1 , wherein generating the first compressibility hint comprises reading a header of a file corresponding to the uncompressed first data segment and when the header indicates a compressed format, generating the first compressibility hint to indicate the uncompressed first data segment should not be compressed.

7. The method of claim 1 , further comprising:

generating a compressibility hint file that maps a unique compressibility hint for each of the data segments and transferring the compressibility hint file to the storage system.

8. The method of claim 1 , further comprising:

generating a second compressibility hint indicating whether a second uncompressed data segment in the data segments should be compressed based on the adjusted threshold; and

sending the uncompressed second data segment with the second compressibility hint to the storage system.

9. A compute system for performing deduplication operations of data segments of a client by a deduplication system, the system comprising a processor and a memory storing executable instructions that, in response to execution by the processor, cause the system to:

generate fingerprints for all data segments;

filter the fingerprints to identify all uncompressed unique data segments;

for each uncompressed unique data segment, generate a compressibility value that indicates whether the uncompressed unique data segment should be compressed based on a threshold;

determine that the compressibility value indicates not to compress the uncompressed unique data segment;

only in response to determining that the compressibility value indicates to not compress the uncompressed unique data segment:

compress the uncompressed unique data segment to produce a compressed unique data segment;

determine a size difference between the compressed unique data segment and the uncompressed unique data segment;

determine an actual amount of time required to compress the uncompressed unique data segment;

determine to adjust the threshold based on analyzing the size difference with the actual amount of time required to compress the uncompressed unique data segment; and

adjust the threshold based on the determining to adjust the threshold;

send the uncompressed unique data segments together with their corresponding compressibility values to the deduplication system; and

store the uncompressed unique data segments having a compressibility value without compression and compress remaining uncompressed unique data segments prior to storage.

10. The system of claim 9 , wherein the compressibility value comprises a binary value, a first compressibility value indicating an unacceptable compression ratio of a corresponding uncompressed unique data segment and a second compressibility value indicating an acceptable compression ratio of a corresponding uncompressed unique data segment.

11. The system of claim 9 , wherein the compressibility value is further determined by comparing a ratio to the threshold, wherein the ratio is based on the compressing the uncompressed unique data segment.

12. The system of claim 10 , wherein the compressibility value is obtained by reading a header of a file corresponding to the uncompressed unique data segment and when the header indicates a compressed format, setting the compressibility value to the first compressibility value indicating the unacceptable compression ratio of a corresponding uncompressed unique segment.

13. The system of claim 9 , wherein the system further to:

generate a subsequent compressibility value indicating whether a subsequent uncompressed unique data segment should be compressed based on the adjusted threshold; and

send the subsequent uncompressed unique data segment with the subsequent compressibility value to the deduplication system.

14. A computer-readable storage medium for transferring data segments from a first computing system to a second computing system, the computer-readable storage medium being non-transitory and having computer-readable program code stored therein that in response to execution by a processor, causes the first and second computing systems to:

determine uncompressed unique data segments to be transferred from the first computing system to the second computing system;

assign a compressibility hint to each of the uncompressed unique data segments that indicates whether each of the uncompressed unique data segments should be compressed based on a threshold;

determine that one of the compressibility hints indicates to not compress one of the uncompressed unique data segments;

only in response to determining that one of the compressibility hints indicates to not compress one of the uncompressed unique data segments:

compress the uncompressed unique data segment to produce a compressed unique data segment;

determine a size difference between the compressed unique data segment and the uncompressed unique data segment;

determine an actual amount of time required to compress the uncompressed unique data segment;

determine to adjust the threshold based on analyzing the size difference with the actual amount of time required to compress the uncompressed unique data segment; and

adjust the threshold based on the determining to adjust the threshold;

transfer the uncompressed unique data segments together with the compressibility hints from the first computing system to the second computing system;

for each of the uncompressed unique data segments received at the second computing system, inspect their corresponding compressibility hint; and

based on the compressibility hints, compress corresponding uncompressed unique data segments and store remaining uncompressed unique data segments uncompressed.

15. The computer-readable storage medium of claim 14 , wherein the assigning of the compressibility hints comprises determining a compressibility ratio for each of the uncompressed unique data segments and comparing the compressibility ratio to the threshold.

16. The computer-readable storage medium of claim 15 , wherein determining the compressibility ratio comprises calculating a compressibility ratio based on an uncompressed size of the uncompressed unique data segment and a compressed size of the compressed unique data segment.

17. The computer-readable storage medium of claim 14 , wherein the compressibility hint comprises a binary value.

18. The computer-readable storage medium of claim 17 , wherein the second computing system stores all uncompressed unique data segments having the compressibility hint of a first binary value in a first region and stores all uncompressed unique data segments having the compressibility hint of a second binary value in a second region.

19. The computer-readable storage medium of claim 18 , wherein the second computing system further compresses the first region and stores resulting compressed region in a container object and stores the second region in the container object uncompressed.

20. The computer-readable storage medium of claim 14 , wherein the first system further to:

generate a subsequent compressibility hint indicating whether a subsequent uncompressed unique data segment should be compressed based on the adjusted threshold; and

transfer the subsequent uncompressed unique data segment with the subsequent compressibility hint to the second computing system.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2021
From: RATH, JAGANNATHDAS; GUNDA, KALYAN C.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055498/0906 →