IP Library Granted Patent US 10,476,961
Granted Patent B2
US 10,476,961 · App. 16/190,742 · Granted Nov 12, 2019

Changing rebuild priority for a class of data

Inventors: Dennis A. Kalaf (San Francisco, CA); S. Christopher Gladwin (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/08G06F11/1076G06F21/6218G06F21/645H04N7/17336H04L63/0823H04L63/101H04N21/23116H04N21/4334
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,476,961
App. No.
16/190,742
Granted
Nov 12, 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 that is configured to perform various operations based on operational instructions. The computing device receives name range information and priority level information to handle data objects associated with the name range information and identifies object names associated with a name range. The computing device identifies EDS name ranges that respectively correspond to the object names. The computing device updates an EDS priority table to associate EDS name range(s) with the priority level information. The computing device receives a request associated with an EDS name range and accesses the EDS priority table to identify a priority level associated therewith. The computing device then processes the request based on the priority level associated with the EDS name range.

Claims (70)

1. A computing device comprising:

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

memory that stores operational instructions; and

a processor operably coupled to the interface and to the memory, wherein the processor operates within the computing device based on the operational instructions to:

receive, via the interface and from another computing device, a request associated with an encoded data slice (EDS) name range, wherein the EDS name range is included within a plurality of EDS name ranges that respectively correspond to object names, wherein each EDS name corresponds to a respective one of the object names of a plurality of data objects that are distributedly stored in a plurality of storage units (SUs) within the DSN, wherein a data object of the plurality of data objects is segmented into a plurality of data segments, 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) that are distributedly stored in at least some of the plurality of SUs within the DSN, and a decode threshold number of EDSs are needed to recover the data segment;

access an EDS priority table to identify a priority level associated with the EDS name range, wherein the EDS priority table specifies a plurality of priority levels associated with the plurality of EDS name ranges; and

process the request associated with the EDS name range based on the priority level associated with the EDS name range including resources within the DSN, via the interface, wherein an amount of resources within the DSN that are allocated corresponds to the priority level, and wherein a first priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a first amount of resources within the DSN, and a second priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a second amount of resources within the DSN that is less than the first amount of resources within the DSN based on the first priority level being higher than the second priority level.

2. The computing device of claim 1 , wherein the processor operates within the computing device based on the operational instructions, is further configured to:

receive name range information and priority level information to handle the plurality of data objects associated with the name range information;

identify object names of the plurality of data objects associated with a name range of the name range information;

identify EDS name ranges that respectively correspond to the object names, wherein each EDS name range corresponds to a respective one of the object names; and

update the EDS priority table to associate at least one EDS name range of the EDS name ranges with the priority level information.

3. The computing device of claim 1 , wherein:

the request associated with the EDS name range includes at least one of a data access request or an EDS request;

the data access request includes at least one of a data object write request, a data object read request, a data object list request, or a data object delete request; and

the EDS request includes at least one of an EDS write request, an EDS read request, an EDS list request, or an EDS delete request.

4. The computing device of claim 1 , wherein the processor operates within the computing device based on the operational instructions, is further configured to:

process the request associated with the EDS name range to generate a set of DSN access requests that includes a set of corresponding EDS names, wherein the EDS name range corresponds to an EDS name of the set of DSN access requests based on at least one of an identified priority level or at least one other priority level associated with at least one other request.

5. The computing device 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.

6. The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from a second premises of at least one SU of the plurality of SUs within the DSN.

7. The computing device of claim 1 , wherein the computing device is 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.

8. The computing device 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 computing device comprising:

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

memory that stores operational instructions; and

a processor operably coupled to the interface and to the memory, wherein the processor operates within the computing device based on the operational instructions to:

receive, via the interface and from another computing device, a request associated with an encoded data slice (EDS) name range, wherein the EDS name range is included within a plurality of EDS name ranges that respectively correspond to object names, wherein each EDS name corresponds to a respective one of the object names of a plurality of data objects that are distributedly stored in a plurality of storage units (SUs) within the DSN, wherein a data object of the plurality of data objects is segmented into a plurality of data segments, 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) that are distributedly stored in at least some of the plurality of SUs within the DSN, and a decode threshold number of EDSs are needed to recover the data segment, wherein:

the request associated with the EDS name range includes at least one of a data access request or an EDS request;

the data access request includes at least one of a data object write request, a data object read request, a data object list request, or a data object delete request; and

the EDS request includes at least one of an EDS write request, an EDS read request, an EDS list request, or an EDS delete request;

access an EDS priority table to identify a priority level associated with the EDS name range, wherein the EDS priority table specifies a plurality of priority levels associated with the plurality of EDS name ranges;

process the request associated with the EDS name range based on the priority level associated with the EDS name range including resources within the DSN, via the interface, wherein an amount of resources within the DSN that are allocated corresponds to the priority level, and wherein a first priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a first amount of resources within the DSN, and a second priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a second amount of resources within the DSN that is less than the first amount of resources within the DSN based on the first priority level being higher than the second priority level; and

process the request associated with the EDS name range to generate a set of DSN access requests that includes a set of corresponding EDS names, wherein the EDS name range corresponds to an EDS name of the set of DSN access requests based on at least one of an identified priority level or at least one other priority level associated with at least one other request.

10. The computing device of claim 9 , wherein the processor operates within the computing device based on the operational instructions, is further configured to: receive name range information and priority level information to handle the plurality of data objects associated with the name range information; identify object names of the plurality of data objects associated with a name range of the name range information; identify EDS name ranges that respectively correspond to the object names, wherein each EDS name range corresponds to a respective one of the object names; and update the EDS priority table to associate at least one EDS name range of the EDS name ranges with the priority level information.

11. The computing device 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 computing device of claim 9 , wherein the computing device is 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.

13. The computing device 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 computing device, the method comprising:

receiving, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN) and from another computing device, a request associated with an encoded data slice (EDS) name range, wherein the EDS name range is included within a plurality of EDS name ranges that respectively correspond to object names, wherein each EDS name corresponds to a respective one of the object names of a plurality of data objects that are distributedly stored in a plurality of storage units (SUs) within the DSN, wherein a data object of the plurality of data objects is segmented into a plurality of data segments, 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) that are distributedly stored in at least some of the plurality of SUs within the DSN, and a decode threshold number of EDSs are needed to recover the data segment;

accessing an EDS priority table to identify a priority level associated with the EDS name range, wherein the EDS priority table specifies a plurality of priority levels associated with the plurality of EDS name ranges; and

processing the request associated with the EDS name range based on the priority level associated with the EDS name range including resources within the DSN, via the interface, wherein an amount of resources within the DSN that are allocated corresponds to the priority level, and wherein a first priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a first amount of resources within the DSN, and a second priority level of the plurality of priority levels associated with the plurality of EDS name ranges corresponds to a second amount of resources within the DSN that is less than the first amount of resources within the DSN based on the first priority level being higher than the second priority level.

15. The method of claim 14 further comprising:

receiving name range information and priority level information to handle the plurality of data objects associated with the name range information;

identifying object names of the plurality of data objects associated with a name range of the name range information;

identifying EDS name ranges that respectively correspond to the object names, wherein each EDS name range corresponds to a respective one of the object names; and

updating the EDS priority table to associate at least one EDS name range of the EDS name ranges with the priority level information.

16. The method of claim 14 , wherein:

the request associated with the EDS name range includes at least one of a data access request or an EDS request;

the data access request includes at least one of a data object write request, a data object read request, a data object list request, or a data object delete request; and

the EDS request includes at least one of an EDS write request, an EDS read request, an EDS list request, or an EDS delete request.

17. The method of claim 14 further comprising:

processing the request associated with the EDS name range to generate a set of DSN access requests that includes a set of corresponding EDS names, wherein the EDS name range corresponds to an EDS name of the set of DSN access requests based on at least one of an identified priority level or at least one other priority level associated with at least one other request.

18. 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.

19. The method of claim 14 , wherein the computing device is 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.

20. The method of claim 14 , 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).

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 Nov 15, 2018
From: KALAF, DENNIS A.; GLADWIN, S. CHRISTOPHER; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047515/0695 →