IP Library Granted Patent US 11,567,876
Granted Patent B2
US 11,567,876 · App. 17/084,835 · Granted Jan 31, 2023

Resolving cache slot locking conflicts for remote replication

Inventors: Bhaskar Bora (Shrewsbury, MA); Benjamin Yoder (Chandler, AZ)
Assignee: EMC IP Holding Company LLC
G06F12/0871G06F12/0238G06F12/0813G06F12/0822
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,567,876
App. No.
17/084,835
Granted
Jan 31, 2023
Kind
B2
Abstract

Cache slots on a storage system may be shared between entities processing write operations for logical storage unit (LSU) tracks and entities performing remote replication for write operations for the LSU tracks. If a new write operation is received on a first storage system (S1) for a track of an LSU (R1) when the cache slot mapped to the R1 track is locked by a process currently transmitting data of the cache slot to a second storage system (S2), a new cache slot may be allocated to the R1 track, the data of the original cache slot copied to the new cache slot, and the new write operation for the R1 track initiated on S1 using the new cache slot; while the data of the original cache slot is independently, and perhaps concurrently, transmitted to S2 to be replicated in R2, the LSU on S2 that is paired with R1.

Claims (83)

1. For a data storage system including a cache including a plurality of cache slots, a method comprising:

in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determining that the first portion is mapped to a first cache slot of the plurality of cache slots;

determining that the first cache slot is locked by a remote replication process executing on the storage system;

responsive to determining that the first cache slot is locked by the remote replication process executing on the storage system, issuing a request to release the first cache slot that is locked; and

responsive to receiving the request to release the first cache slot that is locked, performing processing including:

allocating a second cache slot to the first portion;

copying second data from the first cache slot to the second cache slot; and

re-mapping the first portion from the first cache slot to the second cache slot.

2. The method of claim 1 , further comprising:

performing the write operation, including staging the first data in the second cache slot.

3. The method of claim 2 , further comprising:

after staging the first data in the second cache slot, unlocking the second cache slot.

4. The method of claim 1 , further comprising:

transmitting the second data from the first cache slot to a remote storage system.

5. The method of claim 1 , wherein the remote replication process executes asynchronous replication.

6. The method of claim 1 , wherein a first data structure has a plurality of entries, each entry representing a portion of the logical storage unit, including a first entry representing the first portion, and wherein re-mapping the first portion includes:

modifying the first entry from pointing to the first cache slot to pointing to the second cache slot.

7. For a data storage system including a cache including a plurality of cache slots, a method comprising:

in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determining that the first portion is mapped to a first cache slot of the plurality of cache slots;

determining that the first cache slot is locked by a remote replication process executing on the storage system;

allocating a second cache slot to the first portion;

copying second data from the first cache slot to the second cache slot; and

re-mapping the first portion from the first cache slot to the second cache slot, and wherein:

the remote replication process maintains a plurality of cycles, each cycle corresponding to a respective period of time and including a queue of cache slots,

a first cycle of the plurality of replication cycles corresponding to a first period of time is in a transfer phase during which data stored in cache slots in the queue of the cache slots of the first cycle are replicated from the storage system to a remote storage system,

a second cycle of the plurality of replication cycles corresponding to a second period of time, after the first period, wherein during the second cycle the write request is received and the second cycle is in a capture phase during which a queue of cache slots of the second cycle are being populated with cache slots mapped to logical storage unit portions for which write operations were initiated during the second period, and

wherein the first cache slot is in the first cycle and the second cache slot is in the second cycle.

8. A data storage system comprising:

a cache including a plurality of cache slots; and

executable logic that implements a method comprising:

in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determining that the first portion is mapped to a first cache slot of the plurality of cache slots;

determining that the first cache slot is locked by a remote replication process executing on the storage system;

responsive to determining that the first cache slot is locked by the remote replication process executing on the storage system, issuing a request to release the first cache slot that is locked; and

responsive to receiving the request to release the first cache slot that is locked, performing processing including:

allocating a second cache slot to the first portion;

copying second data from the first cache slot to the second cache slot; and

re-mapping the first portion from the first cache slot to the second cache slot.

9. The data storage system of claim 8 , wherein the method further comprises:

performing the write operation, including staging the first data in the second cache slot.

10. The data storage system of claim 9 , wherein the method further comprises:

after staging the first data in the second cache slot, unlocking the second cache slot.

11. The data storage system of claim 8 , wherein the method further comprises:

transmitting the second data from the first cache slot to a remote storage system.

12. The data storage system of claim 8 , wherein the remote replication process executes asynchronous replication.

13. The data storage system of claim 8 , wherein a first data structure has a plurality of entries, each entry representing a portion of the logical storage unit, including a first entry representing the first portion, and wherein re-mapping the first portion includes:

modifying the first entry from pointing to the first cache slot to pointing to the second cache slot.

14. A data storage system comprising:

a cache including a plurality of cache slots; and

executable logic that implements a method comprising:

in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determining that the first portion is mapped to a first cache slot of the plurality of cache slots;

determining that the first cache slot is locked by a remote replication process executing on the storage system;

allocating a second cache slot to the first portion;

copying second data from the first cache slot to the second cache slot; and

re-mapping the first portion from the first cache slot to the second cache slot, and wherein:

the remote replication process maintains a plurality of cycles, each cycle corresponding to a respective period of time and including a queue of cache slots,

a first cycle of the plurality of replication cycles corresponding to a first period of time is in a transfer phase during which data stored in cache slots in the queue of the cache slots of the first cycle are replicated from the storage system to a remote storage system,

a second cycle of the plurality of replication cycles corresponding to a second period of time, after the first period, wherein during the second cycle the write request is received and the second cycle is in a capture phase during which a queue of cache slots of the second cycle are being populated with cache slots mapped to logical storage unit portions for which write operations were initiated during the second period, and

wherein the first cache slot is in the first cycle and the second cache slot is in the second cycle.

15. For a data storage system including a cache including a plurality of cache slots, one or more non-transitory computer-readable media having software stored thereon, the software comprising:

executable code that, in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determines that the first portion is mapped to a first cache slot of the plurality of cache slots;

executable code that determines that the first cache slot is locked by a remote replication process executing on the storage system;

executable code that, responsive to determining that the first cache slot is locked by the remote replication process executing on the storage system, issues a request to release the first cache slot that is locked; and

executable code that, responsive to receiving the request to release the first cache slot that is locked, performs processing including:

allocating a second cache slot to the first portion;

copying second data from the first cache slot to the second cache slot; and

re-mapping the first portion from the first cache slot to the second cache slot.

16. The one or more non-transitory computer-readable media of claim 15 , further comprising:

executable code that performs the write operation, including staging the first data in the second cache slot.

17. The one or more non-transitory computer-readable media of claim 15 , further comprising:

executable code that transmits the second data from the first cache slot to a remote storage system.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the remote replication process executes asynchronous replication.

19. The one or more non-transitory computer-readable media of claim 15 , wherein a first data structure has a plurality of entries, each entry representing a portion of the logical storage unit, including a first entry representing the first portion, and wherein re-mapping the first portion includes:

executable code that modifies the first entry from pointing to the first cache slot to pointing to the second cache slot.

20. For a data storage system including a cache including a plurality of cache slots, one or more non-transitory computer-readable media having software stored thereon, the software comprising:

executable code that, in response to receiving a write request that specifies first data and a write operation for a first portion of a logical storage unit, determines that the first portion is mapped to a first cache slot of the plurality of cache slots;

executable code that determines that the first cache slot is locked by a remote replication process executing on the storage system;

executable code that allocates a second cache slot to the first portion;

executable code that copies second data from the first cache slot to the second cache slot; and

executable code that re-maps the first portion from the first cache slot to the second cache slot, and wherein:

the remote replication process maintains a plurality of cycles, each cycle corresponding to a respective period of time and including a queue of cache slots,

a first cycle of the plurality of replication cycles corresponding to a first period of time is in a transfer phase during which data stored in cache slots in the queue of the cache slots of the first cycle are replicated from the storage system to a remote storage system,

a second cycle of the plurality of replication cycles corresponding to a second period of time, after the first period, wherein during the second cycle the write request is received and the second cycle is in a capture phase during which a queue of cache slots of the second cycle are being populated with cache slots mapped to logical storage unit portions for which write operations were initiated during the second period, and

wherein the first cache slot is in the first cycle and the second cache slot is in the second cycle.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2020
From: BORA, BHASKAR; YODER, BENJAMIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054220/0446 →