IP Library Granted Patent US 10,698,774
Granted Patent B2
US 10,698,774 · App. 16/175,979 · Granted Jun 30, 2020

Method to resolve conflicts during recovery in a storage system

Inventors: Ying Hu (Northborough, MA); Xiangping Chen (Sherborn, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F3/065G06F3/067G06F3/0619
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 10,698,774
App. No.
16/175,979
Granted
Jun 30, 2020
Kind
B2
Abstract

An aspect of resolving conflicts during recovery operations includes separating journal entries for first and second types of recovery operations into each of a first and second array. For each entry in the first array, an aspect includes taking a range lock of a designated number of the addresses and creating an entry in a table. For each entry in the second array, an aspect includes upon determining a corresponding sub-LUN has been locked for an entry in the first array, incrementing a count in the table. Upon determining the corresponding sub-LUN is not locked for the entry, an aspect includes taking the address lock for the entry in the second array. An aspect further includes opening gates for a corresponding address, performing a first recovery operation corresponding to the first type of recovery operation, and performing a second recovery operation corresponding to the second type of recovery operation.

Claims (56)

1. A method for resolving conflicts during recovery of a storage system, comprising:

separating journal entries for a first and second type of recovery operation into each of a corresponding first array and a second array, the separating based upon corresponding journal type and sub-logical unit number (LUN) addresses;

for each entry in the first array, taking a range lock of a designated number of the sub-LUN addresses and creating an entry in a sub-LUN reference count hash table;

for each entry in the second array:

upon determining a corresponding sub-LUN has been locked for an entry in the first array, incrementing a reference count in the sub-LUN reference count hash table; and

upon determining the corresponding sub-LUN is not locked for the entry in the first array, taking the address lock for the entry in the second array;

opening gates for a corresponding address;

performing a first recovery operation corresponding to the first type of recovery operation; and

performing a second recovery operation corresponding to the second type of recovery operation.

2. The method of claim 1 , wherein the first type of recovery operation is a snap tree merge recovery operation and the second type of recovery operation is a synchronous (sync) replication recovery operation;

wherein each entry in the first array contains all addresses in the same sub-LUN;

wherein each entry in the second array contains a subset of the addresses for a corresponding sub-LUN.

3. The method of claim 2 , wherein the first recovery operation is performed prior to performing the second recovery operation.

4. The method of claim 1 , further comprising:

for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is in the sub-LUN hash reference count table, decrementing a counter for the table;

wherein when the counter for the table reaches zero, unlocking the designated number of the sub-LUN addresses.

5. The method of claim 1 , for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is not in the sub-LUN hash reference count table, unlocking a number of the sub-LUN addresses previously locked by the table.

6. The method of claim 1 , wherein the designated number of sub-LUN addresses is 256.

7. A system for resolving conflicts during recovery of a storage system, the system comprising:

a memory comprising computer-executable instructions; and

a processor operable by a storage system, the processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:

separating journal entries for a first and second type of recovery operation into each of a corresponding first array and a second array, the separating based upon corresponding journal type and sub-logical unit number (LUN) addresses;

for each entry in the first array, taking a range lock of a designated number of the sub-LUN addresses and creating an entry in a sub-LUN reference count hash table;

for each entry in the second array:

upon determining a corresponding sub-LUN has been locked for an entry in the first array, incrementing a reference count in the sub-LUN reference count hash table; and

upon determining the corresponding sub-LUN is not locked for the entry in the first array, taking the address lock for the entry in the second array;

opening gates for a corresponding address;

performing a first recovery operation corresponding to the first type of recovery operation; and

performing a second recovery operation corresponding to the second type of recovery operation.

8. The system of claim 7 , wherein the first type of recovery operation is a snap tree merge recovery operation and the second type of recovery operation is a synchronous (sync) replication recovery operation;

wherein each entry in the first array contains all addresses in the same sub-LUN;

wherein each entry in the second array contains a subset of the addresses for a corresponding sub-LUN.

9. The system of claim 8 , wherein the first recovery operation is performed prior to performing the second recovery operation.

10. The system of claim 7 , wherein the operations further comprise:

for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is in the sub-LUN hash reference count table, decrementing a counter for the table;

wherein when the counter for the table reaches zero, unlocking the designated number of the sub-LUN addresses.

11. The system of claim 7 , for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is not in the sub-LUN hash reference count table, unlocking a number of the sub-LUN addresses previously locked by the table.

12. The system of claim 7 , wherein the designated number of sub-LUN addresses is 256.

13. A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer, causes the computer to perform operations comprising:

separating journal entries for a first and second type of recovery operation into each of a corresponding first array and a second array, the separating based upon corresponding journal type and sub-logical unit number (LUN) addresses;

for each entry in the first array, taking a range lock of a designated number of the sub-LUN addresses and creating an entry in a sub-LUN reference count hash table;

for each entry in the second array:

upon determining a corresponding sub-LUN has been locked for an entry in the first array, incrementing a reference count in the sub-LUN reference count hash table; and

upon determining the corresponding sub-LUN is not locked for the entry in the first array, taking the address lock for the entry in the second array;

opening gates for a corresponding address;

performing a first recovery operation corresponding to the first type of recovery operation; and

performing a second recovery operation corresponding to the second type of recovery operation.

14. The computer program product of claim 13 , wherein the first type of recovery operation is a snap tree merge recovery operation and the second type of recovery operation is a synchronous (sync) replication recovery operation;

wherein each entry in the first array contains all addresses in the same sub-LUN;

wherein each entry in the second array contains a subset of the addresses for a corresponding sub-LUN.

15. The computer program product of claim 14 , wherein the first recovery operation is performed prior to performing the second recovery operation.

16. The computer program product of claim 13 , wherein the operations further comprise:

for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is in the sub-LUN hash reference count table, decrementing a counter for the table;

wherein when the counter for the table reaches zero, unlocking the designated number of the sub-LUN addresses.

17. The computer program product of claim 13 , for each entry, and subsequent to performing the first and second recovery operations, upon determining the entry is not in the sub-LUN hash reference count table, unlocking a number of the sub-LUN addresses previously locked by the table.

18. The computer program product of claim 13 , wherein the designated number of sub-LUN addresses is 256.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STREET ADDRESS OF THE ASSIGNEE TO READ 176 SOUTH STREET PREVIOUSLY RECORDED AT REEL: 047410 FRAME: 0173. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 13, 2019
From: HU, YING; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051943/0813 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2018
From: HU, YING; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047410/0173 →
Continuity (1)
Related Publication 20200133798A1 · Apr 30, 2020