IP Library Granted Patent US 10,521,371
Granted Patent B2
US 10,521,371 · App. 15/954,873 · Granted Dec 31, 2019

Cache system and associated method

Inventors: Lifeng Yang (Beijing, CN); Xinlei Xu (Beijing, CN); Jian Gao (Beijing, CN); Liam Li (Beijing, CN); Changyu Feng (Beijing, CN)
Assignee: EMC IP Holding Company, LLC
G06F13/1689G06F3/0611G06F3/0659G06F3/0673G06F13/42
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 10,521,371
App. No.
15/954,873
Granted
Dec 31, 2019
Kind
B2
Abstract

Embodiments of the present disclosure provide a cache system and associated method. The cache system includes a first pipeline module including a first plurality of sequential processing phases for executing a plurality of operations. The first plurality of operations is executed in response to Input/Output (I/O) requests of a first plurality of types for the persistent storage device, and each of the first plurality of operations is a common operation for the I/O requests of at least two of the first plurality of types. The cache system also includes a control module configured to: determine a first type of a first pending processing I/O request for the persistent storage device, and in response to the first type being one of the first plurality of types, cause the first pipeline module to be executed to process the first pending processing I/O request.

Claims (56)

1. A cache system, the cache system providing read and/or write caching for a persistent storage device and comprising:

a first pipeline module including a first plurality of sequential processing phases for executing a first plurality of operations, the first plurality of operations being executed in response to Input/Output (I/O) requests of a first plurality of types for the persistent storage device, and each of the first plurality of operations being a common operation for the I/O requests of at least two of the first plurality of types; and

a control module configured to:

determine a first type of a first pending processing I/O request for the persistent storage device, and

in response to the first type being one of the first plurality of types, cause the first pipeline module to be executed to process the first pending processing I/O request,

wherein the first plurality of operation include at least one operation that involves access to the persistent storage device.

2. The cache system of claim 1 , wherein the I/O requests of the first plurality of types include more than one of the following: a read request, a write request, a zero-fill request, a pre-fetch request, and a data removal request.

3. The cache system of claim 1 , wherein the control module is further configured to:

determine a second type of a second pending processing I/O request for the persistent storage device; and

in response to determining that the second type is one of the first plurality of types, while a first one of the first plurality of sequential processing phases is executing, cause the first pipeline module to be executed to process the second pending processing I/O request using a second sequential processing phase prior to the first sequential processing phase in the first plurality of sequential processing phases.

4. The cache system of claim 1 , wherein the control module is configured to:

select at least one of the first plurality of processing phases for the first pending processing I/O request;

cause the at least one selected processing phase to be executed for the first pending processing I/O request; and

cause other processing phases in the first plurality of processing phases to be skipped.

5. The cache system of claim 1 , wherein a third one of the first plurality of sequential processing phases is operable to be suspended for a predetermined period of time in response to cache resources available for the third sequential processing phase in the cache system being below a predetermined threshold, and to be executed in response to the cache resource exceeding the predetermined threshold.

6. The cache system of claim 1 , further comprising:

a second pipeline module including a second plurality of sequential processing phases for executing a second plurality of operations, the second plurality of operations being executed in response to an I/O request of a third type for the persistent storage device, and

wherein the control module is further configured to:

determine a type of a third pending processing I/O request received by the cache system, and

in response to the determined type being the third type, cause the second pipeline module to be executed to process the third pending processing I/O request.

7. The cache system of claim 6 , wherein the control module is further configured to:

cause the second pipeline module to be executed while the first pipeline module is executing the first pending processing I/O request.

8. The cache system of claim 7 , wherein the control module is further configured to:

allocate cache resources of the cache system for the first and second pipeline modules based on respective priorities of the first and second pipeline modules.

9. A method for a cache system providing read and/or write caching for a persistent storage device, the method comprising:

receiving a first pending processing Input/Output (I/O) request for the persistent storage device, the cache system including a first pipeline module having a first plurality of sequential processing phases for executing a first plurality of operations, the first plurality of operations being executed in response to I/O requests of a first plurality of types for the persistent storage device, and each of the first plurality of operations being a common operation for the I/O requests of at least two of the first plurality of types;

determining a first type of a first pending processing I/O request; and

in response to the first type being one of the first plurality of types, causing the first pipeline module to be executed to process the first pending processing I/O request,

wherein the I/O requests of the first plurality of types include more than one of the following: a read request, a write request, a zero-fill request, a pre-fetch request, and a data removal request.

10. The method of claim 9 , wherein the first plurality of operations include at least at least one operation associated with access to the persistent storage device.

11. The method of claim 9 , further comprising:

receiving a second pending processing I/O request for the persistent storage device;

determining a second type of the second pending processing I/O request; and

in response to determining that the second type is one of the first plurality of types, while a first one of the first plurality of sequential processing phases is executing, causing the first pipeline module to be executed to process the second pending processing I/O request using a second sequential processing phase prior to the first sequential processing phase in the first plurality of sequential processing phases.

12. The method of claim 9 , wherein causing the first pipeline module to be executed comprises:

selecting at least one of the first plurality of processing phases for the first pending processing I/O request;

causing the at least one selected processing phase to be executed for the first pending processing I/O request; and

causing other processing phases in the first plurality of processing phases to be skipped.

13. The method of claim 9 , wherein causing the first pipeline module to be executed comprises:

in response to cache resources available for a third one of the first plurality of sequential processing phases in the cache system being below a predetermined threshold, suspending execution of the third sequential processing phase for a predetermined period of time; and

in response to the cache resources exceeding the predetermined threshold, causing the third sequential processing phase to be executed.

14. The method of claim 9 , wherein the cache system further includes a second pipeline module having a second plurality of sequential processing phases for executing a second plurality of operations, the second plurality of operations being executed in response to an I/O request of a third type for the persistent storage device, and

wherein the method further comprises:

receiving a third pending processing I/O request for the persistent storage device,

determining a type of the third pending processing I/O request, and

in response to the determined type being the third type, causing the second pipeline module to be executed to process the third pending processing I/O request.

15. The method of claim 14 , wherein causing the second pipeline module to be executed comprises:

causing the second pipeline module to be executed while the first pipeline module is executing the first pending processing I/O request.

16. The method of claim 15 , further comprising:

allocating cache resources of the cache system for the first and second pipeline modules based on respective priorities of the first pipeline and second pipeline modules.

17. A computer program product for a cache system providing read and/or write caching for a persistent storage device, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code, the code configured to enable the execution of:

receiving a first pending processing Input/Output (I/O) request for the persistent storage device, the cache system including a first pipeline module having a first plurality of sequential processing phases for executing a first plurality of operations, the first plurality of operations being executed in response to I/O requests of a first plurality of types for the persistent storage device, and each of the first plurality of operations being a common operation for the I/O requests of at least two of the first plurality of types;

determining a first type of a first pending processing I/O request; and

in response to the first type being one of the first plurality of types, causing the first pipeline module to be executed to process the first pending processing I/O request,

wherein the first plurality of operations include at least one operation associated with access to the persistent storage device.

Assignments (8)
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 (046366/0014) Recorded May 20, 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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 058298/0093 →
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 21, 2019
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 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2018
From: YANG, LIFENG; XU, XINLEI; GAO, JIAN; LI, LIAM; FENG, CHANGYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045589/0304 →