IP Library Granted Patent US 8,375,187
Granted Patent B1
US 8,375,187 · App. 11/862,417 · Granted Feb 12, 2013

I/O scheduling for flash drives

Inventors: Kendell Chilton (Southborough, MA); Sachin More (Westborough, MA)
Assignee: EMC Corporation
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 8,375,187
App. No.
11/862,417
Filed
Sep 27, 2007
Granted
Feb 12, 2013
Kind
B1
Art Unit
2189
USPC
711/167
Abstract

In a data storage system, a controller schedules I/Os to storage devices so that each one substantially performs only reads or only writes, thereby increasing performance. At least one storage device is designated as a current write device. The remainder of the devices are designated current read devices. Host write data is stored in a buffer memory. Storage device reads occur only from the current read devices. Storage device writes occur only to the current write device(s). In response to a triggering event, the designations are updated so that a different storage device is designated the current write device, and the remainder of the storage devices are designated the current read devices. A triggering event may include but not be limited to a time period, number of writes, cache size, device wear, environmental conditions, application requirements, or combination.

Claims (56)

1. Apparatus for controlling the scheduling of data transfers between a buffer memory and a plurality of solid state storage devices in a data storage system, the apparatus comprising:

a controller for designating at least one of the plurality of solid state storage devices as a current write device such that there is always at least one solid state storage device scheduled as a current write device;

the controller designating the remainder of the plurality of solid state storage devices as current read device(s);

the controller storing write data from a host in the buffer memory;

the controller allowing storage device reads to occur only from the current read device(s);

the controller allowing storage device writes to occur only to the current write device(s) and to any available address location of the current write device(s);

the controller, responsive to a triggering event, updating the designations to cause a different and at least one of the plurality of solid state storage devices to be designated a new current write device, and the remainder of the plurality of solid state storage devices to be designated the current read device(s), wherein, as prerequisite to accomplishing the update of the designations, the controller allows write operations pending for each current write device to finish to that current write device and reads to occur from any of the solid state storage devices, including from each current write device.

2. The apparatus of claim 1 wherein the triggering event comprises a time period, or a number of host writes, or a number of storage device writes, or cache size, or storage device wear, or environmental conditions, or application specific requirements, or on demand from an operator, or based on policies set for logical volumes to meet availability objectives, or based on reactive or predictive algorithmic attempts to optimize performance, or any combination thereof.

3. The apparatus of claim 2 wherein the controller comprises, for each of the at least one current write device, logic for:

designating a current read device as a new current write device;

waiting for pending write operations on the at least one current write device to finish;

designating the at least one current write device as at least one new current read device;

designating the new current write device as one of the at least one current write device.

4. The apparatus of claim 1 wherein the solid state storage devices are arranged as a RAID 1, RAID 5, or RAID 6 data storage array.

5. A method of scheduling data transfers between a buffer memory and a plurality of solid state storage devices in a data storage system, the method comprising the steps of:

designating at least one of the plurality of solid state storage devices as a current write device such that there is always at least one solid state storage device scheduled as a current write device;

designating the remainder of the plurality of solid state storage devices as current read device(s);

storing write data from a host in the buffer memory;

allowing storage device reads to occur only from the current read device(s);

allowing storage device writes to occur only to the current write device(s) and to any available address location of the current write device(s);

updating the designations in response to a triggering event to cause a different at least one of the plurality of solid state storage devices to be designated a new current write device, and the remainder of the plurality of solid state storage devices to be designated a new current read device; and

allowing, as prerequisite to accomplishing the updating of the designations, write operations pending for each current write device to finish to that current write device and reads to occur from any of the solid state storage devices, including from each current write device.

6. The method of claim 5 wherein the triggering event comprises a time period, or a number of host writes, or a number of storage device writes, or cache size, or storage device wear, or environmental conditions, or application specific requirements, or on demand from an operator, or based on policies set for logical volumes to meet availability objectives, or based on reactive or predictive algorithmic attempts to optimize performance, or any combination thereof.

7. The method of claim 6 wherein the step of updating comprises, for each of the at least one current write device, the steps of:

designating a current read device as a new current write device;

waiting for the pending write operations on the at least one current write device to finish;

designating the at least one current write device as at least one new current read device;

designating the new current write device as one of the at least one current write device.

8. The method of claim 5 wherein the solid state storage devices are arranged as a RAID 1, RAID 5, or RAID 6 data storage array.

9. Apparatus for controlling the scheduling of data transfers between a buffer memory and a mirrored pair of solid state storage devices in a data storage system, the apparatus comprising:

a controller designating one of the solid state storage devices in the mirrored pair as the current write device such that there is always at least one solid state storage device scheduled as a current write device;

the controller designating the other solid state storage device in the mirrored pair as the current read device;

the controller storing write data from a host in the buffer memory;

the controller allowing storage device reads to occur only from the current read device to the buffer memory;

the controller allowing storage device writes to occur from the buffer memory only to the current write device and to any available address location of the current write device;

the controller operable upon the occurrence of a triggering event to perform a swap operation such that the current write device becomes a new current read device and the current read device becomes a new current write device, wherein, as prerequisite to accomplishing the swap operation, the controller allows write operations pending for the current write device to finish to the current write device and reads to occur from any of the solid state storage devices, including from the current write device.

10. The apparatus of claim 9 wherein the triggering event comprises a time period, or a number of host writes, or a number of storage device writes, or cache size, or storage device wear, or environmental conditions, or application specific requirements, or on demand from an operator, or based on policies set for logical volumes to meet availability objectives, or based on reactive or predictive algorithmic attempts to optimize performance, or any combination thereof.

11. The apparatus of claim 10 wherein the controller to perform a swap comprises logic for:

designating the current read device as the new current write device;

waiting for the pending write operations on the current write device to finish;

designating the current write device as the new current read device;

designating the new current write device as the current write device.

12. A method for controlling the scheduling of data transfers between a buffer memory and a mirrored pair of solid state storage devices in a data storage system, the method comprising the steps of:

designating one of the solid state storage devices in the mirrored pair as the current write device such that there is always one solid state storage device scheduled as a current write device;

designating the other solid state storage device in the mirrored pair as the current read device;

storing write data from a host in the buffer memory;

allowing storage device reads to occur only from the current read device to the buffer memory;

allowing storage device writes to occur from the buffer memory only to the current write device and to any available address location of the current write device;

performing a swap operation upon the occurrence of a triggering event such that the current write device becomes a new current read device and the current read device becomes a new current write device; and

as prerequisite to accomplishing the performing of the swap operation, allowing write operations pending for the current write device to finish to the current write device and reads to occur from either of the solid state storage devices, including from the current write device.

13. The method of claim 12 wherein the triggering event comprises a time period, or a number of host writes, or a number of storage device writes, or cache size, or storage device wear, or environmental conditions, or application specific requirements, or on demand from an operator, or based on policies set for logical volumes to meet availability objectives, or based on reactive or predictive algorithmic attempts to optimize performance, or any combination thereof.

14. The method of claim 13 wherein the step to perform a swap comprises the steps of:

designating the current read device as the new current write device;

waiting for the pending write operations on the current write device to finish;

designating the current write device as the new current read device;

designating the new current write device as the current write device.

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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2008
From: CHILTON, KENDELL; MORE, SACHIN
To: EMC CORPORATION
Reel/Frame 020637/0884 →