IP Library Granted Patent US 10,884,650
Granted Patent B1
US 10,884,650 · App. 15/793,121 · Granted Jan 5, 2021

Opportunistic compression of replicated data in a content addressable storage system

Inventors: David Meiri (Somerville, MA); William Stronge (Westford, MA)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/067G06F3/0619G06F3/0689
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 10,884,650
App. No.
15/793,121
Granted
Jan 5, 2021
Kind
B1
Abstract

An apparatus in one embodiment comprises a first storage system having a plurality of storage devices. The first storage system is configured to participate in a replication process with a second storage system. The first storage system comprises a replication engine configured to request from a data module of the first storage system at least one data page to be replicated to the second storage system as part of the replication process. If the requested data page is already available in compressed form in the data module, the replication engine receives the requested data page in compressed form and transmits it to the second storage system along with at least a portion of a content-based signature of the requested data page. If the requested data page is not already available in compressed form in the data module, the replication engine receives the requested data page in uncompressed form and transmits it to the second storage system.

Claims (58)

1. An apparatus comprising:

a first storage system comprising a plurality of storage devices;

the first storage system being configured to participate in a replication process with a second storage system;

the first storage system comprising a replication engine configured:

to request from a data module of the first storage system at least one data page to be replicated to the second storage system as part of the replication process;

responsive to the requested data page being already available in compressed form in the data module, to receive from the data module the requested data page in compressed form with a compressed data indicator and to transmit the requested data page in compressed form to the second storage system along with at least a portion of a content-based signature of the requested data page; and

responsive to the requested data page not being already available in compressed form in the data module, to receive from the data module the requested data page in uncompressed form with an uncompressed data indicator and to transmit the requested data page in uncompressed form to the second storage system;

wherein the first storage system comprises a content addressable storage system, the content addressable storage system implementing a mapping between content-based signatures of respective data pages, including the requested data page, and corresponding physical locations of the data pages in the storage devices;

wherein the content-based signature is utilized by the data module of the first storage system to determine the physical location of the requested data page in a particular one of the storage devices;

wherein responsive to the requested data page being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in compressed form to the second storage system while bypassing performance of an end-to-end test on the requested data page that would otherwise normally be performed in the first storage system as part of the replication process;

wherein the second storage system responsive to receipt of the requested data page in compressed form from the first storage system is configured to decompress the requested data page and to perform the end-to-end test on the requested data page using the at least a portion of the content-based signature of the requested data page received from the first storage system;

wherein responsive to the requested data page not being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in uncompressed form to the second storage system to perform at least a portion of the end-to-end test on the requested data page as part of the replication process;

wherein the end-to-end test comprises comparing a content-based signature of the requested data page generated at the second storage system with the content-based signature of the requested data page generated at the first storage system; and

wherein the requested data page is part of a given portion of a site snapshot of the first storage system that is selected for verification in a given cycle of a cycle-based asynchronous replication process, the given portion of the site snapshot comprising a percentage of the site snapshot of the first storage system where a size of the percentage of the site snapshot is selected based at least in part on a number of cycles of the cycle-based asynchronous replication process expected to be executed within a given time period.

2. The apparatus of claim 1 wherein the first and second storage systems comprise respective content addressable storage systems having respective sets of non-volatile memory storage devices.

3. The apparatus of claim 1 wherein the first and second storage systems are associated with respective source and target sites of the replication process and wherein the source site comprises a production site data center and the target site comprises a disaster recovery site data center.

4. The apparatus of claim 1 wherein the content-based signature comprises at least one of a checksum and a hash of content of the requested data page.

5. The apparatus of claim 1 wherein the compressed data indicator comprises a compressed data flag in its set state and the uncompressed data indicator comprises the compressed data flag in its reset state.

6. The apparatus of claim 1 wherein the replication engine comprises replication control logic implemented in a storage controller of the first storage system.

7. The apparatus of claim 1 wherein the decompressing of the requested data page and the performance of the end-to-end test on the requested data page are performed by a replication engine implemented in a storage controller of the second storage system.

8. The apparatus of claim 1 wherein the decompressing of the requested data page and the performance of the end-to-end test on the requested data page are performed by a data module of the second storage system.

9. The apparatus of claim 1 wherein the data module of the first storage system implements a RAID algorithm that compresses data pages in conjunction with storage of the data pages in the storage devices of the first storage system, wherein the data module further comprises at least one cache in which data pages are stored in uncompressed form prior to being compressed for storage in the storage devices, and wherein the requested data page is supplied from the cache of the data module in uncompressed form in response to the request.

10. The apparatus of claim 1 wherein the first storage system comprises a clustered storage system having a plurality of storage nodes each having a plurality of storage devices.

11. A method comprising:

configuring a first storage system comprising a plurality of storage devices to participate in a replication process with a second storage system; and

as part of the replication process, a replication engine of the first storage system:

requesting from a data module of the first storage system at least one data page to be replicated to the second storage system;

responsive to the requested data page being already available in compressed form in the data module, receiving from the data module the requested data page in compressed form with a compressed data indicator and transmitting the requested data page in compressed form to the second storage system along with at least a portion of a content-based signature of the requested data page; and

