IP Library Granted Patent US 10,324,623
Granted Patent B2
US 10,324,623 · App. 15/405,004 · Granted Jun 18, 2019

Mapping storage of data in a dispersed storage network

Inventors: Jason K. Resch (Chicago, IL); Greg Dhuse (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0604G06F3/064G06F3/067G06F3/0629G06F3/0644G06F11/1076G06F11/1092G06F3/0619G06F3/0643G06F2211/1028
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,324,623
App. No.
15/405,004
Granted
Jun 18, 2019
Kind
B2
Abstract

A method includes encoding a data segment of a data object into a set of encoded data slices. The set of encoded data slices includes “n” number of encoded data slices. The method further includes generating a set of slice names for the set of encoded data slices. The method further includes selecting “m” encoded data slices of the set of encoded data slices to output for storage in DSN memory. The method further includes selecting “m” storage units of “p” storage units of the DSN memory for storing the “m” encoded data slices. The method further includes mapping “m” slice names of the “m” encoded data slices to DSN addresses of the “m” storage units to create mapped slice names. The method further includes outputting, in accordance with the mapped slice names, the “m” encoded data slices to the “m” storage units for storage therein.

Claims (61)

1. A method for execution by a computing device of a dispersed storage network (DSN), the method comprises:

encoding a data segment of a data object into a set of encoded data slices, wherein the set of encoded data slices includes “n” number of encoded data slices;

generating a set of slice names for the set of encoded data slices;

selecting “m” encoded data slices of the set of encoded data slices to output for storage in DSN memory, wherein “m” is less than “n” and wherein “m” is equal to or greater than a decode threshold;

selecting “m” storage units of “p” storage units of the DSN memory for storing the “m” encoded data slices;

mapping “m” slice names of the “m” encoded data slices to DSN addresses of the “m” storage units to create mapped slice names, wherein the mapping of the “m” slice names to DSN addresses of the “m” storage units includes accessing a storage selection table, wherein the storage selection table includes a DSN address range field, a target set field, and a plurality of target slice fields, wherein a target slice field of the plurality of target slice fields links an encoded data slice of the set of encoded data slices to a particular storage unit of the “m” storage units; and

outputting, in accordance with the mapped slice names, the “m” encoded data slices to the “m” storage units for storage therein.

2. The method of claim 1 , wherein the selecting the “m” storage units comprises:

identifying at least some of the “p” storage units that each have a DSN address range that includes a DSN address that is associated with a source name of the set of slice names; and

selecting the “m” storage units from the at least some of the “p” storage units.

3. The method of claim 1 further comprises:

determining that an encoded data slice of the “m” encoded data slices was not successfully stored by a storage unit of the “m” storage units;

identifying another encoded data slice of the “n” encoded data slices that was not part of the “m” encoded data slices;

mapping a slice name of the other encoded data slice to the DSN address of the storage unit; and

outputting the encoded data slice to the storage unit for storage therein.

4. The method of claim 1 further comprises:

encoding a first set of data segments of the data object into first sets of encoded data slices, wherein each of the first sets of encoded data slices includes “n” number of encoded data slices;

generating first sets of slice names for the first sets of encoded data slices;

selecting “m” encoded data slices of each set of the first sets of encoded data slices to output for storage in DSN memory, wherein “m” is less than “n” and wherein “m” is equal to or greater than a decode threshold;

selecting the “m” storage units of “p” storage units of the DSN memory for storing the “m” encoded data slices of each set of the first set of encoded data slices;

mapping “m” slice names of each set of the first set of slice names that correspond to the “m” encoded data slices of each set of the first sets of encoded data slices to DSN addresses of the “m” storage units to create mapped slice names; and

outputting, in accordance with the mapped slice names, the “m” encoded data slices of each set of the first sets of encoded data slices to the “m” storage units for storage therein.

5. The method of claim 4 further comprises:

encoding a second set of data segments of the data object into second sets of encoded data slices, wherein each of the second sets of encoded data slices includes the “n” number of encoded data slices;

generating second sets of slice names for the second sets of encoded data slices;

selecting “x” encoded data slices of each set of the second sets of encoded data slices to output for storage in DSN memory, wherein “x” is less than “n” and wherein “x” is equal to or greater than a decode threshold;

selecting “x” storage units of the “p” storage units of the DSN memory for storing the “x” encoded data slices of each set of the second set of encoded data slices;

mapping “x” slice names of each set of the second set of slice names that correspond to the “x” encoded data slices of each set of the second sets of encoded data slices to DSN addresses of the “x” storage units to create mapped slice names; and

outputting, in accordance with the mapped slice names, the “x” encoded data slices of each set of the second sets of encoded data slices to the “x” storage units for storage therein.

6. A computing device of a dispersed storage network (DSN), the computing device comprises:

an interface;

memory; and

a processing module operably coupled to the interface and to the memory, wherein the processing module is operable to:

encode a data segment of a data object into a set of encoded data slices, wherein the set of encoded data slices includes “n” number of encoded data slices;

generate a set of slice names for the set of encoded data slices;

select “m” encoded data slices of the set of encoded data slices to output for storage in DSN memory, wherein “m” is less than “n” and wherein “m” is equal to or greater than a decode threshold;

select “m” storage units of “p” storage units of the DSN memory for storing the “m” encoded data slices;

map “m” slice names of the “m” encoded data slices to DSN addresses of the “m” storage units to create mapped slice names, wherein the mapping of the “m” slice names to DSN addresses of the “m” storage units includes accessing a storage selection table, wherein the storage selection table includes a DSN address range field, a target set field, and a plurality of target slice fields, wherein a target slice field of the plurality of target slice fields links an encoded data slice of the set of encoded data slices to a particular storage unit of the “m” storage units; and

output, in accordance with the mapped slice names, the “m” encoded data slices to the “m” storage units for storage therein.

7. The computing device of claim 6 , wherein the processing module is further operable to select the “m” storage units by:

identifying at least some of the “p” storage units that each have a DSN address range that includes a DSN address that is associated with a source name of the set of slice names; and

selecting the “m” storage units from the at least some of the “p” storage units.

8. The computing device of claim 6 , wherein the processing module is further operable to:

determine that an encoded data slice of the “m” encoded data slices was not successfully stored by a storage unit of the “m” storage units;

identify another encoded data slice of the “n” encoded data slices that was not part of the “m” encoded data slices;

map a slice name of the other encoded data slice to the DSN address of the storage unit; and

output the encoded data slice to the storage unit for storage therein.

9. The computing device of claim 6 , wherein the processing module is further operable to:

encode a first set of data segments of the data object into first sets of encoded data slices, wherein each of the first sets of encoded data slices includes “n” number of encoded data slices;

generate first sets of slice names for the first sets of encoded data slices;

select “m” encoded data slices of each set of the first sets of encoded data slices to output for storage in DSN memory, wherein “m” is less than “n” and wherein “m” is equal to or greater than a decode threshold;

select the “m” storage units of “p” storage units of the DSN memory for storing the “m” encoded data slices of each set of the first set of encoded data slices;

map “m” slice names of each set of the first set of slice names that correspond to the “m” encoded data slices of each set of the first sets of encoded data slices to DSN addresses of the “m” storage units to create mapped slice names; and

output, in accordance with the mapped slice names, the “m” encoded data slices of each set of the first sets of encoded data slices to the “m” storage units for storage therein.

10. The computing device of claim 9 , wherein the processing module is further operable to:

encode a second set of data segments of the data object into second sets of encoded data slices, wherein each of the second sets of encoded data slices includes the “n” number of encoded data slices;

generate second sets of slice names for the second sets of encoded data slices;

selecting “x” encoded data slices of each set of the second sets of encoded data slices to output for storage in DSN memory, wherein “x” is less than “n” and wherein “x” is equal to or greater than a decode threshold;

select “x” storage units of the “p” storage units of the DSN memory for storing the “x” encoded data slices of each set of the second set of encoded data slices;

map “x” slice names of each set of the second set of slice names that correspond to the “x” encoded data slices of each set of the second sets of encoded data slices to DSN addresses of the “x” storage units to create mapped slice names; and

output, in accordance with the mapped slice names, the “x” encoded data slices of each set of the second sets of encoded data slices to the “x” storage units for storage therein.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041372/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: RESCH, JASON K.; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 040970/0828 →
Continuity (3)
Continuation 14088897 · Nov 25, 2013
Provisional Application 61748916 · Jan 4, 2013
Related Publication 20170123669A1 · May 4, 2017
Cited By (1)
US 12,619,353