IP Library Granted Patent US 11,928,352
Granted Patent B2
US 11,928,352 · App. 17/510,795 · Granted Mar 12, 2024

Maintaining the benefit of parallel splitting of ops between primary and secondary storage clusters in synchronous replication while adding support for op logging and early engagement of op logging

Inventors: Krishna Murthy Chandraiah Setty Narasingarayanapeta (Bangalore, IN); Preetham Shenoy (Bangalore, IN); Divya Kathiresan (Bangalore, IN); Rakesh Bhargava (Karnataka, IN)
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 11,928,352
App. No.
17/510,795
Filed
Oct 26, 2021
Granted
Mar 12, 2024
Kind
B2
Art Unit
2139
USPC
711/154
Abstract

Systems and methods are described for performing persistent inflight tracking of operations (Ops) within a cross-site storage solution. According to one embodiment, a method comprises maintaining state information regarding a data synchronous replication status for a first storage object of a primary storage cluster and a second storage object of a secondary storage cluster. The state information facilitates automatic triggering of resynchronization for data replication between the first storage object and the second storage object. The method includes performing persistent inflight tracking of I/O operations with a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster, establishing and comparing Op ranges for the first and second Op logs, and determining a relation between the Op range of the first Op log and the Op range of the second Op log to prevent divergence of Ops in the first and second Op logs and to support parallel split of the Ops.

Claims (67)

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

maintaining state information regarding a data replication status for a first storage object of a primary storage cluster with the first storage object being replicated to a second storage object of a secondary storage cluster, wherein the state information facilitates automatic triggering of resynchronization for data replication between the first storage object and the second storage object;

performing persistent inflight tracking of operations (Ops) having a parallel simultaneous dispatching of Ops to a file system of the primary storage cluster and a file system of the secondary storage cluster with a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster;

establishing Op ranges for the first and second Op logs;

comparing the Op range of the first Op log of the primary storage cluster and the Op range of the second Op log of the secondary storage cluster; and

determining a relation between the Op range of the first Op log and the Op range of the second Op log including one of a same range relation, a subset relation, an overlap relation, and a disjoint relation to prevent divergence of Ops in the first and second Op logs and to support the parallel split of the Ops.

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

comparing entries from a first entry to a last entry for the Op ranges of the first and second Op logs when the relation is determined to be the Op ranges are the same for the first and second Op logs; and

replaying any missing entries from the first and second Op logs.

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

using a larger of ranges of the Op ranges of the first and second Op logs to compare entries when the relation is determined as one Op range is a subset of the other Op range.

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

replicating at least one entry from the first Op log to the second Op log when the at least one entry is present on the first Op log but not present on second Op log.

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

removing at least one entry from the second Op log when the at least one entry is not present on the first Op log.

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

discarding at least one entry in a lower range up to an intersection point between the first and second Op log when the Op range of the first Op log intersects or overlaps with the Op range of the second Op log; and

using at least one entry in a higher range for persistent inflight tracking of I/O operations.

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

discarding at least one entry in a lower range when the Op ranges of the first and second Op logs are disjoint; and

using entries in a higher range having higher sequence numbers for persistent inflight tracking of I/O operations.

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

determining the first Op range for the first Op log from an Active Op Log file header of the first Op log;

determining the second Op range for the second Op log from an Active Op Log file header of the second Op log; and

determining an Op range for persistent inflight tracking based on the first Op range and the second Op range.

9. 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:

a processing resource; and

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

maintain state information regarding a data replication status for a first storage object of the primary storage cluster with the first storage object being replicated to a second storage object of the secondary storage cluster, wherein the state information facilitates automatic triggering of resynchronization for data replication between the first storage object and the second storage object;

perform persistent inflight tracking of operations (Ops) having a parallel split to the primary and secondary storage clusters with a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster;

establish Op ranges for the first and second Op logs;

compare the Op range of the first Op log of the primary storage cluster and the Op range of the second Op log of the secondary storage cluster;