responsive to the requested data page not being already available in compressed form in the data module, receiving from the data module the requested data page in uncompressed form with an uncompressed data indicator and transmitting the requested data page in uncompressed form to the second storage system;

wherein the first storage system comprises a content addressable storage system, the content addressable storage system implementing a mapping between content-based signatures of respective data pages, including the requested data page, and corresponding physical locations of the data pages in the storage devices;

wherein the content-based signature is utilized by the data module of the first storage system to determine the physical location of the requested data page in a particular one of the storage devices;

wherein responsive to the requested data page being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in compressed form to the second storage system while bypassing performance of an end-to-end test on the requested data page that would otherwise normally be performed in the first storage system as part of the replication process;

wherein the second storage system responsive to receipt of the requested data page in compressed form from the first storage system is configured to decompress the requested data page and to perform the end-to-end test on the requested data page using the at least a portion of the content-based signature of the requested data page received from the first storage system;

wherein responsive to the requested data page not being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in uncompressed form to the second storage system and to perform at least a portion of the end-to-end test on the requested data page as part of the replication process;

wherein the end-to-end test comprises comparing a content-based signature of the requested data page generated at the second storage system with the content-based signature of the requested data page generated at the first storage system;

wherein the requested data page is part of a given portion of a site snapshot of the first storage system that is selected for verification in a given cycle of a cycle-based asynchronous replication process performed over a given time period, the given portion of the site snapshot comprising a percentage of the site snapshot of the first storage system where a size of the percentage of the site snapshot is selected based at least in part on a number of cycles of the cycle-based asynchronous replication process expected to be executed within the given time period; and

wherein the method is implemented by at least one processing device of the first storage system.

12. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device of a first storage system comprising a plurality of storage devices causes the first storage system:

to participate in a replication process with a second storage system; and

as part of the replication process, a replication engine of the first storage system being configured:

to request from a data module of the first storage system at least one data page to be replicated to the second storage system;

responsive to the requested data page being already available in compressed form in the data module, to receive from the data module the requested data page in compressed form with a compressed data indicator and to transmit the requested data page in compressed form to the second storage system along with at least a portion of a content-based signature of the requested data page; and

responsive to the requested data page not being already available in compressed form in the data module, to receive from the data module the requested data page in uncompressed form with an uncompressed data indicator and to transmit the requested data page in uncompressed form to the second storage system;

wherein the first storage system comprises a content addressable storage system, the content addressable storage system implementing a mapping between content-based signatures of respective data pages, including the requested data page, and corresponding physical locations of the data pages in the storage devices;

wherein the content-based signature is utilized by the data module of the first storage system to determine the physical location of the requested data page in a particular one of the storage devices;

wherein responsive to the requested data page being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in compressed form to the second storage system while bypassing performance of an end-to-end test on the requested data page that would otherwise normally be performed in the first storage system as part of the replication process;

wherein the second storage system responsive to receipt of the requested data page in compressed form from the first storage system is configured to decompress the requested data page and to perform the end-to-end test on the requested data page using the at least a portion of the content-based signature of the requested data page received from the first storage system;

wherein responsive to the requested data page not being already available in compressed form in the data module, the replication engine of the first storage system is further configured to transmit the requested data page in uncompressed form to the second storage system and to perform at least a portion of the end-to-end test on the requested data page as part of the replication process;

wherein the end-to-end test comprises comparing a content-based signature of the requested data page generated at the second storage system with the content-based signature of the requested data page generated at the first storage system; and

wherein the requested data page is part of a given portion of a site snapshot of the first storage system that is selected for verification in a given cycle of a cycle-based asynchronous replication process performed over a given time period, the given portion of the site snapshot comprising a percentage of the site snapshot of the first storage system where a size of the percentage of the site snapshot is selected based at least in part on a number of cycles of the cycle-based asynchronous replication process expected to be executed within the given time period.

13. The method of claim 11 wherein the first and second storage systems comprise respective content addressable storage systems having respective sets of non-volatile memory storage devices.

14. The method of claim 11 wherein the first and second storage systems are associated with respective source and target sites of the replication process and wherein the source site comprises a production site data center and the target site comprises a disaster recovery site data center.

15. The method of claim 11 wherein the content-based signature comprises at least one of a checksum and a hash of content of the requested data page.

16. The method of claim 11 wherein the compressed data indicator comprises a compressed data flag in its set state and the uncompressed data indicator comprises the compressed data flag in its reset state.

17. The computer program product of claim 12 wherein the first and second storage systems comprise respective content addressable storage systems having respective sets of non-volatile memory storage devices.

18. The computer program product of claim 12 wherein the first and second storage systems are associated with respective source and target sites of the replication process and wherein the source site comprises a production site data center and the target site comprises a disaster recovery site data center.

19. The computer program product of claim 12 wherein the content-based signature comprises at least one of a checksum and a hash of content of the requested data page.

20. The apparatus of claim 1 wherein the size of the percentage of the site snapshot is further selected based at least in part on a lag time between initiate of transfer of the given portion of the site snapshot by the first storage system and update of a corresponding site snapshot by the second storage system.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: MEIRI, DAVID; STRONGE, WILLIAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043996/0746 →
Cited By (3)
US 12,277,031 US 12,373,306 US 12,717,689