# US 10,120,757 B2 · Prioritizing dispersed storage network memory operations during a critical juncture

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

- Number: US 10,120,757 B2
- Document ID: US10120757B2
- Status: Granted
- Kind: B2
- Application number: 15/425,553
- Filed: 2017-02-06
- Published: 2017-08-31
- Granted: 2018-11-06
- Earliest claimed: 2016-02-29
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Adam M. Gray
- Web page: https://patentgrep.com/patent/US10120757B2

## CPC

- G06F 11/0781: {Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0623: {in relation to content}
- G06F 3/0629: {Configuration or reconfiguration of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 11/0709: {in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units 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/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- 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/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/327: {Alarm or error message display}
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/0499: Feedforward networks
- G06N 3/084: Backpropagation, e.g. using gradient descent
- G06N 3/09: Supervised learning
- G06N 3/10: Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06Q 10/063116: {Schedule adjustment for a person or group}
- G06Q 10/06316: {Sequencing of tasks or work}
- G06Q 10/20: Administration of product repair or maintenance
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/2909: {Product codes}
- H03M 13/3761: {using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes}
- H03M 13/616: {Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations}
- H04L 9/0869: {involving random numbers or seeds}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/061: {for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838)}
- H04L 63/101: {Access control lists [ACL]}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- 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 prioritizing dispersed storage network memory (DSN) operations during a critical juncture. The method begins by a device of the DSN, during a data access request, determining when a DSN memory operation related to the data access request is at a critical juncture. A decode threshold number of encoded data slices is required to recover the data segment, a write threshold number of encoded data slices is required for a successful write operation, and the critical juncture includes the DSN memory operation being within one of a first offset of the decode threshold number and a second offset of the write threshold number. When the DSN memory operation is at the critical juncture, the method continues with detecting an outstanding action with respect to the DSN memory operation, suspending execution of non-critical DSN operations and prioritizing execution of the outstanding action.

## Claims

### Claim 1

A method comprises:
for a data access request, determining, by a device of devices of the dispersed storage network (DSN), when a DSN memory operation related to the data access request is at a critical juncture, wherein the data access request is regarding a set of encoded data slices that are stored or to be stored in a set of storage units of the DSN, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment, wherein a write threshold number of encoded data slices of the set of encoded data slices is required for a successful write operation, wherein the critical juncture includes the DSN memory operation being within one of a first offset of the decode threshold number and a second offset of the write threshold number; and
when the DSN memory operation is at the critical juncture:
detecting, by one or more of the devices, an outstanding action with respect to the DSN memory operation;
suspending, by the one or more of the devices, execution of non-critical DSN operations; and
prioritizing, by the one or more of the devices, execution of the outstanding action.

### Claim 2 (depends on 1)

The method of claim 1, wherein the devices comprise:
the set of storage units; and
one or more dispersed storage (DS) processing units.

### Claim 3 (depends on 1)

The method of claim 1, wherein the determining the DSN memory operation is at the critical juncture comprises:
receiving, by a storage unit of the set of storage units as one of the devices, a message indicated the DSN memory operation is at the critical juncture.

### Claim 4 (depends on 1)

The method of claim 1, wherein the determining the DSN memory operation is at the critical juncture comprises:
receiving, by a dispersed storage (DS) processing unit of the DSN as one of the devices, data read responses from some of the set of storage units, wherein the DSN memory operation is a read operation; and
when the number of data read responses is equal to the decode threshold number less the first offset, indicating the DSN memory operation is in the critical juncture.

### Claim 5 (depends on 1)

The method of claim 1, wherein the determining the DSN memory operation is at the critical juncture comprises:
receiving, by a dispersed storage (DS) processing unit of the DSN as one of the devices, data write responses from some of the set of storage units, wherein the DSN memory operation is a write operation; and
when the number of data write responses is equal to the write threshold number less the second offset, indicating the DSN memory operation is in the critical juncture.

### Claim 6 (depends on 1)

The method of claim 1, wherein the non-critical DSN operations comprises one or more of:
lower priority DSN memory operations;
garbage collection;
disk rebalancing;
bin file compaction;
thread dumps; and
rebuilding.

### Claim 7 (depends on 1)

The method of claim 1 further comprises:
after execution of the outstanding action, resuming, by the one or more of the devices, the execution of the non-critical DSN operations.

### Claim 8

A computer readable storage device comprises:
a first memory section for storing operational instructions that, when executed by a device of devices of a dispersed storage network (DSN), causes the device to:
for a data access request, determine, when a DSN memory operation related to the data access request is at a critical juncture, wherein the data access request is regarding a set of encoded data slices that are stored or to be stored in a set of storage units of the DSN, wherein a data segment is dispersed storage error encoded to produce the set of encoded data slices, wherein a decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment, wherein a write threshold number of encoded data slices of the set of encoded data slices is required for a successful write operation, wherein the critical juncture includes the DSN memory operation being within one of a first offset of the decode threshold number and a second offset of the write threshold number; and
a second memory section for storing operational instructions that, when executed by one or more of the devices of a dispersed storage network (DSN), causes the one or more of the devices to:
when the DSN memory operation is at the critical juncture:
detecting an outstanding action with respect to the DSN memory operation;
suspending execution of non-critical DSN operations; and
prioritizing execution of the outstanding action.

### Claim 9 (depends on 8)

The computer readable storage device of claim 8, wherein the devices comprise:
the set of storage units; and
one or more dispersed storage (DS) processing units.

### Claim 10 (depends on 8)

The computer readable storage device of claim 8 further comprises:
a third memory section for storing operational instructions that, when executed by a storage unit of the set of storage units as one of the devices of the dispersed storage network (DSN), causes the storage unit to determine the DSN memory operation is at the critical juncture by:
receiving a message indicated the DSN memory operation is at the critical juncture.

### Claim 11 (depends on 8)

The computer readable storage device of claim 8 further comprises:
a fourth memory section for storing operational instructions that, when executed by a dispersed storage (DS) processing unit of the dispersed storage network (DSN), causes the dispersed storage (DS) processing unit to determine the DSN memory operation is at the critical juncture by:
receiving data read responses from some of the set of storage units, wherein the DSN memory operation is a read operation; and
when the number of data read responses is equal to the decode threshold number less the first offset, indicating the DSN memory operation is in the critical juncture.

### Claim 12 (depends on 8)

The computer readable storage device of claim 8 further comprises:
a fourth memory section for storing operational instructions that, when executed by a dispersed storage (DS) processing unit of the dispersed storage network (DSN), causes the dispersed storage (DS) processing unit to determine the DSN memory operation is at the critical juncture by:
receiving data write responses from some of the set of storage units, wherein the DSN memory operation is a write operation; and
when the number of data write responses is equal to the write threshold number less the second offset, indicating the DSN memory operation is in the critical juncture.

### Claim 13 (depends on 8)

The computer readable storage device of claim 8, wherein the non-critical DSN operations comprises one or more of:
lower priority DSN memory operations;
garbage collection;
disk rebalancing;
bin file compaction;
thread dumps; and
rebuilding.

### Claim 14 (depends on 8)

The computer readable storage device of claim 8, further comprises:
a fifth memory section for storing operational instructions that, when executed by one or more of the devices of a dispersed storage network (DSN), causes the one or more of the devices to:
after execution of the outstanding action, resume the execution of the non-critical DSN operations.
