IP Library Granted Patent US 12,405,859
Granted Patent B2
US 12,405,859 · App. 18/408,314 · Granted Sep 2, 2025

Standbys for continuous data protection-enabled objects

Inventors: Shobhit Agarwal (San Jose, CA); Chinmaya Manjunath (San Jose, CA); Kishan Venkata Sravan Nerella (San Jose, CA); Himanshu Mehra (Mountain View, CA)
Assignee: Cohesity, Inc.
G06F11/1458G06F16/128G06F16/1734G06F16/9027G06F11/1461G06F2201/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,405,859
App. No.
18/408,314
Granted
Sep 2, 2025
Kind
B2
Abstract

A stream of data changes to content of an object associated with a source system is received. A hot standby version of at least a portion of the object maintained at a recovery system is updated by streaming the received stream of data changes to the recovery system. It is determined that a gap exists in the stream of data changes. In response to determining that the gap exists in the stream of data changes, a reference snapshot is requested from the source system. A current state of the hot standby version of at least the portion of the object maintained at the recovery system is caused to be updated to a state of the portion of the object associated with the reference snapshot.

Claims (36)

1. A method, comprising:

receiving a stream of data changes to content of an object associated with a source system;

updating a hot standby version of at least a portion of the object maintained at a recovery system by streaming the received stream of data changes to the recovery system, wherein the hot standby version comprises a replica of the object associated with the source system that is maintained to be up to date and ready to use within a specified recovery time objective (RTO);

determining that a gap exists in the stream of data changes such that the hot standby version of the at least the portion of the object maintained at the recovery system is in an inconsistent state with respect to the at least the portion of the object associated with the source system, wherein the at least the portion of the object includes continuous data protection (CDP) enabled object;

in response to determining that the gap exists in the stream of data changes, obtaining a reference snapshot from the source system; and

causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to a state of the portion of the object associated with the reference snapshot.

2. The method of claim 1 , wherein a data change included in the stream of data changes is associated with a sequence number.

3. The method of claim 2 , wherein the sequence number is associated with an incarnation identifier.

4. The method of claim 3 , wherein determining that the gap exists is based on determining that the incarnation identifier has been incremented.

5. The method of claim 2 , wherein the sequence number is associated with a change identifier.

6. The method of claim 5 , wherein determining that the gap exists is based on determining that the corresponding sequence number associated with the one or more data changes included in the stream of data changes is missing.

7. The method of claim 1 , wherein causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to the state of the portion of the object associated with the reference snapshot includes sending to the recovery system one or more instructions to clone the current state of the hot standby version of at least the portion of the object maintained at the recovery system.

8. The method of claim 7 , wherein the recovery system clones the inconsistent state of the hot standby version of at least the portion of the object in response to receiving the one or more instructions.

9. The method of claim 1 , wherein causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to the state of the portion of the object associated with the reference snapshot includes generating a view corresponding to the object associated with the reference snapshot.

10. The method of claim 1 , wherein causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to the state of the portion of the object associated with the reference snapshot includes generating a view corresponding to the current state of the hot standby version of at least the portion of the object.

11. The method of claim 1 , wherein causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to the state of the portion of the object associated with the reference snapshot further includes determining one or more differences between a view corresponding to the object associated with the reference snapshot and a view corresponding to the current state of the hot standby version of at least the portion of the object.

12. The method of claim 11 , wherein the one or more determined differences correspond to one or more non-shared data chunks.

13. The method of claim 12 , wherein causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to the state of the portion of the object associated with the reference snapshot further includes providing the one or more non-shared data chunks to the recovery system.

14. The method of claim 13 , wherein in response to receiving the one or more non-shared data chunks, the recovery system updates the hot standby version of at least the portion of the object.

15. A computer program product embodied in a non-transitory computer readable medium and comprising storing computer instructions that, when executed, cause one or more processors to:

receiving receive a stream of data changes to content of an object associated with a source system;

update a hot standby version of at least a portion of the object maintained at a recovery system by streaming the received stream of data changes to the recovery system, wherein a hot standby comprises a replica of the object associated with the source system that is up to date and ready to use within a specified recovery time objective (RTO);

determine that a gap exists in the stream of data changes such that the hot standby version of the at least the portion of the object maintained at the recovery system is in an inconsistent state with respect to the at least the portion of the object associated with the source system, wherein the at least the portion of the object includes continuous data protection (CDP) enabled object;

