METHOD TO RESOLVE CONFLICTS DURING RECOVERY IN A STORAGE SYSTEM
First Claim
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.
4 Assignments
0 Petitions
Accused Products
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.
-
Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
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. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
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. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification