IP Library Granted Patent US 10,686,880
Granted Patent B2
US 10,686,880 · App. 14/315,893 · Granted Jun 16, 2020

Dispersed storage based on range availability and methods for use therewith

Inventors: Andrew George Peake (Chicago, IL); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/1096G06F16/13G06F16/951G11C29/44H04L67/32G06F11/1076G06F2211/1028G11C2029/4402
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,686,880
App. No.
14/315,893
Granted
Jun 16, 2020
Kind
B2
Abstract

A dispersed storage and task (DST) processing unit receives a data access request corresponding to a data segment. Range availability information is obtained for a plurality of DST execution units of the DST network. A subset of the plurality of DST execution units is selected based on the range availability information and a threshold number corresponding to the data access request. Execution unit access requests are generated and sent to the subset of the plurality of DST execution units corresponding to a plurality of slices of the data segment, wherein the execution unit access requests include address information that is based on the range availability information.

Claims (44)

1. A method for execution by one or more processing modules of one or more computing devices of a dispersed storage and task (DST) network, the method comprises:

receiving a data access request corresponding to a data segment of a data object;

obtaining availability information for each of a plurality of DST execution units of the DST network, wherein each DST execution unit of the plurality of DST execution units includes one or more memory devices, and wherein the availability information is regarding physical characteristics of each of the plurality of DST execution units, wherein the physical characteristics that include one or more of an input/output performance level, a reliability level, a storage capacity, and an availability level;

selecting a subset of the plurality of DST execution units based on the availability information for the plurality of DST execution units and a threshold number corresponding to a type of data access request of the data access request, wherein the threshold number is a dispersed storage error encoding function parameter, and wherein the data segment is dispersed storage error encoded in accordance with the dispersed error encoding function to produce a set of encoded data slices;

for each DST execution unit of the subset of the plurality of DST execution units:

obtaining memory device availability information for the one or more memory devices, wherein the memory device availability information for the one or more memory devices is regarding physical characteristics of the one or more memory devices; and

generating addressing information based on the memory device availability information; and

generating execution unit access requests based on the data access request, the subset of the plurality of DST execution units, and the addressing information; and

sending the execution unit access requests to the subset of the plurality of DST execution units in accordance with the addressing information.

2. The method of claim 1 wherein the threshold number corresponds to a read threshold number when the data access request includes a read request and the threshold number corresponds to a write threshold number when the data access request includes a write request and wherein the read threshold number is less than the write threshold number.

3. The method of claim 1 , wherein the obtaining the availability information for each of the plurality of DST execution units includes at least one of:

obtaining a historical record of availability for the plurality of DST execution units;

obtaining an availability response to a query to at least one of the plurality of DST execution units;

interpreting an error message corresponding to at least one of the plurality of DST execution units; or

obtaining results from a test of availability of the plurality of DST execution units.

4. A dispersed storage and task (DST) processing unit comprises:

at least one module, when operable within a computing device, that causes the computing device to:

receive a data access request corresponding to a data segment of a data object;

obtain availability information for each of a plurality of DST execution units of a DST network, wherein each DST execution unit of the plurality of DST execution units includes one or more memory devices, and wherein the availability information is regarding physical characteristics of each of the plurality of DST execution units, wherein the physical characteristics that include one or more of an input/output performance level, a reliability level, a storage capacity, and an availability level;

select a subset of the plurality of DST execution units based on the availability information for the plurality of DST execution units and a threshold number corresponding to a type of data access request of the data access request, wherein the threshold number is a dispersed storage error encoding function parameter, and wherein the data segment is dispersed storage error encoded in accordance with the dispersed error encoding function to produce a set of encoded data slices;

for each DST execution unit of the subset of the plurality of DST execution units:

obtaining memory device availability information for the one or more memory devices, wherein the memory device availability information for the one or more memory devices is regarding physical characteristics of the one or more memory devices; and

generating addressing information based on the memory device availability information; and

generating execution unit access requests based on the data access request, the subset of the plurality of DST execution units, and the addressing information; and

send the execution unit access requests to the subset of the plurality of DST execution units in accordance with the addressing information corresponding to a set of encoded data slices.

5. The DST processing unit of claim 4 wherein the threshold number corresponds to a read threshold number when the data access request includes a read request and the threshold number corresponds to a write threshold number when the data access request includes a write request and wherein the read threshold number is less than the write threshold number.

6. The DST processing unit of claim 4 , wherein the at least one module causes the computing device to obtain the availability information for each of the plurality of DST execution units by at least one of:

obtaining a historical record of availability for the plurality of DST execution units;

obtaining an availability response to a query to at least one of the plurality of DST execution units;

interpreting an error message corresponding to at least one of the plurality of DST execution units; or

obtaining results from a test of availability of the plurality of DST execution units.

7. A computer readable memory device comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage and task (DST) network, causes the one or more computing devices to:

receive a data access request corresponding to a data segment of a data object;

obtain availability information for each of a plurality of DST execution units of the DST network, wherein each DST execution unit of the plurality of DST execution units includes one or more memory devices, and wherein the availability information is regarding physical characteristics of each of the plurality of DST execution units, wherein the physical characteristics that include one or more of an input/output performance level, a reliability level, a storage capacity, and an availability level;

select a subset of the plurality of DST execution units based on the range availability information for the plurality of DST execution units and a threshold number corresponding to a type of data access request of the data access request, wherein the threshold number is a dispersed storage error encoding function parameter, and wherein the data segment is dispersed storage error encoded in accordance with the dispersed error encoding function to produce a set of encoded data slices;

generate execution unit access requests based on the data access request, the subset of the plurality of DST execution units, and addressing information pertaining to sub-range availability information of each DST execution unit of the subset of the plurality of DST execution units; and

send the execution unit access requests to the subset of the plurality of DST execution units in accordance with the addressing information.

8. The computer readable memory device of claim 7 wherein the threshold number corresponds to a read threshold number when the data access request includes a read request and the threshold number corresponds to a write threshold number when the data access request includes a write request and wherein the read threshold number is less than the write threshold number.

9. The computer readable memory device of claim 7 , wherein the at least one memory section further stores operational instructions that, when executed by the one or more processing modules of the one or more computing devices, causes the one or more computing devices to obtain the range availability information for each of the plurality of DST execution units by at least one of:

obtaining a historical record of range availability for the plurality of DST execution units;

obtaining a range availability response to a query to at least one of the plurality of DST execution units;

interpreting an error message corresponding to at least one of the plurality of DST execution units; or

obtaining results from a test of range availability of the plurality of DST execution units.

Assignments (6)
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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2014
From: PEAKE, ANDREW GEORGE; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 033641/0044 →