IP Library Granted Patent US 12,265,457
Granted Patent B2
US 12,265,457 · App. 18/068,774 · Granted Apr 1, 2025

Methods and systems for data resynchronization in a replication environment

Inventors: Rushikesh Patil (Maharashtra, IN); Sunil Hasbe (Maharashtra, IN)
Assignee: Cohesity Inc.
G06F11/2082G06F3/065G06F9/45558G06F16/27G06F16/907G06F2009/45575G06F2201/84
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 12,265,457
App. No.
18/068,774
Granted
Apr 1, 2025
Kind
B2
Abstract

Methods, computer program products, computer systems, and the like are disclosed that provide for scalable deduplication in an efficient and effective manner. For example, such methods, computer program products, and computer systems can include determining whether a source data store and a replicated data store are unsynchronized and, in response to a determination that the source data store and the replicated data store are unsynchronized, performing a resynchronization operation. The source data stored in the source data store is replicated to replicated data in the replicated data store. The resynchronization operation resynchronizes the source data and the replicated data.

Claims (112)

1. A method comprising:

generating an update set, wherein

the update set is generated by a source data mover at a source site,

the update set comprises one or more replication updates, and

the update set comprises data of the one or more replication updates and associated metadata of the one or more replication updates;

generating a restore identifier at the source site, wherein

the restore identifier facilitates resynchronization of data stored at the source site with data stored at a target site, in event of a restoration operation, by facilitating identification of that portion of the data stored at the target site that has changed since a beginning of a data synchronization interval associated with the restore identifier, using a data structure for synchronization;

sending the update set and the restore identifier to a target data mover at the target site, wherein

the sending is performed by the source data mover; and

storing the restore identifier.

2. The method of claim 1 , wherein the storing comprises:

storing the update set at the target site; and

persisting the restore identifier at the target site, wherein

the restore identifier is stored at the source site as a current restore identifier.

3. The method of claim 2 , wherein

the storing the restore identifier is performed in response to receipt, by the source data mover, of an indication that the update set was successfully received by the target data mover.

4. The method of claim 2 , wherein the storing comprises:

writing the restore identifier to a dirty region log at the source site, wherein

the writing overwrites a previous restore identifier with the restore identifier, and

the previous restore identifier was the current restore identifier prior to the writing.

5. The method of claim 1 , further comprising:

storing the update set at the target site;

persisting the restore identifier at the target site, wherein

the restore identifier is stored at the source site;

comparing the restore identifier and a current restore identifier, wherein

the restore identifier and the current restore identifier are ones of a plurality of restore identifiers, and

the current restore identifier was stored prior to the generating the restore identifier; and

in response to the comparing indicating that the current restore identifier is subsequent to the restore identifier, causing the source data mover to indicate performance of the restore operation at the source site, to the target data mover.

6. The method of claim 5 , wherein

further in response to the comparing indicating that the restore identifier is equal or subsequent to the current restore identifier, preventing performance of the sending and the persisting.

7. The method of claim 5 , wherein

in response to the comparing indicating that the restore identifier is subsequent to the current restore identifier, performing the sending and the persisting.

8. The method of claim 5 , wherein

the restore operation is at least one of

a restore operation from a backup operation performed at the source site, or

a restore operation from a snapshot operation performed at the source site.

9. The method of claim 5 , further comprising:

during the restoration operation, preventing performance of at least one or a migration operation or a takeover operation.

10. The method of claim 1 , wherein

the restore identifier is one of a plurality of restore identifiers that are generated, and

a new restore identifier of the plurality of restore identifiers is generated with a periodicity that is based, at least in part, on at least one of

an amount of data replicated,

an active replication load, and/or

a time interval.

11. The method of claim 1 , wherein

the associated metadata comprises the restore identifier, and

the restore identifier is sent as part of the update set.

12. The method of claim 1 , wherein

the associated metadata further comprises:

logical block number information,

size information, and

physical block number information.

13. The method of claim 1 , wherein

the restore identifier is at least one of

a version,

a counter, or

a universally-unique identifier.

14. The method of claim 1 , further comprising:

maintaining an active bitmap and a synchronization bitmap, wherein

source data is maintained at the source site,

replicated data is maintained at the target site, and

the active bitmap and the synchronization bitmap are maintained such that at least one of the following is performed

in a running state, the active bitmap is updated and the synchronization bitmap is empty,

in a disconnected state, the active bitmap is updated and the synchronization bitmap is empty, or

during a re-connection operation,