in response to determining that the gap exists in the stream of data changes, request a reference snapshot from the source system; and

causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to a state of the portion of the object associated with the reference snapshot.

16. The computer program product of claim 15 , wherein a data change included in the stream of data changes is associated with a sequence number.

17. The computer program product of claim 16 , wherein the sequence number is associated with one of or both an incarnation identifier and a change identifier.

18. The computer program product of claim 15 , wherein the computer instructions include computer instructions that, when executed, cause the one or more processors to determine that the gap exists based on corresponding sequence numbers associated with the stream of data changes.

19. A system, comprising:

one or more processors configured to:

receive a stream of data changes to content of an object associated with a source system;

update a hot standby version of at least a portion of the object maintained at a recovery system by streaming the received stream of data changes to the recovery system, wherein the hot standby comprises a replica of the object associated with the source system that is up to date and ready to use within a specified recovery time objective (RTO);

determine that a gap exists in the stream of data changes such that the hot standby version of the at least the portion of the object maintained at the recovery system is in an inconsistent state with respect to the at least the portion of the object associated with the source system, wherein the at least the portion of the object includes continuous data protection (CDP) enabled object;

in response to determining that the gap exists in the stream of data changes, request a reference snapshot from the source system; and

causing the inconsistent state of the hot standby version of at least the portion of the object maintained at the recovery system to be updated to a state of the portion of the object associated with the reference snapshot; and

a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

Assignments (2)
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: AGARWAL, SHOBHIT; MANJUNATH, CHINMAYA; NERELLA, KISHAN VENKATA SRAVAN; MEHRA, HIMANSHU
To: COHESITY, INC.
Reel/Frame 066180/0415 →
Continuity (3)
Continuation 17540630 · Dec 2, 2021
Provisional Application 63122722 · Dec 8, 2020
Related Publication 20240143450A1 · May 2, 2024
References Cited (179)
US 7421648B1 · Davis · 2008 [cited by applicant]
US 7437764B1 · Sobel · 2008 [cited by applicant]
US 8020037B1 · Schwartz · 2011 [cited by applicant]
US 8086585B1 · Brashers · 2011 [cited by applicant]
US 8112661B1 · La France · 2012 [cited by applicant]
US 8190583B1 · Shekar · 2012 [cited by applicant]
US 8312471B2 · Davis · 2012 [cited by applicant]
US 8364648B1 · Sim-Tang · 2013 [cited by applicant]
US 8364652B2 · Vijayan · 2013 [cited by examiner]
US 8364920B1 · Parkison · 2013 [cited by examiner]
US 8607342B1 · Liao · 2013 [cited by applicant]
US 9268689B1 · Chen · 2016 [cited by applicant]
US 9304864B1 · Bushman · 2016 [cited by applicant]
US 9311190B1 · Bushman · 2016 [cited by applicant]
US 9361185B1 · Bushman · 2016 [cited by applicant]
US 9396202B1 · Drobychev · 2016 [cited by examiner]
US 9471441B1 · Lyadvinsky · 2016 [cited by applicant]
US 9489230B1 · Patwardhan · 2016 [cited by applicant]
US 9594514B1 · Bono · 2017 [cited by applicant]
US 9621428B1 · Lev · 2017 [cited by applicant]
US 9983812B1 · Don · 2018 [cited by applicant]
US 10037223B2 · Park · 2018 [cited by applicant]
US 10089148B1 · Blitzer · 2018 [cited by examiner]
US 10162528B2 · Sancheti · 2018 [cited by applicant]
US 10169077B1 · Sigl, Sr. · 2019 [cited by applicant]
US 10175896B2 · Battaje · 2019 [cited by applicant]
US 10275321B1 · Bajaj · 2019 [cited by applicant]
US 10496497B1 · Yadav · 2019 [cited by applicant]
US 10503612B1 · Wang · 2019 [cited by applicant]
US 10545776B1 · Kowalski · 2020 [cited by applicant]
US 10628270B1 · Bajaj · 2020 [cited by examiner]
US 10877928B2 · Nagrale · 2020 [cited by applicant]
US 10896097B1 · Purcell · 2021 [cited by applicant]
US 11036594B1 · Shats · 2021 [cited by applicant]
US 11042452B1 · McNutt · 2021 [cited by examiner]
US 11086545B1 · Dayal · 2021 [cited by applicant]
US 11176154B1 · Dasgupta · 2021 [cited by applicant]
US 11275834B1 · Offer · 2022 [cited by applicant]
US 20030033344A1 · Abbott · 2003 [cited by applicant]
US 20040250033A1 · Prahlad · 2004 [cited by applicant]
US 20050055520A1 · Kappler · 2005 [cited by applicant]
US 20050243817A1 · Wrenn · 2005 [cited by examiner]
US 20060069861A1 · Amano · 2006 [cited by applicant]
US 20060182255A1 · Luck, Jr. · 2006 [cited by applicant]
US 20070153675A1 · Baglin · 2007 [cited by applicant]
US 20080208926A1 · Smoot · 2008 [cited by applicant]
US 20090089657A1 · Davis · 2009 [cited by applicant]
US 20090171707A1 · Bobak · 2009 [cited by applicant]
US 20090313503A1 · Atluri · 2009 [cited by applicant]
US 20090327445A1 · Van Rietschote · 2009 [cited by applicant]
US 20100031170A1 · Carullo · 2010 [cited by applicant]
US 20100070725A1 · Prahlad · 2010 [cited by applicant]
US 20100106933A1 · Kamila · 2010 [cited by applicant]
US 20100122248A1 · Robinson · 2010 [cited by applicant]
US 20110022879A1 · Chavda · 2011 [cited by applicant]
US 20110106776A1 · Vik · 2011 [cited by applicant]
US 20110107246A1 · Vik · 2011 [cited by applicant]
US 20120203742A1 · Goodman · 2012 [cited by applicant]
US 20130006943A1 · Chavda · 2013 [cited by applicant]
US 20130179481A1 · Halevy · 2013 [cited by applicant]
US 20130191347A1 · Bensinger · 2013 [cited by applicant]
US 20130219135A1 · Knowles · 2013 [cited by applicant]
US 20130227558A1 · Du · 2013 [cited by applicant]
US 20130232480A1 · Winterfeldt · 2013 [cited by applicant]
US 20130232497A1 · Jalagam · 2013 [cited by applicant]
US 20130254402A1 · Anand · 2013 [cited by applicant]
US 20130262387A1 · Varadharajan · 2013 [cited by applicant]
US 20130322335A1 · Smith · 2013 [cited by applicant]
US 20140040206A1 · Ramakrishnan · 2014 [cited by applicant]
US 20140052692A1 · Zhang · 2014 [cited by applicant]
US 20140059306A1 · Bender · 2014 [cited by applicant]
US 20140165060A1 · Muller · 2014 [cited by applicant]
US 20140297588A1 · Babashetty · 2014 [cited by applicant]
US 20140359229A1 · Cota-Robles · 2014 [cited by applicant]
US 20140372553A1 · Blackburn · 2014 [cited by applicant]
US 20150193487A1 · Demidov · 2015 [cited by applicant]
US 20150254150A1 · Gordon · 2015 [cited by applicant]
US 20150269032A1 · Muthyala · 2015 [cited by examiner]
US 20150278046A1 · Zellermayer · 2015 [cited by applicant]
US 20150347242A1 · Martos · 2015 [cited by applicant]
US 20150363270A1 · Hammer · 2015 [cited by applicant]
US 20150370502A1 · Aron · 2015 [cited by applicant]
US 20150378765A1 · Singh · 2015 [cited by applicant]
US 20160004450A1 · Lakshman · 2016 [cited by applicant]
US 20160034356A1 · Aron · 2016 [cited by applicant]
US 20160048408A1 · Madhu · 2016 [cited by applicant]
US 20160070714A1 · D Sa · 2016 [cited by applicant]
US 20160085575A1 · Dornemann · 2016 [cited by applicant]
US 20160085636A1 · Dornemann · 2016 [cited by applicant]
US 20160098323A1 · Mutha · 2016 [cited by applicant]
US 20160125059A1 · Jain · 2016 [cited by applicant]
US 20160162378A1 · Garlapati · 2016 [cited by applicant]
US 20160188898A1 · Karinta · 2016 [cited by applicant]
US 20160203060A1 · Singh · 2016 [cited by applicant]
US 20160232061A1 · Gaschler · 2016 [cited by applicant]
US 20160321339A1 · Tekade · 2016 [cited by applicant]
US 20160357640A1 · Bushman · 2016 [cited by applicant]
US 20160357641A1 · Bushman · 2016 [cited by applicant]
US 20160357769A1 · Bushman · 2016 [cited by applicant]
US 20170031613A1 · Lee · 2017 [cited by applicant]
US 20170031622A1 · Nagarajan · 2017 [cited by applicant]
US 20170060710A1 · Ramani · 2017 [cited by applicant]
US 20170060884A1 · Goodman · 2017 [cited by applicant]
US 20170123935A1 · Pandit · 2017 [cited by applicant]
US 20170168903A1 · Dornemann · 2017 [cited by applicant]
US 20170185488A1 · Kumarasamy · 2017 [cited by examiner]
US 20170185491A1 · Hajare · 2017 [cited by applicant]
US 20170185729A1 · Boray · 2017 [cited by applicant]
US 20170193116A1 · Wong · 2017 [cited by applicant]
US 20170206212A1 · Srivilliputtur Mannarswamy · 2017 [cited by applicant]
US 20170212680A1 · Waghulde · 2017 [cited by applicant]
US 20170262347A1 · Dornemann · 2017 [cited by applicant]
US 20170337109A1 · Ramu · 2017 [cited by applicant]
US 20180004437A1 · Battaje · 2018 [cited by applicant]
US 20180004764A1 · Sudarsanam · 2018 [cited by applicant]
US 20180060106A1 · Madtha · 2018 [cited by applicant]
US 20180060187A1 · Chavda · 2018 [cited by applicant]
US 20180081766A1 · Ghuge · 2018 [cited by applicant]
US 20180081902A1 · McKenzie · 2018 [cited by applicant]
US 20180088973A1 · Subhraveti · 2018 [cited by applicant]
US 20180095846A1 · Sanakkayala · 2018 [cited by applicant]
US 20180113625A1 · Sancheti · 2018 [cited by applicant]
US 20180196820A1 · Kremer · 2018 [cited by applicant]
US 20180212896A1 · Chang · 2018 [cited by applicant]
US 20180253414A1 · Hailpern · 2018 [cited by applicant]
US 20180293374A1 · Chen · 2018 [cited by applicant]
US 20180316577A1 · Freeman · 2018 [cited by applicant]
US 20180329637A1 · Battaje · 2018 [cited by applicant]
US 20190065277A1 · Raikov · 2019 [cited by applicant]
US 20190073276A1 · Yuen · 2019 [cited by applicant]
US 20190108266A1 · Manvar · 2019 [cited by applicant]
US 20190129799A1 · Kumarasamy · 2019 [cited by applicant]
US 20190132203A1 · Wince · 2019 [cited by applicant]
US 20190197020A1 · Yap · 2019 [cited by applicant]
US 20190215358A1 · Kobayashi · 2019 [cited by applicant]
US 20190220198A1 · Kashi Visvanathan · 2019 [cited by applicant]
US 20190228097A1 · Kassa · 2019 [cited by applicant]
US 20190278662A1 · Nagrale · 2019 [cited by applicant]
US 20190278663A1 · Mehta · 2019 [cited by applicant]
US 20200026538A1 · Cui · 2020 [cited by applicant]
US 20200034254A1 · Natanzon · 2020 [cited by applicant]
US 20200057567A1 · Hutcheson · 2020 [cited by applicant]
US 20200057669A1 · Hutcheson · 2020 [cited by applicant]
US 20200110755A1 · Waldman · 2020 [cited by applicant]
US 20200142865A1 · Manjunath · 2020 [cited by applicant]
US 20200159625A1 · Hutcheson · 2020 [cited by applicant]
US 20200167238A1 · Killamsetti · 2020 [cited by applicant]
US 20200183794A1 · Dwarampudi · 2020 [cited by applicant]
US 20200233571A1 · Yuravlivker · 2020 [cited by applicant]
US 20200278274A1 · Shetty · 2020 [cited by applicant]
US 20200285449A1 · McIntosh · 2020 [cited by applicant]
US 20200394072A1 · Sreekantaswamy · 2020 [cited by applicant]
US 20210056203A1 · Qiao · 2021 [cited by applicant]
US 20210081087A1 · Wayne · 2021 [cited by applicant]
US 20210081432A1 · Grunwald · 2021 [cited by examiner]
US 20210103556A1 · Nagrale · 2021 [cited by applicant]
US 20210117293A1 · Luo · 2021 [cited by applicant]
US 20210232579A1 · Schechter · 2021 [cited by applicant]
US 20210318851A1 · Sahu · 2021 [cited by applicant]
US 20210382771A1 · Schniebel · 2021 [cited by applicant]
US 20210385254A1 · Pettit · 2021 [cited by applicant]
US 20220035714A1 · Schultz · 2022 [cited by applicant]
US 20220138057A1 · Juniwal · 2022 [cited by applicant]
US 20220179748A1 · Agarwal et al. · 2022 [cited by applicant]
Prosecution History from U.S. Appl. No. 17/540,630, now issued U.S. Pat. No. 11,914,480, dated Jun. 23, 2023 through Nov. 6, 2023, 55 pp. [cited by applicant]
“Backup Solution Guide”—Synology https://download.synology.com/download/www-res/brochure/backup_solution_guide_en-global .pdf (Year: 2019). [cited by applicant]
“Recovering File from an Amazon EBS Volume Backup”—Josh Rad, AWS, Feb. 1, 2019 https://aws.amazon.com/blogs/compute/recovering-files-from-an-amazon-ebs-volume-backup/ (Year: 2019). [cited by applicant]
Actifio. “Getting Started with Actifio VDP.” Sep. 23, 2020. https://web.archive.org/web/20200923181125/https://docs.actifio.com/10.0/PDFs/Introducing.pdf (Year: 2020). [cited by applicant]
C. Grace. “Site Recovery Manager Technical Overview.” Dec. 1, 2020. https://web.archive.org/web/20201201181602/https://core.vmware.com/resource/site-recovery-manager-technical-overview (Year: 2020). [cited by applicant]
Cloud Endure. “Cloud Endure Documentation.” Dec. 1, 2020. https://web.archive.org/web/20201201022045/https://docs.cloudendure.com/CloudEndure%20Documentation.htm (Year: 2020). [cited by applicant]
Cohesity, Cohesity Data Protection White Paper, 2016, Cohesity, pp. 1-12 (Year: 2016). [cited by applicant]
Gaetan Castlelein, Cohesity SnapFS and SnapTree, Aug. 9, 2017, Cohesity, pp. 1-4 (Year: 2017). [cited by applicant]
M. Chuang. “Announcing VMware Cloud Disaster Recovery.” Sep. 29, 2020. https://web.archive.org/web/20201102133037/https://blogs.vmware.com/virtualblocks/2020/09/29/announcing-vmware-cloud-disaster-recovery/ (Year: 2020). [cited by applicant]
M. McLaughlin. “VMware Cloud Disaster Recovery is Now Available.” Oct. 20, 2020. https://web.archive.org/web/20201103021801/https://blogs.vmware.com/virtualblocks/2020/10/20/vmware-cloud-disaster-recovery-is-now-availab… [cited by applicant]
Red Hat. “Red Hat Virtualization 4.3 Disaster Recovery Guide.” Jul. 17, 2019. https://web.archive.org/web/20190717013417/https://access.redhat.com/documentation/en-us/red_hat_virtualization/4.3/html/disaster_recovery_gu… [cited by applicant]
Red Hat. “Red Hat Virtualization 4.3 Product Guide.” Jul. 17, 2019. https://web.archive.org/web/20190717013254/https://access.redhat.com/documentation/en-us/red_hat_ virtualization/4.3/html/product_guide/index (Year: 20… [cited by applicant]
VMware. “Site Recovery Manager Administration.” May 31, 2019. https://docs.vmware.com/en/Site-Recovery-Manager/8.5/srm-admin-8-5.pdf (Year: 2019). [cited by applicant]
VMware. “Site Recovery Manager Evaluation Guide.” Oct. 19, 2020. https://web.archive.org/web/20201019155135/https://core.vmware.com/resource/site-recovery-manager-evaluation-guide (Year: 2020). [cited by applicant]
Zerto. “Zerto Disaster Recovery Guide.” Sep. 2016. https://www.zerto.com/wp-content/uploads/2016/09/Zerto-Disaster-Recovery-Guide_CIO_eBook.pdf (Year: 2016). [cited by applicant]