IP Library Granted Patent US 10,521,300
Granted Patent B2
US 10,521,300 · App. 16/143,854 · Granted Dec 31, 2019

Client provided request prioritization hints

Inventors: Ahmad Alnafoosi (Streamwood, IL); Andrew D. Baptist (Mt. Pleasant, WI); Greg R. Dhuse (Chicago, IL); Jason K. Resch (Chicago, IL); Ilya Volvovski (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/108G06F3/064G06F3/067G06F3/0619G06F9/5027G06F21/64H04L43/0852H04L47/70H04L67/10H04L67/1097H04L67/322G06F11/1076H04L63/08H04L63/101
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,300
App. No.
16/143,854
Granted
Dec 31, 2019
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. For example, the computing device generates a prioritized request that includes at least one of a task for execution or a priority level based on information stored within a storage unit (SU) of a plurality of storage units (SUs) implemented within the DSN. Note that the information corresponds to a data object that is related to a set of encoded data slices (EDSs) that are distributedly stored within the DSN. The computing device then transmits the prioritized request to the SU and receives, from the SU, a response to the prioritized request.

Claims (81)

1. A storage unit (SU) comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the SU based on the operational instructions, is configured to:

receive, from a computing device and via the interface, a prioritized request that includes at least one of a task for execution or a priority level based on information stored within at least one SU of a plurality of storage units (SUs) that includes the SU that is implemented within the DSN, wherein the information corresponds to a data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs), wherein the set of EDSs are distributedly stored among the plurality of SUs, and wherein a decode threshold number of EDSs are needed to recover the data segment;

determine whether to execute the prioritized request; and

based on a determination to execute the prioritized request, transmit, to the computing device and via the interface, a response to the prioritized request, wherein the response is based on an execution priority level that indicates a priority value level relative to other execution priority levels of other prioritized requests based on the determination to execute the prioritized request.

2. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

based on another determination not to execute the prioritized request:

generate another response to the prioritized request to include a rejection level;

transmit, to the computing device and via the interface, the another response to the prioritized request; and

receive, from the computing device and via the interface, a re-transmission of the prioritized request; or

receive, from the computing device and via the interface, another prioritized request that includes another priority level based on the information stored within at least one SU of the plurality of SUs that includes the SU that is implemented within the DSN.

3. The SU of claim 1 , wherein the priority level is based on at least one of a previous response corresponding to the prioritized request, a request type of the prioritized request, a timing requirement associated of the prioritized request, a priority input prioritized request, or a data type associated with the prioritized request.

4. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

determine the execution priority level based on at least one of a current loading level of the SU, at least one execution priority level of at least one previously queued prioritized request, or the priority level of the prioritized request.

5. The SU of claim 1 , wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

based on the determination to execute the prioritized request:

generate a result of execution of the prioritized request; and

transmit, to the computing device and via the interface, a subsequent response that includes the result of execution of the prioritized request.

6. The SU of claim 1 , wherein:

a read threshold number of EDSs provides for reconstruction of the data segment;

a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;

the set of EDSs is of pillar width and includes a pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

7. The SU of claim 1 further comprising:

one of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

8. The SU of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A storage unit (SU) comprising:

an interface configured to interface and communicate with a dispersed or distributed storage network (DSN);

memory that stores operational instructions; and

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the SU based on the operational instructions, is configured to:

receive, from a computing device and via the interface, a prioritized request that includes at least one of a task for execution or a priority level based on information stored within at least one SU of a plurality of storage units (SUs) that includes the SU is implemented within the DSN, wherein the information corresponds to a data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs), wherein the set of EDSs are distributedly stored among the plurality of SUs, and wherein a decode threshold number of EDSs are needed to recover the data segment;

determine whether to execute the prioritized request; and

based on a determination to execute the prioritized request:

transmit, to the computing device and via the interface, a response to the prioritized request, wherein the response is based on an execution priority level that indicates a priority value level relative to other execution priority levels of other prioritized requests based on the determination to execute the prioritized request;

generate a result of execution of the prioritized request; and

transmit, to the computing device and via the interface, a subsequent response that includes the result of execution of the prioritized request;

based on another determination not to execute the prioritized request:

generate another response to the prioritized request to include a rejection level;

transmit, to the computing device and via the interface, the another response to the prioritized request; and

receive, from the computing device and via the interface, a re-transmission of the prioritized request; or

receive, from the computing device and via the interface, another prioritized request that includes another priority level based on the information stored within at least one SU of the plurality of SUs that includes the SU that is implemented within the DSN.

10. The SU of claim 9 , wherein the priority level is based on at least one of a previous response corresponding to the prioritized request, a request type of the prioritized request, a timing requirement associated of the prioritized request, a priority input prioritized request, or a data type associated with the prioritized request; and wherein the processing module, when operable within the SU based on the operational instructions, is further configured to:

determine the execution priority level based on at least one of a current loading level of the SU, at least one execution priority level of at least one previously queued prioritized request, or the priority level of the prioritized request.

11. The SU of claim 9 , wherein:

a read threshold number of EDSs provides for reconstruction of the data segment;

a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;

the set of EDSs is of pillar width and includes a pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

12. The SU of claim 9 further comprising:

one of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

13. The SU of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

14. A method for execution by a storage unit (SU), the method comprising:

receiving, from a computing device and via an interface of the SU that is configured to interface and communicate with a dispersed or distributed storage network (DSN), a prioritized request that includes at least one of a task for execution or a priority level based on information stored within at least one SU of a plurality of storage units (SUs) that includes the SU that is implemented within the DSN, wherein the information corresponds to a data object is segmented into a plurality of data segments, wherein a data segment of the plurality of data segments is dispersed error encoded in accordance with dispersed error encoding parameters to produce a set of encoded data slices (EDSs), wherein the set of EDSs are distributedly stored among the plurality of SUs, and wherein a decode threshold number of EDSs are needed to recover the data segment;

determining whether to execute the prioritized request; and

based on a determination to execute the prioritized request, transmitting, to the computing device and via the interface, a response to the prioritized request, wherein the response is based on an execution priority level that indicates a priority value level relative to other execution priority levels of other prioritized requests based on the determination to execute the prioritized request.

15. The method of claim 14 further comprising:

based on another determination not to execute the prioritized request:

generating another response to the prioritized request to include a rejection level;

transmitting, to the computing device and via the interface, the another response to the prioritized request; and

receiving, from the computing device and via the interface, a re-transmission of the prioritized request; or

receiving, from the computing device and via the interface, another prioritized request that includes another priority level based on the information stored within at least one SU of the plurality of SUs that includes the SU that is implemented within the DSN.

16. The method of claim 14 , wherein the priority level is based on at least one of a previous response corresponding to the prioritized request, a request type of the prioritized request, a timing requirement associated of the prioritized request, a priority input prioritized request, or a data type associated with the prioritized request.

17. The method of claim 14 further comprising:

determining the execution priority level based on at least one of a current loading level of the SU, at least one execution priority level of at least one previously queued prioritized request, or the priority level of the prioritized request.

18. The method of claim 14 further comprising:

based on the determination to execute the prioritized request:

generating a result of execution of the prioritized request; and

transmitting, to the computing device and via the interface, a subsequent response that includes the result of execution of the prioritized request.

19. The method of claim 14 , wherein:

a read threshold number of EDSs provides for reconstruction of the data segment;

a write threshold number of EDSs provides for a successful transfer of the set of EDSs from a first at least one location in the DSN to a second at least one location in the DSN;

the set of EDSs is of pillar width and includes a pillar number of EDSs;

each of the decode threshold number, the read threshold number, and the write threshold number is less than the pillar number; and

the write threshold number is greater than or equal to the read threshold number that is greater than or equal to the decode threshold number.

20. The method of claim 14 , wherein at least one of:

the SU includes a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device; or

the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

Assignments (5)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2018
From: ALNAFOOSI, AHMAD; BAPTIST, ANDREW D.; DHUSE, GREG R.; RESCH, JASON K.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046993/0186 →
Continuity (5)
Continuation 15719259 · Sep 28, 2017
Continuation In Part 15427934 · Feb 8, 2017
Continuation 13959006 · Aug 5, 2013
Provisional Application 61711106 · Oct 8, 2012
Related Publication 20190034267A1 · Jan 31, 2019