IP Library Granted Patent US 12,436,707
Granted Patent B2
US 12,436,707 · App. 18/421,649 · Granted Oct 7, 2025

Usage of Op logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight Op logging

Inventors: Krishna Murthy Chandraiah Setty Narasingarayanapeta (Bangalore, IN); Akhil Kaushik (Karnataka, IN); Nagaraj Lalsangi (Cary, NC)
Assignee: NetApp, Inc.
G06F3/065G06F3/0613G06F3/0619G06F3/0631G06F3/0653G06F3/0659G06F3/067
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,436,707
App. No.
18/421,649
Filed
Jan 24, 2024
Granted
Oct 7, 2025
Kind
B2
Art Unit
2137
USPC
711/154
Abstract

In one embodiment, a method comprises maintaining state information regarding a data synchronous replication status for a storage object of a primary storage cluster and a replicated storage object of a secondary storage cluster. The method includes temporarily disallowing input/output (I/O) operations for the storage object when the storage object of the primary storage cluster has a failure, which causes an internal state as out of sync for the storage object while maintaining an external state as in sync for external entities. The method performs persistent inflight tracking and reconciliation of I/O operations with a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster and performs a resynchronization between the storage object and the replicated storage object based on the persistent inflight tracking and reconciliation of I/O operations.

Claims (45)

1. A computer implemented method performed by one or more processing resources of a distributed storage system, the method comprising:

initiating a resynchronization process due to a failure or loss of connectivity of a storage object of a primary storage cluster with the storage object becoming out of sync as an internal state while maintaining an external state as in sync for external entities in order to provide time for reestablishing synchronous replication between the storage object and a replicated storage object of a secondary storage cluster within duration of an operation (Op) timeout period; and

performing the resynchronization process between the storage object and the replicated storage object based on using a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster.

2. The computer implemented method of claim 1 , wherein the resynchronization process is based on reestablishing a Sync Data Path between a data copy of the storage object and a mirrored data copy of the replicated storage object.

3. The computer implemented method of claim 1 , wherein the resynchronization resumes zero recovery point objective (RPO) protection.

4. The computer implemented method of claim 1 , further comprising:

initiating persistent inflight tracking and reconciliation of I/O operations based on the first Op log of the primary storage cluster and the second Op log of the secondary storage cluster;

replaying the I/O operations from one of the first and second Op logs; and

reconciling the I/O operations in the first Op log with the I/O operations in the second Op log by determining whether an Op being considered is present or absent in both of the first and second Op logs and skipping the Op if the Op is present or absent in both of the first and second Op logs from the primary and secondary storage clusters.

5. The computer implemented method of claim 1 , further comprising:

transitioning a consistency group (CG) for a node of the storage object to out of sync (OOS) when the resynchronization experiences an error or failure resulting in expiration of the Op timeout period.

6. The computer implemented method of claim 1 , wherein the I/O operations for the storage object are temporarily disallowed until resumption of synchronous replication and this avoids dependent write order inconsistencies.

7. A non-transitory computer-readable storage medium embodying a set of instructions, which when executed by one or more processing resources of a multi-site distributed storage system cause the one or more processing resources to:

initiate a resynchronization process due to a failure or loss of connectivity of a storage object of a node of a primary storage cluster with the storage object of the node becoming out of sync as an internal state while maintaining an external state as in sync for external entities in order to provide time for reestablishing synchronous replication between the storage object and a replicated storage object of a secondary storage cluster within duration of an operation (Op) timeout period; and

perform the resynchronization process between the storage object and the replicated storage object based on using a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the resynchronization is based on reestablishing a Sync Data Path between a data copy of the storage object and a mirrored data copy of the replicated storage object.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the resynchronization resumes zero recovery point objective (RPO) protection.

10. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

initiating persistent inflight tracking and reconciliation of I/O operations based on the first Op log of the primary storage cluster and the second Op log of the secondary storage cluster;

