# US 2017/0286016 A1 · Dynamic distributed agreement protocols in a dispersed storage network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286016 A1
- Document ID: US20170286016A1
- Status: Published application
- Kind: A1
- Application number: 15/467,832
- Filed: 2017-03-23
- Published: 2017-10-05
- Earliest claimed: 2016-03-29
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Andrew D. Baptist; Wesley B. Leggette; Manish Motwani; Jason K. Resch; Ethan S. Wozniak
- Web page: https://patentgrep.com/patent/US20170286016A1

## CPC

- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/064: {Management of blocks}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/3692: {for test results analysis}
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/616: {Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 2201/805: Real-time
- G06F 2201/82: Solving problems relating to consistency
- H03M 13/373: {with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for execution by a device of a dispersed storage network (DSN) to access a set of encoded data slices. The method begins by performing a first distributed agreement protocol (DAP) function using a slice identifier and a first set of coefficients to identify a set of storage units. The method continues by performing a second DAP function using the slice identifier and a second set of coefficients to identify pillar numbers for the set of storage units. The method continues by sending a set of data access requests to the set of storage units in accordance with the pillar numbers, wherein a data access request of the set of data access requests includes a slice name for a corresponding one of the set of encoded data slices and wherein the slice name includes one of the pillar numbers.

## Claims

### Claim 1

A method for execution by a device of a dispersed storage network (DSN) to access a set of encoded data slices, the method comprises:
performing a first distributed agreement protocol (DAP) function using a slice identifier and a first set of coefficients to identify a set of storage units of a plurality of storage units;
performing a second DAP function using the slice identifier and a second set of coefficients to identify pillar numbers for the set of storage units, wherein a first encoded data slice of the set of encoded data slices has a first pillar number as is to be accessed via a storage unit of the set of storage units being assigned the first pillar number of the pillar numbers; and
sending a set of data access requests to the set of storage units in accordance with the pillar numbers, wherein a data access request of the set of data access requests includes a slice name for a corresponding one of the set of encoded data slices and wherein the slice name includes one of the pillar numbers.

### Claim 2 (depends on 1)

The method of claim 1, wherein the performing the first DAP function further comprises:
performing a storage pool selection DAP function using the slice identifier and a storage pool set of coefficients to identify a storage pool of a plurality of storage pools of the DSN, wherein the storage pool includes the plurality of storage units.

### Claim 3 (depends on 1)

The method of claim 1, wherein the slice identifier comprises one or more of:
pillar number information;
data segment number information;
a vault identifier;
a data object identifier; and
revision information.

### Claim 4 (depends on 1)

The method of claim 1 further comprises:
performing the first DAP function using a first DAP engine; and
performing the second DAP function using a second DAP engine.

### Claim 5 (depends on 1)

The method of claim 1 further comprises:
performing the first DAP function using a DAP engine by providing the DAP engine with the slice identifier and the first set of coefficients; and
performing the second DAP function using the DAP engine by providing the DAP engine with the slice identifier and the second set of coefficients.

### Claim 6 (depends on 1)

The method of claim 1 further comprises:
performing a first third DAP function using the slice identifier and a first third set of coefficients to identify a memory device of a plurality of memory devices of a first pillar number storage unit of the set of storage units;
performing a second third DAP function using the slice identifier and a second third set of coefficients to identify a memory device of a plurality of memory devices of a second pillar number storage unit of the set of storage units; and
performing a third third DAP function using the slice identifier and a third third set of coefficients to identify a memory device of a plurality of memory devices of a third pillar number storage unit of the set of storage units.

### Claim 7 (depends on 1)

The method of claim 1, wherein performing the first DAP function comprises:
performing a plurality of rating functions based on the slice identifier and the first set of coefficients to produce a plurality of ratings for the plurality of storage units; and
selecting, in accordance with a ranking function, the set of storage units from the plurality of storage units based on the plurality of ratings.

### Claim 8 (depends on 7)

The method of claim 7 further comprises:
for a rating function of the plurality of rating functions:
performing a deterministic function on the slice identifier and a first coefficient of the first set of coefficients to produce an interim result;
performing a normalizing function on the interim result to produce a normalized result; and
performing a scoring function on the normalized result based on a second coefficient of the first set of coefficients to produce a rating of the plurality of ratings.

### Claim 9

A computing device of a dispersed storage network (DSN), the computing device comprises:
an interface;
memory;
a processing module operably coupled to the memory and the interface, wherein the processing module is operable to access a set of encoded data slices by:
performing a first distributed agreement protocol (DAP) function using a slice identifier and a first set of coefficients to identify a set of storage units of a plurality of storage units;
performing a second DAP function using the slice identifier and a second set of coefficients to identify pillar numbers for the set of storage units, wherein a first encoded data slice of the set of encoded data slices has a first pillar number as is to be accessed via a storage unit of the set of storage units being assigned the first pillar number of the pillar numbers; and
sending, via the interface, a set of data access requests to the set of storage units in accordance with the pillar numbers, wherein a data access request of the set of data access requests includes a slice name for a corresponding one of the set of encoded data slices and wherein the slice name includes one of the pillar numbers.

### Claim 10 (depends on 9)

The computing device of claim 9, wherein the processing module is operable to perform the first DAP function further by:
performing a storage pool selection DAP function using the slice identifier and a storage pool set of coefficients to identify a storage pool of a plurality of storage pools of the DSN, wherein the storage pool includes the plurality of storage units.

### Claim 11 (depends on 9)

The computing device of claim 9, wherein the slice identifier comprises one or more of:
pillar number information;
data segment number information;
a vault identifier;
a data object identifier; and
revision information.

### Claim 12 (depends on 9)

The computing device of claim 9, wherein the processing module is further operable to:
perform the first DAP function using a first DAP engine; and
perform the second DAP function using a second DAP engine.

### Claim 13 (depends on 9)

The computing device of claim 9, wherein the processing module is further operable to:
perform the first DAP function using a DAP engine by providing the DAP engine with the slice identifier and the first set of coefficients; and
perform the second DAP function using the DAP engine by providing the DAP engine with the slice identifier and the second set of coefficients.

### Claim 14 (depends on 9)

The computing device of claim 9, wherein the processing module is further operable to:
perform a first third DAP function using the slice identifier and a first third set of coefficients to identify a memory device of a plurality of memory devices of a first pillar number storage unit of the set of storage units;
perform a second third DAP function using the slice identifier and a second third set of coefficients to identify a memory device of a plurality of memory devices of a second pillar number storage unit of the set of storage units; and
perform a third third DAP function using the slice identifier and a third third set of coefficients to identify a memory device of a plurality of memory devices of a third pillar number storage unit of the set of storage units.

### Claim 15 (depends on 9)

The computing device of claim 9, wherein the processing module is operable to perform the first DAP function by:
performing a plurality of rating functions based on the slice identifier and the first set of coefficients to produce a plurality of ratings for the plurality of storage units; and
selecting, in accordance with a ranking function, the set of storage units from the plurality of storage units based on the plurality of ratings.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the processing module is further operable to:
for a rating function of the plurality of rating functions:
perform a deterministic function on the slice identifier and a first coefficient of the first set of coefficients to produce an interim result;
perform a normalizing function on the interim result to produce a normalized result; and
perform a scoring function on the normalized result based on a second coefficient of the first set of coefficients to produce a rating of the plurality of ratings.
