IP Library Granted Patent US 11,194,759
Granted Patent B2
US 11,194,759 · App. 16/815,332 · Granted Dec 7, 2021

Optimizing local data relocation operations of a storage device of a storage system

Inventors: Sankara Vaideeswaran (San Jose, CA); Hari Kannan (Sunnyvale, CA); Gordon James Coleman (Los Altos, CA)
Assignee: Pure Storage, Inc.
G06F16/119G06F9/4837G06F9/4881G06F11/3034G06F16/1824G06F12/0246
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,194,759
App. No.
16/815,332
Granted
Dec 7, 2021
Kind
B2
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 (49)

1. A storage system comprising:

a plurality of solid-state storage devices; and

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

maintain a priority queue comprising an order of local data relocation operations to be performed by the plurality of solid-state storage devices;

receive, from a solid-state storage device of the plurality of solid-state storage devices, an indication of a new local data relocation operation for data stored at the solid-state storage device, the indication comprising information associated with the data; and

insert the new local data relocation operation into a position in the order of the priority queue based on the information associated with the data.

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

cause the plurality of solid-state storage devices to perform the local 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 local data relocation operations, wherein the corresponding counters indicate that each of the local data relocation operations is currently being performed.

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

transmit a read request for data associated with one of the local data relocation operations;

receive an indication that an attempt to read the data associated with the read request has failed;

identify the corresponding counter associated with the data to determine whether the data is currently being relocated; and

in response to determining that the data is currently being relocated, transmit a subsequent read request for the data.

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

6. The storage system of claim 1 , wherein the information associated with the data comprises a programming mode used to store the data.

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

8. A method, comprising:

maintaining a priority queue comprising an order of local data relocation operations to be performed by a plurality of solid-state storage devices;

receiving, from a solid-state storage device of the plurality of solid-state storage devices, an indication of a new local data relocation operation for data stored at the solid-state storage device, the indication comprising information associated with the data; and

inserting, by a processing device, the new local data relocation operation into a position in the order of the priority queue based on the information associated with the data.

9. The method of claim 8 , further comprising:

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

10. The method of claim 9 , further comprising:

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

11. The method of claim 10 , further comprising:

transmitting a read request for data associated with one of the local data relocation operations;

receiving an indication that an attempt to read the data associated with the read request has failed;

identifying the corresponding counter associated with the data to determine whether the data is currently being relocated; and

in response 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 information associated with the data comprises a timestamp corresponding to a programming time for the data.

13. The method of claim 8 , wherein the information associated with the data comprises a programming mode used to store the data.

14. The method of claim 8 , wherein the priority queue comprises device queues comprising corresponding orders of local data relocation operations to be performed by each of the plurality of solid-state 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 local data relocation operations to be performed by a plurality of solid-state storage devices;

receive, from a solid-state storage device of the plurality of solid-state storage devices, an indication of a new local data relocation operation for data stored at the solid-state storage device, the indication comprising information associated with the data; and

insert the new local data relocation operation into a position in the order of the priority queue based on the information associated with the data.

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

cause the plurality of solid-state storage devices to perform the local 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 solid-state storage devices to modify a corresponding counter associated with each of the local data relocation operations, wherein the corresponding counters indicate that each of the local 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:

transmit a read request for data associated with one of the local data relocation operations;

receive an indication that an attempt to read the data associated with the read request has failed;

identify the corresponding counter associated with the data to determine whether the data is currently being relocated; and

in response 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 information associated with the data comprises a timestamp corresponding to a programming time for the data.

20. The non-transitory computer readable storage medium of claim 15 , wherein the information associated with the data comprises a programming mode used to store the data.

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 11, 2020
From: VAIDEESWARAN, SANKARA; KANNAN, HARI; COLEMAN, GORDON JAMES
To: PURE STORAGE, INC.
Reel/Frame 052083/0760 →
Continuity (4)
Continuation In Part 16389675 · Apr 19, 2019
Provisional Application 62729597 · Sep 11, 2018
Provisional Application 62727792 · Sep 6, 2018
Related Publication 20200210376A1 · Jul 2, 2020