replaying the I/O operations from one of the first and second Op logs; and

reconciling the I/O operations in the first Op log with the I/O operations in the second Op log by determining whether an Op being considered is present or absent in both of the first and second Op logs and skipping the Op if the Op is present or absent in both of the first and second Op logs from the primary and secondary storage clusters.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

transition a consistency group (CG) for the node of the storage object to out of sync (OOS) state when the resynchronization experiences an error or failure resulting in expiration of the Op timeout period.

12. The non-transitory computer-readable storage medium of claim 7 , wherein the input/output (I/O) operations for the storage object are temporarily disallowed until resumption of synchronous replication and this avoids dependent write order inconsistencies.

13. A multi-site distributed storage system having a primary storage site with a primary storage cluster and a secondary storage site with a secondary storage cluster, comprising:

one or more processing resources; and

a non-transitory computer-readable medium coupled to the one or more processing resources, having stored therein instructions, which when executed by the one or more processing resources cause the one or more processing resources to:

maintain a first operation (Op) Log for a first volume and a second Op Log for a second volume to be capable of facilitating resynchronization between a dataset stored on the first volume of the primary storage cluster of the distributed storage system and a mirror copy of the dataset stored on the second volume of the secondary storage cluster of the distributed storage system;

receive an operation associated with a file within the dataset;

determine whether the operation is a modifying operation; and

create an operation (Op) log entry with one of the first and second Op Logs if the operation is a modifying operation to cause a modification of the file.

14. The multi-site distributed storage system of claim 13 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

determine whether a storage node that is responsible for executing the operation is associated with the primary storage cluster; and

determine whether the operation is a write operation or not, wherein the Op log entry contains a sequence number assigned to the operation, and wherein the Op log entry is not required to contain data associated with the operation when the operation comprises a write operation.

15. The multi-site distributed storage system of claim 14 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

store a sequence number, a file identifier, and an Op range including offset and length for the operation when the operation is a write operation, wherein pay load data of the write operation is not stored.

16. The multi-site distributed storage system of claim 14 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

store data for an Op log entry including a sequence number, a file identifier, an Op range including offset and length, and pay load data of the operation when the operation is not a write Op and the storage node that is responsible for executing the operation is associated with the primary storage cluster.

17. The multi-site distributed storage system of claim 14 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

store data for an Op log entry including a sequence number and no pay load data when the operation is not a write operation and the storage node that is responsible for executing the operation is associated with the secondary storage cluster.

18. The multi-site distributed storage system of claim 13 , wherein different data is stored in a header of the Op Log entry for metadata operations, deallocate space operations, and write operations.

19. The multi-site distributed storage system of claim 13 , wherein the entry is populated during a modify phase of an Op handler.

20. The multi-site distributed storage system of claim 13 , wherein the instructions when executed by the one or more processing resources cause the one or more processing resources to:

execute a write operation on the mirror copy by reading data from the file; or

undoing, by the secondary storage cluster, the write operation on the mirror copy by replacing the data stored as a result of prior execution of the write operation on mirror copy with old data read from the file.

