IP Library Granted Patent US 9,720,752
Granted Patent B2
US 9,720,752 · App. 14/518,422 · Granted Aug 1, 2017

Techniques for performing resynchronization on a clustered system

Inventors: Paul Yuedong Mu (Sunnyvale, CA); Paul Ngan (Sunnyvale, CA); Manoj Sundararajan (Sunnyvale, CA)
Assignee: NETAPP, INC.
G06F11/006G06F2201/80
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 9,720,752
App. No.
14/518,422
Granted
Aug 1, 2017
Kind
B2
Abstract

Various embodiments are generally directed an apparatus and method for receiving information to write on a clustered system comprising at least a first cluster and a second cluster, determining that a failure event has occurred on the clustered system creating unsynchronized information, the unsynchronized information comprising at least one of inflight information and dirty region information, and performing a resynchronization operation to synchronize the unsynchronized information on the first cluster and the second cluster based on log information in at least one of an inflight tracker log for the inflight information and a dirty region log for the dirty region information.

Claims (68)

1. A method, comprising:

identifying, by a processing component, information, of a write request, to write to a first cluster and a second cluster, wherein the write request targets the first cluster and is replicated as a replicated write request to the second cluster;

determining that a failure event has occurred resulting in unsynchronized information between the first cluster and the second cluster, the unsynchronized information comprising dirty region information; and

performing a resynchronization operation to synchronize the unsynchronized information between the first cluster and the second cluster based on log information in a dirty region log for the dirty region information, wherein the dirty region log is used by the resynchronization operation to synchronize replicated data, successfully written to the second cluster by the replicated write request, from the second cluster to the first cluster where the write request was not successfully completed at the first cluster.

2. The method of claim 1 , the unsynchronized information comprising information received before the failure event, and the dirty region information further comprising information written to the second cluster, but not the first cluster.

3. The method of claim 1 , comprising:

writing inflight tracker log information into an inflight tracker log, the inflight tracker log information used to track inflight information and to indicate a region of a data structure intended to store the inflight information, wherein the inflight information comprises information not fully committed on both the first cluster and the second cluster; and

writing dirty region log information into the dirty region log, the dirty region log information used to indicate a dirty region of a dirty data structure having dirty region information.

4. The method of claim 1 , the performing the resynchronization operation further comprising:

reading inflight information from a portion of a region of a data structure based on an inflight tracker log; and

writing the inflight information to a corresponding portion of a corresponding region of a different data structure,

wherein the inflight information is read from the first cluster and written to the second cluster.

5. The method of claim 1 , the performing the resynchronization operation further comprising:

reading the dirty region information from a dirty portion of a dirty region of a dirty data structure having the dirty region information based on dirty region log information; and

writing the dirty region information to a corresponding portion of a region of a different data structure.

6. The method of claim 5 ,

wherein the dirty portion of the dirty region having the dirty region information is on the second cluster, the corresponding portion is on the first cluster, and the dirty region information is read from the second cluster and written to the first cluster.

7. The method of claim 5 , the performing the resynchronization operation further comprising:

setting a lock on the dirty portion of the dirty region having the dirty region information prior to reading the dirty region information, and

releasing the lock on the dirty portion of the dirty region upon completion of the reading the dirty region information.

8. The method of claim 1 , the performing the resynchronization operation further comprising:

receiving new information from a client device;

determining that the new information is to be written to a region of a data structure where resynchronization of information is complete; and

performing synchronous write operations to write the new information on the first cluster and the second cluster.

9. The method of claim 1 , the performing the resynchronization operation further comprising:

receiving new information from a client device;

determining that the new information is to be written to a region of a data structure where resynchronization of information is currently be performed;

waiting until the resynchronization is complete on the region; and

performing synchronous write operations to write the new information on the first cluster and the second cluster.

10. The method of claim 1 , the performing the resynchronization operation further comprising:

receiving new information from a client device;

determining that the new information is to be written to a region of a data structure where resynchronization has yet to be completed; and

writing the new information to the region.

11. A computer-readable storage medium comprising a plurality of instructions that, when executed by processing circuitry, enable the processing circuitry to:

identify information, of a write request, to write to a first cluster and a second cluster;

create an entry within an inflight tracker log for the write request, wherein the entry indicates that data of the write request has not completed at both the first cluster and the second cluster, and wherein the entry is cleared once the data is written to both the first cluster and the second cluster;

determine that a failure event has occurred resulting in unsynchronized information between the first cluster and the second cluster, the unsynchronized information comprising inflight information; and

perform a resynchronization operation to synchronize the unsynchronized information between the first cluster and the second cluster based on log information in the inflight tracker log for the inflight information.

12. The computer-readable storage medium of claim 11 , comprising the plurality of instructions that, when executed by the processing circuitry, enable the processing circuitry to:

write inflight tracker log information into the inflight tracker log, the inflight tracker log information used to track the inflight information and to indicate a region of a data structure intended to store the inflight information; and

write dirty region log information into a dirty region log, the dirty region log information used to indicate a dirty region of a dirty data structure having dirty region information.

13. The computer-readable storage medium of claim 11 , the performing the resynchronization operation further comprising instructions to cause the processing circuitry to:

read the inflight information from a portion of a region of a data structure based on the inflight tracker log; and

write the inflight information to a corresponding portion of a corresponding region of a different data structure,

wherein the inflight information is read from the second cluster and written to the first cluster.

14. The computer-readable storage medium of claim 11 , the performing the resynchronization operation further comprising instructions to cause the processing circuitry to:

read dirty region information from a dirty portion of a dirty region of a dirty data structure having dirty region information based on dirty region log information; and

write the dirty region information to a corresponding portion of a region of a different data structure.

15. The computer-readable storage medium of claim 14 , the performing the resynchronization operation further comprising instructions to cause the processing circuitry to:

set a lock on the dirty portion of the region dirty having the dirty region information prior to reading the dirty region information, and

release the lock on the dirty portion of the dirty region upon completion of the reading the dirty region information.

16. A computing device, comprising:

a memory containing computer-readable storage medium having stored thereon instructions for performing a method; and

a processor unit coupled with the memory, the processor unit configured to execute the instructions to cause the processor unit to:

identify information, of a write request, to write to a first cluster and a second cluster, wherein the write request targets the first cluster and is replicated as a replicated write request to the second cluster;

determine that a failure event has occurred resulting in unsynchronized information between the first cluster and the second cluster, the unsynchronized information comprising dirty region information received by a clustered system; and

perform a resynchronization operation to synchronize the unsynchronized information between the first cluster and the second cluster based on log information in a dirty region log for the dirty region information, wherein the dirty region log is used by the resynchronization operation to synchronize replicated data, successfully written to the second cluster by the replicated write request, from the second cluster to the first cluster where the write request was not successfully completed at the first cluster.

17. The computing device of claim 16 , the instructions to cause the processing unit to:

write inflight tracker log information into an inflight tracker log, the inflight tracker log information used to track inflight information and to indicate a region of a data structure intended to store the inflight information; and

write dirty region log information into the dirty region log, the dirty region log information used to indicate a dirty region of a dirty data structure having dirty region information.

18. The computing device of claim 16 , the instructions to cause the processing unit to:

read inflight information from a portion of a region of a data structure based on an inflight tracker log; and

write the inflight information to a corresponding portion of a corresponding region of a different data structure,

wherein the inflight information is read from the second cluster and written to the first cluster.

19. The computing device of claim 16 , the instructions to cause the processing unit to:

read the dirty region information from a dirty portion of a dirty region of a dirty data structure having the dirty region information based on the dirty region log information; and

write the dirty region information to a corresponding portion of a region of a different data structure.

20. The computing device of claim 16 , wherein the resynchronization operation starts at a starting endpoint of a starting block having a highest block number and ends at an ending point of an ending block having a lowest block number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2014
From: MU, PAUL YUEDONG; SUNDARARAJAN, MANOJ; NGAN, PAUL
To: NETAPP INC
Reel/Frame 033983/0249 →
Continuity (1)
Related Publication 20160110378A1 · Apr 21, 2016