the active bitmap is emptied by merging the active bitmap into the synchronization bitmap, and

the synchronization bitmap is cleared by resynchronizing the source data and the replicated data.

15. A method comprising:

receiving an update set and a restore identifier from a source data mover, wherein

the update set and the restore identifier are received by a target data mover at a target site,

the update set was generated from source data at a source site by the source data mover,

a replicated copy of the source data is maintained at the target site as replicated data,

the update set comprises one or more replication updates, and

the update set comprises data of the one or more replication updates and associated metadata of the one or more replication updates;

comparing the restore identifier to a persisted restore identifier;

in response to the comparing indicating that the restore identifier is subsequent to the persisted restore identifier,

persisting the restore identifier at the target site, and

applying the update set to the replicated data; and

in response to the comparing indicating that the persisted restore identifier is subsequent to the restore identifier, awaiting receipt of a synchronization bitmap.

16. The method of claim 15 , further comprising:

receiving the synchronization bitmap, wherein

the synchronization bitmap comprises a plurality of bits;

receiving a plurality of checksums, wherein

each checksum of the plurality of checksums is a checksum of a unit of source data represented by a bit of the plurality of bits; and

for each bit of the plurality of bits,

comparing a corresponding checksum of the plurality of checksums corresponding to the each bit and a checksum of a unit of target data corresponding to the unit of source data represented by the each bit, and

in response to the corresponding checksum and the checksum of the unit of target data corresponding to the unit of source data represented by the each bit not matching, sending the unit of target data to the source data mover.

17. The method of claim 15 , further comprising:

in response to the corresponding checksum and the checksum matching, skipping the unit of target data.

18. The method of claim 15 , wherein

the associated metadata further comprises:

logical block number information,

size information, and

physical block number information.

19. The method of claim 15 , wherein

the restore identifier is at least one of

a version,

a counter, or

a universally-unique identifier.

20. The method of claim 15 , wherein

the associated metadata comprises the restore identifier, and

restore identifier is sent as part of the update set.

21. A non-transitory computer-readable storage medium, comprising program instructions, which, when executed by one or more processors of a computing system, perform a method comprising:

generating an update set, wherein

the update set is generated by a source data mover at a source site,

the update set comprises one or more replication updates, and

the update set comprises data of the one or more replication updates and associated metadata of the one or more replication updates;

generating a restore identifier at the source site, wherein

the restore identifier facilitates resynchronization of data stored at the source site with data stored at a target site, in event of a restoration operation, by facilitating identification of that portion of the data stored at the target site that has changed since a beginning of a data synchronization interval associated with the restore identifier, using a data structure for synchronization;

sending the update set and the restore identifier to a target data mover at the target site, wherein

the sending is performed by the source data mover; and

storing the restore identifier.