determine a relation between the Op range of the first Op log and the Op range of the second Op log to prevent divergence of Ops in the first and second Op logs and to support the parallel split of the Ops; and

use a larger of ranges of the Op ranges of the first and second Op logs to compare entries when the relation is determined as one Op range is a subset of the other Op range.

10. The multi-site distributed storage system of claim 9 , wherein the processing resource is configured to execute instructions to:

compare entries from a first entry to a last entry for the Op ranges of the first and second Op logs when the relation is determined to be the Op ranges are the same for the first and second Op logs; and

replay any missing entries from the first and second Op logs.

11. The multi-site distributed storage system of claim 9 , wherein the processing resource is configured to execute instructions to:

replicate at least one entry from the first Op log to the second Op log when the at least one entry is present on the first Op log but not present on second Op log.

12. The multi-site distributed storage system of claim 9 , wherein the processing resource is configured to execute instructions to:

remove at least one entry from the second Op log when the at least one entry is not present on the first Op log.

13. The multi-site distributed storage system of claim 9 , wherein the processing resource is configured to execute instructions to:

discard at least one entry in a lower range up to an intersection point between the first and second Op log when the Op range of the first Op log intersects or overlaps with the Op range of the second Op log; and

use at least one entry in a higher range for persistent inflight tracking of I/O operations.

14. The multi-site distributed storage system of claim 9 , wherein the processing resource is configured to execute instructions to:

discard at least one entry in a lower range when the Op ranges of the first and second Op logs are disjoint; and

use entries in a higher range having higher sequence numbers for persistent inflight tracking of I/O operations.

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

maintain state information regarding a data replication status for a first storage object of a primary storage cluster with the first storage object being replicated to a second storage object of a secondary storage cluster, wherein the state information facilitates automatic triggering of resynchronization for data replication between the first storage object and the second storage object;

perform persistent inflight tracking of operations (Ops) having a parallel split to the primary and secondary storage clusters with a first Op log of the primary storage cluster and a second Op log of the secondary storage cluster;

establish Op ranges for the first and second Op logs;

compare the Op range of the first Op log of the primary storage cluster and the Op range of the second Op log of the secondary storage cluster;

determine a relation between the Op range of the first Op log and the Op range of the second Op log to prevent divergence of Ops in the first and second Op logs and to support the parallel split of the Ops; and

use a larger of ranges of the Op ranges of the first and second Op logs to compare entries when the relation is determined as one Op range is a subset of the other Op range.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed by the processing resource cause the processing resource to:

compare entries from a first entry to a last entry for the Op ranges of the first and second Op logs when the relation is determined to be the Op ranges are the same for the first and second Op logs; and

replay any missing entries from the first and second Op logs.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed by the processing resource cause the processing resource to:

replicate at least one entry from the first Op log to the second Op log when the at least one entry is present on the first Op log but not present on second Op log.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed by the processing resource cause the processing resource to:

remove at least one entry from the second Op log when the at least one entry is not present on the first Op log.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed by the processing resource cause the processing resource to:

discard at least one entry in a lower range up to an intersection point between the first and second Op log when the Op range of the first Op log intersects or overlaps with the Op range of the second Op log; and

use at least one entry in a higher range for persistent inflight tracking of I/O operations.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions when executed by the processing resource cause the processing resource to:

discard at least one entry in a lower range when the Op ranges of the first and second Op logs are disjoint; and

use entries in a higher range having higher sequence numbers for persistent inflight tracking of I/O operations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2021
From: NARASINGARAYANAPETA, KRISHNA MURTHY CHANDRAIAH SETTY; SHENOY, PREETHAM; KATHIRESAN, DIVYA; BHARGAVA, RAKESH
To: NETAPP, INC.
Reel/Frame 057916/0180 →
Priority Claims (2)
IN 202141020578 · May 5, 2021 · national
IN 202141020579 · May 5, 2021 · national
Continuity (1)
Related Publication 20220357855A1 · Nov 10, 2022
Cited By (3)
US 12,204,786 US 12,321,627 US 12,436,707