IP Library Granted Patent US 10,976,947
Granted Patent B2
US 10,976,947 · App. 16/355,317 · Granted Apr 13, 2021

Dynamically selecting segment heights in a heterogeneous RAID group

Inventors: Andrew R. Bernat (Mountain View, CA); Radek Aster (Campbell, CA); Benjamin Scholbrock (Sunnyvale, CA); Conner Haffner (Sunnyvale, CA); Yunpeng Duan (Mountain View, CA); John Adler (Mountain View, CA); Tsu-Hao Chang (Santa Clara, CA)
Assignee: Pure Storage, Inc.
G06F3/064G06F3/065G06F3/0619G06F3/0652G06F3/0689G06F16/907
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,976,947
App. No.
16/355,317
Granted
Apr 13, 2021
Kind
B2
Abstract

A system includes a solid-state storage array having a plurality of solid-state storage devices and a storage controller coupled to the solid-state storage array, the storage controller including a processing device, the processing device to select a segment height based on erase block sizes of the plurality of solid-state storage devices. The processing device is further to program a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices and store the segment height in metadata associated with the data segment.

Claims (37)

1. A system comprising:

a solid-state storage system comprising a plurality of solid-state storage devices; and

a storage controller coupled to the solid-state storage system, the storage controller comprising a processing device, the processing device to:

select a segment height based on erase block sizes of the plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;

write a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and

store the segment height in metadata associated with the data segment.

2. The system of claim 1 , wherein the multiple of the erase block sizes is a smallest erase block size.

3. The system of claim 1 , wherein the processing device is further to:

determine a new segment height based on the erase block sizes of the plurality of solid-state storage devices upon determining that the segment height based on the multiple exceeds a threshold.

4. The system of claim 1 , wherein

the multiple is a smallest erase block size of the erase block sizes, and wherein the segment height is a multiple of the smallest erase block size.

5. The system of claim 1 , wherein the processing device is further to:

select a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.

6. The system of claim 1 , wherein to select the segment height based on the erase block sizes associated with the plurality of solid-state storage devices, the processing device is further to:

determine the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.

7. A method, comprising:

selecting, by a processing device of a storage controller, a segment height based on erase block sizes of a plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;

writing a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and

storing the segment height in metadata associated with the data segment.

8. The method of claim 7 , wherein the multiple of the erase block sizes is a smallest erase block size.

9. The method of claim 7 , further comprising:

determining a new segment height based on the erase block sizes of the plurality of solid-state storage devices upon determining that the segment height based on the multiple exceeds a threshold.

10. The method of claim 7 , wherein the multiple is a smallest erase block size of the erase block sizes.

11. The method of claim 7 , further comprising:

selecting a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.

12. The method of claim 7 , wherein selecting the segment height based on the erase block sizes associated with the plurality of solid-state storage devices further comprises:

determining the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.

13. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:

select a segment height based on erase block sizes of a plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;

write a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and

store the segment height in metadata associated with the data segment.

14. The non-transitory computer readable storage medium of claim 13 , wherein the multiple of the erase block sizes is a smallest erase block size.

15. The non-transitory computer readable storage medium of claim 13 , wherein the multiple is a smallest erase block size of the erase block.

16. The non-transitory computer readable storage medium of claim 13 , wherein the processing device is further to:

select a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.

17. The non-transitory computer readable storage medium of claim 13 , wherein to select the segment height based on the erase block sizes associated with the plurality of solid-state storage devices, the processing device is further to:

determine the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: BERNAT, ANDREW R.; ASTER, RADEK; SCHOLBROCK, BENJAMIN; HAFFNER, CONNER; DUAN, YUNPENG; ADLER, JOHN; CHANG, TSU-HAO
To: PURE STORAGE, INC.
Reel/Frame 048615/0989 →