IP Library Granted Patent US 11,144,227
Granted Patent B2
US 11,144,227 · App. 15/698,636 · Granted Oct 12, 2021

Content-based post-process data deduplication

Inventors: Adrian Marinescu (Issaquah, WA); Glen McCready (Redwood City, CA)
Assignee: VMWARE, INC.
G06F3/0641G06F3/0608G06F3/0673G06F16/1748G06F11/1453
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,144,227
App. No.
15/698,636
Granted
Oct 12, 2021
Kind
B2
Abstract

Techniques for implementing content-based post-process data deduplication are provided. In one set of embodiments, a computer system can receive a write request comprising write data to be persisted to a storage system and can sample a portion of the write data. The computer system can further execute one or more analyses on the sampled portion in order to determine whether the write data is a good deduplication candidate that is likely to contain redundancies which can be eliminated via data deduplication. If the one or more analyses indicate that the write data is a good deduplication candidate, the computer system can cause the write data to be persisted to a staging storage component of the storage system. Otherwise, the computer system can cause the write data to be persisted to a primary storage component of the storage system that is separate from the staging storage component.

Claims (53)

1. A method for implementing content-based post-process data deduplication, the method comprising:

receiving, by a computer system, a write request comprising write data to be persisted to a storage system;

sampling, by the computer system, a portion of the write data;

executing, by the computer system, one or more analyses on the sampled portion in order to determine whether the write data is a good deduplication candidate that should be processed via data deduplication, the one or more analyses including a signature-based analysis that involves comparing the sampled portion with a plurality of data signatures stored in a signature database, each data signature in the plurality of data signatures comprising a sequence of bytes at certain data block offsets that is found in one or more types of storage objects that are good deduplication candidates;

in response to determining that the one or more analyses indicate the write data is a good deduplication candidate, causing, by the computer system, the write data to be persisted to a staging storage component of the storage system;

in response to determining that the one or more analyses indicate the write data is not a good deduplication candidate, causing, by the computer system, the write data to be persisted to a primary storage component of the storage system;

sampling, by the computer system, data blocks from the primary storage component and the secondary storage component that are fetched in response to read requests initiated by storage clients;

determining, by the computer system based on the sampled data blocks, an accuracy of the computer system in identifying good deduplication candidates; and

if the determined accuracy is below a predefined threshold:

generating one or more new or refined data signatures via an analysis of the sampled data blocks; and

saving the new or refined data signatures to the signature database.

2. The method of claim 1 wherein the one or more analyses further include a proximity-based analysis that evaluates whether the sampled portion comprises one or more data blocks that are close, in terms of logical storage address, to one or more other data blocks previously determined by the computer system to be part of a good deduplication candidate.

3. The method of claim 1 wherein the one or more analyses further include an entropy-based analysis that calculates an entropy level of the sampled portion and determines whether the write data is a good deduplication candidate based on the calculated entropy level.

4. The method of claim 1 wherein the one or more analyses further include:

determining whether the write request overlaps a previous write request; and

determining whether the sampled portion spans one or more data blocks that are part of a lazy initialized storage area of the storage system.

5. The method of claim 1 wherein upon being persisted to the staging storage component, the write data is deduplicated into deduplicated write data and the deduplicated write data is transferred from the staging storage component to the primary storage component.

6. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code embodying a method for implementing content-based post-process data deduplication, the method comprising:

receiving a write request comprising write data to be persisted to a storage system;

sampling a portion of the write data;

executing one or more analyses on the sampled portion in order to determine whether the write data is a good deduplication candidate that is likely to contain redundancies which can be eliminated via data deduplication, the one or more analyses including a signature-based analysis that involves comparing the sampled portion with a plurality of data signatures stored in a signature database, each data signature in the plurality of data signatures comprising a sequence of bytes at certain data block offsets that is found in one or more types of storage objects that are good deduplication candidates;

in response to determining that the one or more analyses indicate the write data is a good deduplication candidate, causing the write data to be persisted to a staging storage component of the storage system;

in response to determining that the one or more analyses indicate the write data is not a good deduplication candidate, causing the write data to be persisted to a primary storage component of the storage system;

sampling data blocks from the primary storage component and the secondary storage component that are fetched in response to read requests initiated by storage clients;

determining, based on the sampled data blocks, an accuracy of the computer system in identifying good deduplication candidates; and

if the determined accuracy is below a predefined threshold:

generating one or more new or refined data signatures via an analysis of the sampled data blocks; and

saving the new or refined data signatures to the signature database.

7. The non-transitory computer readable storage medium of claim 6 wherein the one or more analyses further include a proximity-based analysis that evaluates whether the sampled portion comprises one or more data blocks that are close, in terms of logical storage address, to one or more other data blocks previously determined by the computer system to be part of a good deduplication candidate.

8. The non-transitory computer readable storage medium of claim 6 wherein the one or more analyses further include an entropy-based analysis that calculates an entropy level of the sampled portion and determines whether the write data is a good deduplication candidate based on the calculated entropy level.

9. The non-transitory computer readable storage medium of claim 6 wherein the one or more analyses further include:

determining whether the write request overlaps a previous write request; and

determining whether the sampled portion spans one or more data blocks that are part of a lazy initialized storage area of the storage system.

10. The non-transitory computer readable storage medium of claim 6 wherein upon being persisted to the staging storage component, the write data is deduplicated into deduplicated write data and the deduplicated write data is transferred from the staging storage component to the primary storage component.

11. A computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to:

receive a write request comprising write data to be persisted to a storage system;

sample a portion of the write data;

execute one or more analyses on the sampled portion in order to determine whether the write data is a good deduplication candidate that is likely to contain redundancies which can be eliminated via data deduplication, the one or more analyses including a signature-based analysis that involves comparing the sampled portion with a plurality of data signatures stored in a signature database, each data signature in the plurality of data signatures comprising a sequence of bytes at certain data block offsets that is found in one or more types of storage objects that are good deduplication candidates;

in response to determining that the one or more analyses indicate the write data is a good deduplication candidate, cause the write data to be persisted to a staging storage component of the storage system;

in response to determining that the one or more analyses indicate the write data is not a good deduplication candidate, cause the write data to be persisted to a primary storage component of the storage system;

sample data blocks from the primary storage component and the secondary storage component that are fetched in response to read requests initiated by storage clients;

determine, based on the sampled data blocks, an accuracy of the computer system in identifying good deduplication candidates; and

if the determined accuracy is below a predefined threshold:

generate one or more new or refined data signatures via an analysis of the sampled data blocks; and

save the new or refined data signatures to the signature database.

12. The computer system of claim 11 wherein the one or more analyses further include a proximity-based analysis that evaluates whether the sampled portion comprises one or more data blocks that are close, in terms of logical storage address, to one or more other data blocks previously determined by the computer system to be part of a good deduplication candidate.

13. The computer system of claim 11 wherein the one or more analyses further include an entropy-based analysis that calculates an entropy level of the sampled portion and determines whether the write data is a good deduplication candidate based on the calculated entropy level.

14. The computer system of claim 11 wherein the one or more analyses further include:

determining whether the write request overlaps a previous write request; and

determining whether the sampled portion spans one or more data blocks that are part of a lazy initialized storage area of the storage system.

15. The computer system of claim 11 wherein upon being persisted to the staging storage component, the write data is deduplicated into deduplicated write data and the deduplicated write data is transferred from the staging storage component to the primary storage component.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2017
From: MARINESCU, ADRIAN; MCCREADY, GLEN
To: VMWARE, INC.
Reel/Frame 043772/0249 →
Continuity (1)
Related Publication 20190073151A1 · Mar 7, 2019