IP Library › Granted Patent US 11,868,309
Granted Patent B2
US 11,868,309 · App. 17/543,484 · Granted Jan 9, 2024

Queue management for data relocation

Inventors: Sankara Vaideeswaran (San Jose, CA); Hari Kannan (Sunnyvale, CA); Gordon James Coleman (Los Altos, CA)
Assignee: PURE STORAGE, INC.
G06F16/119G06F9/4837G06F9/4881G06F11/3034G06F13/1626G06F16/1824G06F12/0246G06F13/1642
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,868,309
App. No.
17/543,484
Filed
Dec 6, 2021
Granted
Jan 9, 2024
Kind
B2
Art Unit
2133
USPC
711/103
Abstract

A priority queue including an order of local data relocation operations to be performed by a plurality of solid-state storage devices is maintained. An indication of a new local data relocation operation is received from a solid-state storage device of the plurality of solid-state storage devices for data stored at the solid-state storage device, the indication including information associated with the data. The new local data relocation operation is inserted into a position in the order of the priority queue based on the information associated with the data.

Claims (37)

1. A storage system comprising:

a plurality of storage devices; and

a storage controller operatively coupled to the plurality of storage devices, the storage controller comprising a processing device, the processing device to:

maintain a priority queue comprising an order of data relocation operations to be performed by a plurality of storage devices; and

insert a data relocation operation into a position in the order of the priority queue based on receiving an indication of the data relocation operation for data stored at the storage device, wherein the indication is associated with a programming mode used to store the data.

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

cause the plurality of storage devices to perform the data relocation operations in the order of the priority queue.

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

modify a corresponding counter associated with each of the data relocation operations, wherein the corresponding counters indicate that each of the data relocation operations is currently being performed.

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

identify the corresponding counter associated with the data to determine whether the data is currently being relocated and responsive to determining that the data is currently being relocated, transmitting a subsequent read request for the data.

5. The storage system of claim 1 , wherein the indication is associated with a timestamp corresponding to a programming time for the data.

6. The storage system of claim 1 , wherein the position is before other positions of other data relocation operations previously inserted into the priority queue.

7. The storage system of claim 1 , wherein the priority queue comprises device queues comprising corresponding orders of data relocation operations to be performed by each of the plurality of storage devices.

8. A method, comprising:

maintaining a priority queue comprising an order of data relocation operations to be performed by a plurality of storage devices; and

inserting a data relocation operation into a position in the order of the priority queue based on receiving an indication of the data relocation operation for data stored at the storage device, wherein the indication is associated with a programming mode used to store the data.

9. The method of claim 8 , further comprising:

causing the plurality of storage devices to perform the data relocation operations in the order of the priority queue.

10. The method of claim 9 , further comprising:

causing each of the plurality of storage devices to modify a corresponding counter associated with each of the data relocation operations, wherein the corresponding counters indicate that each of the data relocation operations is currently being performed.

11. The method of claim 10 , further comprising:

identifying the corresponding counter associated with the data to determine whether the data is currently being relocated and responsive to determining that the data is currently being relocated, transmitting a subsequent read request for the data.

12. The method of claim 8 , wherein the indication is associated with a timestamp corresponding to a programming time for the data.

13. The method of claim 8 , wherein the position is before other positions of other data relocation operations previously inserted into the priority queue.

14. The method of claim 8 , wherein the priority queue comprises device queues comprising corresponding orders of data relocation operations to be performed by each of the plurality of storage devices.

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

maintain a priority queue comprising an order of data relocation operations to be performed by a plurality of storage devices; and

insert a data relocation operation into a position in the order of the priority queue based on receiving an indication of the data relocation operation for data stored at the storage device, wherein the indication is associated with a programming mode used to store the data.

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

cause the plurality of storage devices to perform the data relocation operations in the order of the priority queue.

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

cause each of the plurality of storage devices to modify a corresponding counter associated with each of the data relocation operations, wherein the corresponding counters indicate that each of the data relocation operations is currently being performed.

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

identify the corresponding counter associated with the data to determine whether the data is currently being relocated and responsive to determining that the data is currently being relocated, transmitting a subsequent read request for the data.

19. The non-transitory computer readable storage medium of claim 15 , wherein the indication is associated with a timestamp corresponding to a programming time for the data.

20. The non-transitory computer readable storage medium of claim 15 , wherein the position is before other positions of other data relocation operations previously inserted into the priority queue.

Continuity (6)
Continuation 16815332 · Mar 11, 2020
Continuation In Part 16547401 · Aug 21, 2019
Continuation In Part 16389675 · Apr 19, 2019
Provisional Application 62729597 · Sep 11, 2018
Provisional Application 62727792 · Sep 6, 2018
Related Publication 20220092025A1 · Mar 24, 2022