Assignments (3)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
Continuity (2)
Continuation 16805294 · Feb 28, 2020
Related Publication 20230123923A1 · Apr 20, 2023
References Cited (74)
US 5649152A · Ohran et al. · 1997 [cited by applicant]
US 5812793A · Shakib · 1998 [cited by examiner]
US 5835953A · Ohran · 1998 [cited by applicant]
US 5875479A · Blount et al. · 1999 [cited by applicant]
US 5915098A · Palmer et al. · 1999 [cited by applicant]
US 6073222A · Ohran · 2000 [cited by applicant]
US 6085298A · Ohran · 2000 [cited by applicant]
US 6202085B1 · Benson · 2001 [cited by examiner]
US RE37601E · Eastridge et al. · 2002 [cited by applicant]
US 6728898B2 · Tremblay et al. · 2004 [cited by applicant]
US 6732245B2 · Kaiya et al. · 2004 [cited by applicant]
US 6779093B1 · Gupta · 2004 [cited by applicant]
US 7039661B1 · Ranade · 2006 [cited by applicant]
US 7103796B1 · Kekre et al. · 2006 [cited by applicant]
US 7386752B1 · Rakic et al. · 2008 [cited by applicant]
US 7987368B2 · Bin · 2011 [cited by applicant]
US 8156074B1 · Multer · 2012 [cited by examiner]
US 8577850B1 · Genda et al. · 2013 [cited by applicant]
US 8874508B1 · Mittal · 2014 [cited by applicant]
US 9087088B1 · Bosse · 2015 [cited by applicant]
US 9268811B1 · Thakur · 2016 [cited by applicant]
US 9442806B1 · Bardale · 2016 [cited by applicant]
US 9509697B1 · Salehpour · 2016 [cited by applicant]
US 9575789B1 · Rangari et al. · 2017 [cited by applicant]
US 9740422B1 · Ozdemir · 2017 [cited by applicant]
US 10496494B1 · Haloi et al. · 2019 [cited by applicant]
US 10592149B1 · Jenkins et al. · 2020 [cited by applicant]
US 10909097B2 · Bandopadhyay et al. · 2021 [cited by applicant]
US 11310137B2 · Bandopadhyay et al. · 2022 [cited by applicant]
US 11429640B2 · Patil et al. · 2022 [cited by applicant]
US 20030014433A1 · Teloh et al. · 2003 [cited by applicant]
US 20030061366A1 · Musantge et al. · 2003 [cited by applicant]
US 20030126388A1 · Yamagami · 2003 [cited by applicant]
US 20030158869A1 · Micka · 2003 [cited by applicant]
US 20030172316A1 · Tremblay · 2003 [cited by examiner]
US 20030217119A1 · Raman · 2003 [cited by examiner]
US 20040049365A1 · Keller et al. · 2004 [cited by applicant]
US 20050193245A1 · Hayden · 2005 [cited by examiner]
US 20070185937A1 · Prahlad et al. · 2007 [cited by applicant]
US 20080279204A1 · Pratt, Jr. · 2008 [cited by applicant]
US 20090187923A1 · Mckinney · 2009 [cited by applicant]
US 20100070447A1 · Pfunter et al. · 2010 [cited by applicant]
US 20100169720A1 · Umpp et al. · 2010 [cited by applicant]
US 20110126099A1 · Anderson et al. · 2011 [cited by applicant]
US 20130054523A1 · Anglin et al. · 2013 [cited by applicant]
US 20150278395A1 · Ben Jemaa et al. · 2015 [cited by applicant]
US 20150280999A1 · Chart et al. · 2015 [cited by applicant]
US 20150378839A1 · Langouev · 2015 [cited by examiner]
US 20160103850A1 · Gupta · 2016 [cited by examiner]
US 20160306560A1 · Maranna et al. · 2016 [cited by applicant]
US 20160371007A1 · Shani · 2016 [cited by applicant]
US 20170286690A1 · Chari et al. · 2017 [cited by applicant]
US 20170289187A1 · Noel · 2017 [cited by applicant]
US 20170300244A1 · Crawford et al. · 2017 [cited by applicant]
US 20180109425A1 · Chart et al. · 2018 [cited by applicant]
US 20180227205A1 · Bandopadhyay et al. · 2018 [cited by applicant]
US 20180285201A1 · Bangalore et al. · 2018 [cited by applicant]
US 20180295029A1 · Shivaana · 2018 [cited by applicant]
US 20190138995A1 · Currin · 2019 [cited by applicant]
US 20190042636A1 · Sipka et al. · 2019 [cited by applicant]
US 20190340078A1 · Bangalore · 2019 [cited by examiner]
US 20200097198A1 · Bansal et al. · 2020 [cited by applicant]
US 20210026810A1 · Gaonkar et al. · 2021 [cited by applicant]
US 20210157777A1 · Yang et al. · 2021 [cited by applicant]
US 20210303408A1 · Zhang et al. · 2021 [cited by applicant]
CN 109154905 · 2019 [cited by applicant]
JP 2020047107 · 2020 [cited by applicant]
WO 2017014814 · 2017 [cited by applicant]
Alferes et al., “Evolution and Reactivity in the Semantic Web,” F. Bry and J. Maluszynski (eds.): Semantic Techniques for the Web: Lecture Notes in Computer Science—5500; Sep. 29, 2009; pp. 161-200. [cited by applicant]
Patil et al., “Method and System for Data Consistency Across Failure and Recovery of Infrastructure”, U.S. Appl. No. 16/836,288, filed Mar. 31, 2020; consisting of Specification, Claims, Abstract, and Drawings; 29 pages. [cited by applicant]
Deng et al., “vMerger : Server Consolidation in Virtualized Environment,” 2013 IEEE 11th Int'l Conference on Dependable, Autonomic and Secure Computing, pp. 606-612. [cited by applicant]
Search Report and Written Opinion of International Application No. PCT/US2021/015384, mailed Apr. 13, 2021, 12 pages. [cited by applicant]
Search Report and Written Opinion of International Application No. PCT/US2021/024850, mailed Aug. 2, 2021, 14 pages. [cited by applicant]
Communication Pursuant to Article (4(3) EPC—Application No. EP 18707994.2, Sep. 9, 2021, 9 pages. [cited by applicant]