IP Library Granted Patent US 11,249,834
Granted Patent B2
US 11,249,834 · App. 16/413,050 · Granted Feb 15, 2022

Storage system with coordinated recovery across multiple input-output journals of different types

Inventors: Xiangping Chen (Sherborn, MA); Svetlana Kronrod (Concord, MA)
Assignee: EMC IP Holding Company LLC
G06F11/0793G06F11/0745G06F11/0751G06F16/2343G06F16/2379
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,249,834
App. No.
16/413,050
Granted
Feb 15, 2022
Kind
B2
Abstract

An apparatus includes at least one processing device comprising a processor coupled to a memory, with the processing device being configured to maintain at least first and second journals for respective first and second different types of input-output requests, to move one or more entries between the first journal and the second journal under one or more specified conditions, to perform a clean-up operation for at least one of the first and second journals in conjunction with the moving of the one or more entries, and responsive to a failure occurring during the clean-up operation, to execute a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals. The processing device illustratively comprises a storage controller of a storage system. The storage system may be, for example, a source storage system configured to carry out a synchronous replication process with a target storage system.

Claims (76)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

said at least one processing device being configured:

to maintain at least first and second journals for respective first and second different types of input-output requests;

to move one or more entries between the first journal and the second journal under one or more specified conditions;

to perform a clean-up operation for at least one of the first and second journals in conjunction with the moving of the one or more entries; and

responsive to a failure occurring during the clean-up operation, to execute a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals.

2. The apparatus of claim 1 wherein said at least one processing device comprises a storage controller of a storage system.

3. The apparatus of claim 1 wherein the first journal comprises an atomic transaction write journal and the second journal comprises a synchronous replication write journal.

4. The apparatus of claim 1 wherein the first and second journals have different entry granularities.

5. The apparatus of claim 4 wherein the first journal has a multi-page entry granularity and the second journal has a single-page entry granularity.

6. The apparatus of claim 1 wherein entries of the first journal correspond to respective multi-page requests and entries of the second journal correspond to respective single-page requests.

7. The apparatus of claim 1 wherein maintaining at least first and second journals for respective first and second different types of input-output requests comprises:

receiving input-output requests from at least one host device; and

for each of the received input-output requests:

responsive to the input-output request being a multi-page request, creating a corresponding entry in the first journal;

responsive to the input-output request being a single-page request, creating a corresponding entry in the second journal; and

wherein the first journal is utilized to ensure that the multi-page request is completed for all of its multiple pages or for none of the multiple pages.

8. The apparatus of claim 1 wherein moving one or more entries between the first journal and the second journal under one or more specified conditions comprises swapping at least one entry from the first journal with at least one entry from the second journal.

9. The apparatus of claim 1 wherein executing a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals comprises:

applying logical address range locks for entries of the first journal;

making attempts to apply logical address range locks for entries of the second journal; and

for each of one or more of the attempts that are unsuccessful due to logical address range lock contention with the first journal:

determining a lock contention range for a corresponding entry of the second journal by repeating the attempt one or more times utilizing a reduced locking granularity; and

entering the lock contention range in a contention resolution table;

wherein recovery operations are performed for the first and second journals based at least in part on entries of the contention resolution table.

10. The apparatus of claim 9 wherein executing the contention resolution algorithm further comprises:

performing recovery operations for a particular subset of the entries of the first journal;

for each of one or more remaining entries of the first journal, determining if that entry of the first journal corresponds to one of the lock contention ranges of the contention resolution table;

responsive to the entry corresponding to one of the lock contention ranges of the contention resolution table, skipping an unlock operation for a logical address range lock for that entry;

responsive to the entry not corresponding to any of the lock contention ranges of the contention resolution table, performing an unlock operation for a logical address range lock for that entry; and

performing recovery operations for entries of the second journal.

11. The apparatus of claim 10 wherein the remaining entries comprise entries of the first journal that do not have corresponding head entries in the first journal.

12. The apparatus of claim 10 wherein executing the contention resolution algorithm further comprises:

responsive to completion of all recovery operations for entries of the second journal, performing unlock operations for any remaining logical address range locks for the second journal;

completing any remaining recovery operations for entries of the first journal; and

clearing the contention resolution table.

13. The apparatus of claim 2 wherein the storage system comprises a plurality of storage nodes each comprising a set of processing modules configured to communicate with corresponding sets of processing modules on other ones of the storage nodes, the sets of processing modules of the storage nodes of the storage system collectively comprising at least a portion of the storage controller of the storage system.

14. The apparatus of claim 13 wherein local copies of the first and second journals are stored on respective ones of the storage nodes and wherein a given such local copy of the first or second journal for one of the storage nodes also represents a remote copy of that journal for one or more other ones of the storage nodes.

15. A method comprising:

maintaining at least first and second journals for respective first and second different types of input-output requests;

moving one or more entries between the first journal and the second journal under one or more specified conditions;

performing a clean-up operation for at least one of the first and second journals in conjunction with the moving of the one or more entries; and

responsive to a failure occurring during the clean-up operation, executing a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals;

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein executing a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals comprises:

applying logical address range locks for entries of the first journal;

making attempts to apply logical address range locks for entries of the second journal; and

for each of one or more of the attempts that are unsuccessful due to logical address range lock contention with the first journal:

determining a lock contention range for a corresponding entry of the second journal by repeating the attempt one or more times utilizing a reduced locking granularity; and

entering the lock contention range in a contention resolution table;

wherein recovery operations are performed for the first and second journals based at least in part on entries of the contention resolution table.

17. The method of claim 16 wherein executing the contention resolution algorithm further comprises:

performing recovery operations for a particular subset of the entries of the first journal;

for each of one or more remaining entries of the first journal, determining if that entry of the first journal corresponds to one of the lock contention ranges of the contention resolution table;

responsive to the entry corresponding to one of the lock contention ranges of the contention resolution table, skipping an unlock operation for a logical address range lock for that entry;

responsive to the entry not corresponding to any of the lock contention ranges of the contention resolution table, performing an unlock operation for a logical address range lock for that entry; and

performing recovery operations for entries of the second journal.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

to maintain at least first and second journals for respective first and second different types of input-output requests;

to move one or more entries between the first journal and the second journal under one or more specified conditions;

to perform a clean-up operation for at least one of the first and second journals in conjunction with the moving of the one or more entries; and

responsive to a failure occurring during the clean-up operation, to execute a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals.

19. The computer program product of claim 18 wherein executing a contention resolution algorithm to resolve logical address range lock contentions between different entries of the first and second journals comprises:

applying logical address range locks for entries of the first journal;

making attempts to apply logical address range locks for entries of the second journal; and

for each of one or more of the attempts that are unsuccessful due to logical address range lock contention with the first journal:

determining a lock contention range for a corresponding entry of the second journal by repeating the attempt one or more times utilizing a reduced locking granularity; and

entering the lock contention range in a contention resolution table;

wherein recovery operations are performed for the first and second journals based at least in part on entries of the contention resolution table.

20. The computer program product of claim 19 wherein executing the contention resolution algorithm further comprises:

performing recovery operations for a particular subset of the entries of the first journal;

for each of one or more remaining entries of the first journal, determining if that entry of the first journal corresponds to one of the lock contention ranges of the contention resolution table;

responsive to the entry corresponding to one of the lock contention ranges of the contention resolution table, skipping an unlock operation for a logical address range lock for that entry;

responsive to the entry not corresponding to any of the lock contention ranges of the contention resolution table, performing an unlock operation for a logical address range lock for that entry; and

performing recovery operations for entries of the second journal.

Assignments (9)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2019
From: CHEN, XIANGPING; KRONROD, SVETLANA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049186/0643 →