# US 12,222,812 B2 · Dynamic storage of encoded data slices in multiple vaults

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

- Number: US 12,222,812 B2
- Document ID: US12222812B2
- Status: Granted
- Kind: B2
- Application number: 18/333,780
- Filed: 2023-06-13
- Published: 2023-10-19
- Granted: 2025-02-11
- Earliest claimed: 2015-01-30
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: S. Christopher Gladwin
- Web page: https://patentgrep.com/patent/US12222812B2

## CPC

- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for execution by one or more computing devices of a storage network includes error encoding data into a set of encoded data slices. The method further includes storing the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters. The method further includes initiating storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters. When a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, the method further includes deleting one or more encoded data slices of the set of encoded data slices stored in the first vault.

## Claims

### Claim 1

A method for execution by one or more computing devices of a storage network, the method comprises:
error encoding data into a set of encoded data slices;
storing the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters;
initiating storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters; and
when a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, deleting one or more encoded data slices of the set of encoded data slices stored in the first vault.

### Claim 2 (depends on 1)

The method of claim 1 further comprises:
receiving, from a requesting computing device, a request for the data;
facilitating retrieval of the data by:
obtaining at least some of encoded data slices of the set of encoded data slices in the first vault; and
when a first number of the at least some of the encoded data slices is less than the decode threshold number, obtaining a threshold number of other encoded data slices of the set of encoded data slices stored in the second vault, wherein the threshold number is greater than or equal to a difference between the decode threshold number and the first number.

### Claim 3 (depends on 2)

The method of claim 2 further comprises:
decoding the obtained encoded data slices to recover the data; and
sending the data to the requesting computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first vault includes memory of a first memory type and the second vault includes memory of a second memory type.

### Claim 5 (depends on 4)

The method of claim 4, wherein a memory type of the first and second memory types comprises one of:
a solid state memory; and
a magnetic disk memory.

### Claim 6 (depends on 4)

The method of claim 4, wherein the memory type comprises one of:
a local memory; and
a geographically diverse memory.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first storage units are affiliated with first storage characteristics and the second storage units are affiliated with second storage characteristics.

### Claim 8 (depends on 7)

The method of claim 7, wherein a storage characteristic of the first and second storage characteristics comprises a memory type.

### Claim 9 (depends on 7)

The method of claim 7, wherein a storage characteristic of the first and second storage characteristics comprises a storage performance level.

### Claim 10 (depends on 7)

The method of claim 7, wherein a storage characteristic of the first and second storage characteristics comprises a storage reliability level.

### Claim 11 (depends on 7)

The method of claim 7, wherein a storage characteristic of the first and second storage characteristics comprises a storage availability level.

### Claim 12 (depends on 7)

The method of claim 7, wherein a storage characteristic of the first and second storage characteristics comprises a communication link data rate.

### Claim 13 (depends on 1)

The method of claim 1, wherein an error encoding parameter of the first and second error encoded parameters comprises an information dispersal algorithm width.

### Claim 14 (depends on 1)

The method of claim 1, wherein an error encoding parameter of the first and second error encoded parameters comprises an encoding matrix.

### Claim 15 (depends on 1)

The method of claim 1, wherein an error encoding parameter of the first and second error encoded parameters comprises an error coding function identifier.

### Claim 16 (depends on 1)

The method of claim 1, wherein an error encoding parameter of the first and second error encoded parameters comprises a write threshold number.

### Claim 17

A non-transitory computer readable storage medium comprises:
at least one memory section for storing operational instructions that, when executed by one or more computing devices of a storage network, cause the one or more computing devices to:
error encode data into a set of encoded data slices;
store the set of encoded data slices in first storage units of a first vault in accordance with first error encoding parameters;
initiate storage of the set of encoded data slices in second storage units of a second vault in accordance with second error encoding parameters; and
when a decode threshold number of encoded data slices of the set of encoded data slices are stored in the second vault, delete one or more encoded data slices of the set of encoded data slices stored in the first vault.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:
receive, from a requesting computing device, a request for the data; and
facilitate retrieval of the data by:
obtaining at least some of encoded data slices of the set of encoded data slices in the first vault; and
when a first number of the at least some of the encoded data slices is less than the decode threshold number, obtaining a threshold number of other encoded data slices of the set of encoded data slices stored in the second vault, wherein the threshold number is greater than or equal to a difference between the decode threshold number and the first number.

### Claim 19 (depends on 18)

The non-transitory computer readable storage medium of claim 18, wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:
decode the obtained encoded data slices to recover the data; and
send the data to the requesting computing device.

### Claim 20 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the at least one memory section stores further operational instructions that, when executed by the one or more computing devices, cause the one or more computing devices to:
determine the first vault includes memory of a first memory type and the second vault includes memory of a second memory type.
