IP Library Granted Patent US 11,526,447
Granted Patent B1
US 11,526,447 · App. 17/363,167 · Granted Dec 13, 2022

Destaging multiple cache slots in a single back-end track in a RAID subsystem

Inventors: Peng Wu (Westborough, MA); Rong Yu (West Roxbury, MA); Jiahui Wang (Framingham, MA); Lixin Pang (Needham, MA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0844G06F3/0604G06F3/0655G06F3/0689G06F2212/60
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,526,447
App. No.
17/363,167
Granted
Dec 13, 2022
Kind
B1
Abstract

A data service layer running on a storage director node generates a request to destage host data from a plurality of cache slots in a single back-end track. The destage request includes pointers to addresses of the cache slots and indicates an order in which the host application data in the cache slots is to be included in the back-end track. A back-end redundant array of independent drives (RAID) subsystem running on a drive adapter is responsive to the request to calculate parity information using the host application data in the cache slots. The back-end RAID subsystem assembles the single back-end track comprising the host application data from the plurality of cache slots of the request, and destages the single back-end track to a non-volatile drive in a single back-end input-output (IO) operation.

Claims (32)

1. An apparatus comprising:

a plurality of non-volatile drives on which host application data is stored in back-end track allocation units;

a storage director node comprising volatile memory with a cache slots partition including a plurality of same-size cache slots, the storage director configured to present to hosts a logical production volume on which the host application data is stored in front-end track allocation units;

a drive adapter configured to access the drives using back-end track allocation units;

a data service layer running on the storage director node, the data service layer configured to generate a request to destage at least one of the front-end track allocation units of host application data from a plurality of the cache slots to a single back-end track on one of the drives, wherein the data service layer is configured to include a data integrity field for each cache slot in the request; and

a back-end redundant array of independent drives (RAID) subsystem running on the drive adapter, the back-end RAID subsystem configured, responsive to the request, to calculate parity using the host application data in the cache slots, assemble the single back-end track comprising the host application data from the plurality of cache slots of the request, and destage the single back-end track to one of the non-volatile drives in a single back-end input-output (IO) operation.

2. The apparatus of claim 1 wherein the data service layer is configured to indicate addresses of the plurality of cache slots in the request.

3. The apparatus of claim 2 wherein the data service layer is configured to indicate an order of the plurality of cache slots in the request.

4. The apparatus of claim 3 wherein the back-end RAID subsystem is configured assemble the single back-end track with the host data in the order specified for the plurality of cache slots.

5. The apparatus of claim 4 wherein the single back-end track is stored on a RAID protection group member of a RAID protection group in a slice of the drives and the back-end subsystem is configured to destage the single back-end track contemporaneous with destaging other back-end tracks of the slice.

6. The apparatus of claim 5 wherein the drive adapter is configured to forward the request to a second drive adapter responsive to the back-end RAID subsystem being unable to service the request.

7. A method implemented in a storage system comprising a plurality of non-volatile drives on which host application data is stored in back-end track allocation units, a storage director node comprising volatile memory with a cache slots partition including a plurality of same-size cache slots, the storage director configured to present to hosts a logical production volume on which the host application data is stored in front-end track allocation units, and a drive adapter configured to access the drives using back-end track allocation units, the method comprising:

a data service layer on the storage director node generating a request to destage at least one of the front-end track allocation units of host application data from a plurality of the cache slots to a single back-end track on one of the drives and including a data integrity field for each cache slot in the request; and

responsive to the request, a back-end redundant array of independent drives (RAID) subsystem on the drive adapter:

calculating parity using the host application data in the cache slots;

assembling the single back-end track comprising the host application data from the plurality of cache slots of the request; and

destaging the single back-end track to one of the non-volatile drives in a single back-end input-output (IO) operation.

8. The method of claim 7 comprising the data service layer indicating addresses of the plurality of cache slots in the request.

9. The method of claim 8 comprising the data service layer indicating an order of the plurality of cache slots in the request.

10. The method of claim 9 comprising the back-end RAID subsystem assembling the single back-end track with the host data in the order specified for the plurality of cache slots.

11. The method of claim 10 wherein the single back-end track is stored on a RAID protection group member of a RAID protection group in a slice of the drives and comprising the back-end subsystem destaging the single back-end track contemporaneous with destaging other back-end tracks of the slice.

12. The method of claim 11 comprising the drive adapter forwarding the request to a second drive adapter response to the back-end RAID subsystem being unable to service the request.

13. A non-transitory computer-readable storage medium storing instructions that when executed by compute nodes of a storage array cause the compute nodes to perform a method for destaging multiple memory locations to a single back-end track allocation unit on a non-volatile drive, the method comprising:

a data service layer on a storage director node generating a request to destage at least one of the front-end track allocation units of host application data from a plurality of the cache slots to a single back-end track on one of the drives and including a data integrity field for each cache slot in the request; and

responsive to the request, a back-end redundant array of independent drives (RAID) subsystem on a drive adapter:

calculating parity using the host application data in the cache slots;

assembling the single back-end track comprising the host application data from the plurality of cache slots of the request; and

destaging the single back-end track to one of the non-volatile drives in a single back-end input-output (IO) operation.

14. The non-transitory computer-readable storage medium of claim 13 wherein the method further comprises the data service layer indicating addresses of the plurality of cache slots in the request.

15. The non-transitory computer-readable storage medium of claim 14 wherein the method further comprises the data service layer indicating an order of the plurality of cache slots in the request.

16. The non-transitory computer-readable storage medium of claim 15 wherein the method further comprises the back-end RAID subsystem assembling the single back-end track with the host data in the order specified for the plurality of cache slots.

17. The non-transitory computer-readable storage medium of claim 16 wherein the single back-end track is stored on a RAID protection group member of a RAID protection group in a slice of the drives and wherein the method further comprises the back-end subsystem destaging the single back-end track contemporaneous with destaging other back-end tracks of the slice.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2021
From: WANG, JIAHUI; WU, PENG; YU, RONG; PANG, LIXIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056715/0414 →
Cited By (1)
US 12,314,609