Priority Claims (2)
IN 202141020578 · May 5, 2021 · national
IN 202141020579 · May 5, 2021 · national
Continuity (2)
Continuation 17510788 · Oct 26, 2021
Related Publication 20240160374A1 · May 16, 2024
References Cited (139)
US 5742792A · Yanai et al. · 1998 [cited by applicant]
US 6163856A · Dion et al. · 2000 [cited by applicant]
US 6389551B1 · Yount · 2002 [cited by applicant]
US 6415372B1 · Zakai et al. · 2002 [cited by applicant]
US 6732124B1 · Koseki et al. · 2004 [cited by applicant]
US 7039827B2 · Meyer et al. · 2006 [cited by applicant]
US 7475204B2 · Buah et al. · 2009 [cited by applicant]
US 7500014B1 · Jacobson et al. · 2009 [cited by applicant]
US 7631066B1 · Schatz et al. · 2009 [cited by applicant]
US 7640451B2 · Meyer et al. · 2009 [cited by applicant]
US 7890626B1 · Gadir · 2011 [cited by applicant]
US 8335761B1 · Natanzon · 2012 [cited by applicant]
US 8498967B1 · Chatterjee et al. · 2013 [cited by applicant]
US 8645623B1 · O'Shea et al. · 2014 [cited by applicant]
US 8856583B1 · Visser et al. · 2014 [cited by applicant]
US 8874960B1 · Khan et al. · 2014 [cited by applicant]
US 9189341B1 · Natanzon et al. · 2015 [cited by applicant]
US 9875042B1 · Natanzon et al. · 2018 [cited by applicant]
US 10412066B1 · Vemuri · 2019 [cited by applicant]
US 10489230B1 · Chen et al. · 2019 [cited by applicant]
US 10496320B2 · Eisler et al. · 2019 [cited by applicant]
US 10725691B1 · Kaushik et al. · 2020 [cited by applicant]
US 10761768B1 · Kaushik et al. · 2020 [cited by applicant]
US 11036423B2 · Kaushik et al. · 2021 [cited by applicant]
US 11089105B1 · Karumbunathan et al. · 2021 [cited by applicant]
US 11327857B2 · Bhargava et al. · 2022 [cited by applicant]
US 11360867B1 · Subramanian et al. · 2022 [cited by applicant]
US 11409622B1 · Kaushik et al. · 2022 [cited by applicant]
US 11481139B1 · Vijayan et al. · 2022 [cited by applicant]
US 11537314B1 · Subramanian et al. · 2022 [cited by applicant]
US 11593016B2 · Kaushik et al. · 2023 [cited by applicant]
US 11853589B2 · Narasingarayanapeta · 2023 [cited by applicant]
US 11893261B2 · Narasingarayanapeta · 2024 [cited by examiner]
US 11907562B2 · Narasingarayanapeta · 2024 [cited by applicant]
US 11928352B2 · Narasingarayanapeta · 2024 [cited by applicant]
US 12204786B2 · Narasingarayanapeta · 2025 [cited by applicant]
US 12321627B2 · Narasingarayanapeta · 2025 [cited by applicant]
US 20020132613A1 · Leung et al. · 2002 [cited by applicant]
US 20040153719A1 · Achiwa et al. · 2004 [cited by applicant]
US 20040267809A1 · East et al. · 2004 [cited by applicant]
US 20050229034A1 · Fujibayashi · 2005 [cited by applicant]
US 20050270855A1 · Earhart et al. · 2005 [cited by applicant]
US 20060095478A1 · Cherkauer et al. · 2006 [cited by applicant]
US 20060136354A1 · Bell et al. · 2006 [cited by applicant]
US 20060236048A1 · Deguchi et al. · 2006 [cited by applicant]
US 20070016754A1 · Testardi · 2007 [cited by applicant]
US 20070180307A1 · Zohar et al. · 2007 [cited by applicant]
US 20070234006A1 · Radulescu et al. · 2007 [cited by applicant]
US 20080201702A1 · Bunn · 2008 [cited by applicant]
US 20090043979A1 · Jarvis · 2009 [cited by applicant]
US 20090070528A1 · Bartfai et al. · 2009 [cited by applicant]
US 20090089609A1 · Baba · 2009 [cited by applicant]
US 20090307530A1 · Tarta · 2009 [cited by applicant]
US 20100064168A1 · Smoot et al. · 2010 [cited by applicant]
US 20100082962A1 · Srinivasan et al. · 2010 [cited by applicant]
US 20100161554A1 · Datuashvili et al. · 2010 [cited by applicant]
US 20110106855A1 · Resch et al. · 2011 [cited by applicant]
US 20110314148A1 · Petersen et al. · 2011 [cited by applicant]
US 20120151249A1 · Swan et al. · 2012 [cited by applicant]
US 20130159620A1 · Sakashita et al. · 2013 [cited by applicant]
US 20130254590A1 · Chercoles Sanchez et al. · 2013 [cited by applicant]
US 20140298136A1 · Resch et al. · 2014 [cited by applicant]
US 20150006949A1 · Bittles et al. · 2015 [cited by applicant]
US 20150058838A1 · Tsirkin · 2015 [cited by applicant]
US 20150169414A1 · Lalsangi et al. · 2015 [cited by applicant]
US 20160077917A1 · Battepati et al. · 2016 [cited by applicant]
US 20160110378A1 · Mu et al. · 2016 [cited by applicant]
US 20160366226A1 · Friedman et al. · 2016 [cited by applicant]
US 20170093983A1 · Everhart et al. · 2017 [cited by applicant]
US 20180246658A1 · Bretschneider et al. · 2018 [cited by applicant]
US 20180260125A1 · Botes et al. · 2018 [cited by applicant]
US 20180352032A1 · Liu et al. · 2018 [cited by applicant]
US 20190004908A1 · Gopinath et al. · 2019 [cited by applicant]
US 20190034286A1 · Brown et al. · 2019 [cited by applicant]
US 20190212924A1 · Ward et al. · 2019 [cited by applicant]
US 20190229978A1 · Rajvaidya et al. · 2019 [cited by applicant]
US 20190347352A1 · Gochkov et al. · 2019 [cited by applicant]
US 20190394266A1 · Fukuyama et al. · 2019 [cited by applicant]
US 20200027898A1 · Paul et al. · 2020 [cited by applicant]
US 20200034258A1 · Avraham et al. · 2020 [cited by applicant]
US 20200035627A1 · Iguchi et al. · 2020 [cited by applicant]
US 20200050495A1 · Voutilainen et al. · 2020 [cited by applicant]
US 20200050587A1 · Kaushik et al. · 2020 [cited by applicant]
US 20200081801A1 · Brown et al. · 2020 [cited by applicant]
US 20200125460A1 · Selvaraj et al. · 2020 [cited by applicant]
US 20200133520A1 · Patnaik et al. · 2020 [cited by applicant]
US 20200137157A1 · Joseph et al. · 2020 [cited by applicant]
US 20200250151A1 · Yin et al. · 2020 [cited by applicant]
US 20200250171A1 · Yin et al. · 2020 [cited by applicant]
US 20200273984A1 · Nakano et al. · 2020 [cited by applicant]
US 20200278984A1 · Kaushik et al. · 2020 [cited by applicant]
US 20200301787A1 · Cabral et al. · 2020 [cited by applicant]
US 20200319982A1 · Rusev et al. · 2020 [cited by applicant]
US 20210165573A1 · Demoor et al. · 2021 [cited by applicant]
US 20210303165A1 · Kaushik et al. · 2021 [cited by applicant]
US 20210374157A1 · Reddy et al. · 2021 [cited by applicant]
US 20220019350A1 · Karr · 2022 [cited by applicant]
US 20220121533A1 · Kumar et al. · 2022 [cited by applicant]
US 20220357855A1 · Narasingarayanapeta · 2022 [cited by applicant]
US 20220374321A1 · Kaushik et al. · 2022 [cited by applicant]
US 20230110776A1 · Subramanian et al. · 2023 [cited by applicant]
US 20230121272A1 · Subramanian et al. · 2023 [cited by applicant]
US 20230168834A1 · Narasingarayanapeta · 2023 [cited by applicant]
US 20240168671A1 · Narasingarayanapeta · 2024 [cited by applicant]
US 20250165177A1 · Thakur et al. · 2025 [cited by applicant]
Corrected Notice of Allowance mailed on Nov. 8, 2023 for U.S. Appl. No. 18/158,957, filed Jan. 24, 2023, 2 pages. [cited by applicant]
Non-Final Office Action mailed on Feb. 1, 2024 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 11 pages. [cited by applicant]
Non-Final Office Action mailed on Feb. 17, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 11 pages. [cited by applicant]
Notice of Allowance mailed Aug. 14, 2023 for U.S. Appl. No. 18/158,957, filed Jan. 24, 2023, 08 pages. [cited by applicant]
Notice of Allowance mailed Dec. 13, 2022 for U.S. Appl. No. 17/219,815, filed Mar. 31, 2021. [cited by applicant]
Notice of Allowance mailed Jun. 28, 2023 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 8 pages. [cited by applicant]
Notice of Allowance mailed Nov. 2, 2022 for U.S. Appl. No. 17/495,990, filed Oct. 7, 2021,8 pages. [cited by applicant]
Notice of Allowance mailed Nov. 18, 2022 for U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 12 pages. [cited by applicant]
Notice of Allowance mailed Oct. 31, 2022 for U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 9 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 8, 2024 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 02 pages. [cited by applicant]
Notice of Allowance mailed on Jan. 2, 2024 for U.S. Appl. No. 17/510,788, filed Oct. 26, 2021, 02 pages. [cited by applicant]
Notice of Allowance mailed on Jan. 19, 2024 for U.S. Appl. No. 17/861,768, filed Jul. 11, 2022, 03 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 7, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 08 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 26, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 3 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 14, 2023 for U.S. Appl. No. 17/505,962, filed Oct. 20, 2021, 8 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 20, 2023 for U.S. Appl. No. 17/510,788, filed Oct. 26, 2021, 7 pages. [cited by applicant]
Notice of Allowance mailed on Nov. 17, 2023 for U.S. Appl. No. 18/158,957, filed Jan. 24, 2023, 2 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 6, 2023 for U.S. Appl. No. 17/861,768, filed Jul. 11, 2022, 09 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 12, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 7 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 19, 2023 for U.S. Appl. No. 17/861,768, filed Jul. 11, 2022, 2 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 19, 2023 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 8 pages. [cited by applicant]
Notice of Allowance mailed on Oct. 25, 2023 for U.S. Appl. No. 17/510,795, filed Oct. 26, 2021, 2 pages. [cited by applicant]
Notice of Allowance mailed on Sep. 28, 2023 for U.S. Appl. No. 17/510,788, filed Oct. 26, 2021, 07 pages. [cited by applicant]
Pan L, “Paxos at Its Heart is Very Simple,” Distributed System, 2018, Retrieved From : URL: https://blog.the-pans.com/paxos-explained/, pp. 1-12. [cited by applicant]
U.S. Non-Final Office action dated Dec. 21, 2021 in U.S. Appl. No. 17/238,829, filed Apr. 23, 2021, 20 pages. [cited by applicant]
U.S. Notice of Allowance dated Apr. 6, 2022 in U.S. Appl. No. 17/238,829, filed Apr. 23, 2021, 9 pages. [cited by applicant]
U.S. Notice of Allowance mailed Jun. 24, 2022 in U.S. Appl. No. 17/219,816, filed Mar. 31, 2021, 8 pages. [cited by applicant]
U.S. Notice of Allowance mailed May 6, 2022 in U.S. Appl. No. 17/219,746, filed Mar. 31, 2021, 18 pages. [cited by applicant]
U.S. Notice of Allowance mailed Oct. 26, 2022 in U.S. Appl. No. 17/219,812, filed Mar. 31, 2021, 9 pages. [cited by applicant]
Final Office Action mailed May 20, 2024 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 13 pages. [cited by applicant]
Non-Final Office Action mailed on Aug. 28, 2024 for U.S. Appl. No. 18/424,244, filed Jan. 26, 2024, 10 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 5, 2024 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 08 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 16, 2024 for U.S. Appl. No. 18/158,947, filed Jan. 24, 2023, 03 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 3, 2025 for U.S. Appl. No. 18/424,244, filed Jan. 26, 2024, 07 pages. [cited by applicant]