IP Library Granted Patent US 11,200,169
Granted Patent B2
US 11,200,169 · App. 16/777,129 · Granted Dec 14, 2021

Cache management for sequential IO operations

Inventors: Jack Fu (Brighton, MA); Jaeyoo Jung (Shrewsbury, MA); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F12/084G06F12/0862G06F2212/602G06F2212/604G06F2212/621
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,200,169
App. No.
16/777,129
Granted
Dec 14, 2021
Kind
B2
Abstract

A processing node of a storage system may determine that a host system is implementing a cache-slot aware, round-robin IO distribution algorithm (CA-RR). The processing node may be configured to determine when a sufficient number of sequential IOs will be received to consume a cache slot of the a processing node. If the processing node knows that the host system is implementing CA-RR, then, in response to determining the sufficient number, the processing node may send a communication informing the next processing node about the sequential cache slot hit. If the sequential IO operation(s) are read operation(s), the next processing node may prefetch at least a cache-slot worth of next consecutive data portions. If the sequential IO operation(s) are write operation(s), then the next processing node may request allocation of one or more local cache slots for the forthcoming sequential write operations.

Claims (47)

1. For a storage system including a plurality of physical storage devices for storing data and a plurality of physically discrete storage processing nodes, each storage processing node including a compute component for executing logic to process IO operations and a memory, the memory including a cache segment for use as part of a shared cache distributed across the plurality of processing nodes, wherein the shared cache includes a plurality of cache slots, a method comprising:

receiving a first IO operation at a first of the plurality of storage processing nodes;

determining that at least a first quantity of next IO operations that will be received from a host system will be sequential IO operations;

determining whether the first quantity of next IO operations will consume a next cache slot of the plurality of cache slots based at least in part on a cache slot size;

determining a next storage processing node of the plurality of storage processing nodes that will receive IO operations from the host system; and

managing the shared cache to store data for at least a subset of the first quantity of next IO operations in a first cache slot located within the next storage processing node.

2. The method of claim 1 , wherein the next IO operations are write operations, and

wherein managing the shared cache includes allocating the first cache slot as a next cache slot to receive write data.

3. The method of claim 2 , wherein the next processing node requests that the first cache slot be allocated as the next cache slot to receive write data.

4. The method of claim 1 , wherein the next IO operations are read operations, and

wherein managing the shared cache includes prefetching data from one or more of the plurality of physical storage devices into the first cache slot.

5. The method of claim 1 , wherein determining that at least a first quantity of next IO operations that will be received from a host system will be sequential IO operations includes accessing information included in the first IO operation indicative of the at least first quantity of next IO operations that will be received from a host system being sequential IO operations.

6. The method of claim 1 , wherein the host system is configured to distribute IO operations among the plurality of storage processing nodes according to a predefined order, and

wherein the storage system determines the next storage processing node based on the predefined order.

7. The method of claim 1 , wherein the first storage processing node informs the next storage processing node that the at least first quantity of next IO operations that will be received from a host system will be sequential IO operations.

8. A storage system comprising:

a plurality of physical storage devices for storing data;

a plurality of physically discrete storage processing nodes, each storage processing node including a compute component for executing logic to process IO operations and a memory, the memory including a cache segment for use as part of a shared cache distributed across the plurality of processing nodes, wherein shared cache includes a plurality of cache slots,

and wherein the memory of one or more of the plurality of physically discrete storage processing nodes collectively has code thereon that, when executed, performs a method including:

receiving a first IO operation at a first of the plurality of storage processing nodes;

determining that at least a first quantity of next IO operations that will be received from a host system will be sequential IO operations from the host system;

determining whether the first quantity of next IO operations will consume a next cache slot of the plurality of cache slots based at least in part on a cache slot size;

determining a next storage processing node of the plurality of storage processing nodes that will receive IO operations from the host system; and

managing the shared cache to store data for at least a subset of the first quantity of next IO operations in a first cache slot located within the next storage processing node.

9. The storage system of claim 8 , wherein the next IO operations are write operations, and

wherein managing the shared cache includes allocating the first cache slot as a next cache slot to receive write data.

10. The storage system of claim 9 , wherein the next processing node requests that the first cache slot be allocated as the next cache slot to receive write data.

11. The storage system of claim 8 , wherein the next IO operations are read operations, and

wherein managing the shared cache includes prefetching data from one or more of the plurality of physical storage devices into the first cache slot.

12. The storage system of claim 8 , wherein determining that at least a first quantity of next IO operations that will be received from a host system will be sequential IO operations includes accessing information included in the first IO operation indicative of the at least first quantity of next IO operations that will be received from a host system being sequential IO operations.

13. The storage system of claim 8 , wherein the host system is configured to distribute IO operations among the plurality of storage processing nodes according to a predefined order, and

wherein the storage system determines the next storage processing node based on the predefined order.

14. The storage system of claim 8 , wherein the first storage processing node informs the next storage processing node that the at least first quantity of next IO operations that will be received from a host system will be sequential IO operations.

15. For a storage system including a plurality of physical storage devices for storing data and a plurality of physically discrete storage processing nodes, each storage processing node including a compute component for executing logic to process IO operations and a memory, the memory including a cache segment for use as part of a shared cache distributed across the plurality of processing nodes, wherein the shared cache includes a plurality of cache slots, computer-readable media having software stored thereon, the software comprising:

executable code that controls receiving a first IO operation at a first of the plurality of storage processing nodes;

executable code that determines that at least a first quantity of next IO operations that will be received from a host system will be a sequential IO operation from the host system;

executable code that determines whether the first quantity of next IO operations will consume a next cache slot of the plurality of cache slots based at least in part on a cache slot size;

executable code that determines a next storage processing node of the plurality of storage processing nodes that will receive IO operations from the host system; and

executable code that manages the shared cache to store data for at least a subset of the first quantity of next IO operations in a first cache slot located within the next storage processing node.

16. The computer-readable media of claim 15 , wherein the next IO operations are write operations, and

wherein managing the shared cache includes allocating the first cache slot as a next cache slot to receive write data.

17. The computer-readable media of claim 15 , wherein the next IO operations are read operations, and

wherein managing the shared cache includes prefetching data from one or more of the plurality of physical storage devices into the first cache slot.

18. The computer-readable media of claim 15 , wherein determining that at least a first quantity of next IO operations that will be received from a host system will be sequential TO operations includes accessing information included in the first IO operation indicative of the at least first quantity of next IO operations that will be received from a host system being sequential IO operations.

19. The computer-readable media of claim 15 , wherein the host system is configured to distribute IO operations among the plurality of storage processing nodes according to a predefined order, and

wherein the storage system determines the next storage processing node based on the predefined order.

20. The computer-readable media of claim 15 , wherein the first storage processing node informs the next storage processing node that the at least first quantity of next TO operations that will be received from a host system will be sequential IO operations.

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 (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2020
From: FU, JACK; JUNG, JAEYOO; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051674/0098 →
Continuity (1)
Related Publication 20210240621A1 · Aug 5, 2021
Cited By (1)
US 12,197,350