IP Library Granted Patent US 10,402,270
Granted Patent B2
US 10,402,270 · App. 15/804,424 · Granted Sep 3, 2019

Deterministically determining affinity for a source name range

Inventors: Jason K. Resch (Chicago, IL); Greg R. Dhuse (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F11/1092G06F3/064G06F3/065G06F3/067G06F3/0619G06F11/1076G06F3/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,402,270
App. No.
15/804,424
Granted
Sep 3, 2019
Kind
B2
Abstract

Systems and methods for storing encoded data slices in a dispersed storage network (DSN) involve receiving a write data object request, determining a source name for the data object, identifying a source name range corresponding to the source name, and identifying a storage pattern associated with the source name range. Based on the source name range, a set of DS units can be identified as affinity DS units that correspond to the storage pattern. The data object is encoded to produce encoded affinity data slices which are output to the affinity DS units. A determination is made that an encoded data slice was improperly stored. One or more other encoded data slices corresponding to the data object may then be output to one or more DS units of the set of units other than the affinity DS units.

Claims (58)

1. A method of storing a data object in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage (DS) units, the method comprising:

receiving a write data object request;

determining a source name for the data object;

identifying a source name range corresponding to the source name;

identifying a storage pattern associated with the source name range;

identifying a set of DS units of the plurality of DS units corresponding to the source name;

identifying affinity DS units of the set of DS units that correspond to the storage pattern;

encoding the data object to produce encoded affinity data slices;

outputting the encoded affinity data slices to the affinity DS units;

determining an encoded affinity data slice of the encoded affinity data slices was improperly stored; and

outputting another encoded data slice corresponding to the data object to a DS unit of the set of DS units other than one of the affinity DS units.

2. The method of claim 1 , wherein the data object includes a data name.

3. The method of claim 2 , wherein the source name is based on the data name.

4. The method of claim 1 , wherein the step of identifying the storage pattern associated with the source name range includes identifying the storage pattern from a list of storage patterns associated with the source name range.

5. The method of claim 1 , wherein the data object is a data segment.

6. The method of claim 1 , wherein the step of determining the encoded affinity data slice of the encoded affinity data slices was improperly stored includes determining the encoded affinity data slice was not stored within a time period.

7. The method of claim 1 , wherein the step of determining the encoded affinity data slice of the encoded affinity data slices was improperly stored includes determining an error has occurred.

8. A dispersed storage processing unit for storing a data object in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage (DS) units, the dispersed storage processing unit comprising:

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

receive a write data object request;

determine a source name for the data object;

identify a source name range corresponding to the source name;

identify a storage pattern associated with the source name range;

identify a set of DS units of the plurality of DS units corresponding to the source name;

identify affinity DS units of the set of DS units that correspond to the storage pattern;

encode the data object to produce encoded affinity data slices;

output the encoded affinity data slices to the affinity DS units;

determine an encoded affinity data slice of the encoded affinity data slices was improperly stored; and

output another encoded data slice corresponding to the data object to a DS unit of the set of DS units other than one of the affinity DS units.

9. The dispersed storage processing unit of claim 8 , wherein the data object includes a data name.

10. The dispersed storage processing unit of claim 9 , wherein the source name is based on the data name.

11. The dispersed storage processing unit of claim 8 , wherein the memory includes instructions for further causing the computer processor to identify the storage pattern from a list of storage patterns associated with the source name range.

12. The dispersed storage processing unit of claim 8 , wherein the data object is a data segment.

13. The dispersed storage processing unit of claim 8 , wherein the memory includes instructions for further causing the computer processor to determine the encoded affinity data slice was not stored within a time period.

14. The dispersed storage processing unit of claim 8 , wherein the memory includes instructions for further causing the computer processor to determine an error has occurred.

15. A dispersed storage network comprising:

a plurality of dispersed storage (DS) units;

a dispersed storage processing unit for storing a data object in the dispersed storage network including:

a memory; and

a computer processor;

where the memory includes instructions for causing the computer processor to:

receive a write data object request;

determine a source name for the data object;

identify a source name range corresponding to the source name;

identify a storage pattern associated with the source name range;

identify a set of DS units of the plurality of DS units corresponding to the source name;

identify affinity DS units of the set of DS units that correspond to the storage pattern;

encode the data object to produce encoded affinity data slices;

output the encoded affinity data slices to the affinity DS units;

determine an encoded affinity data slice of the encoded affinity data slices was improperly stored; and

output another encoded data slice corresponding to the data object to a DS unit of the set of DS units other than one of the affinity DS units.

16. The dispersed storage network of claim 15 , wherein the data object includes a data name.

17. The dispersed storage network of claim 16 , wherein the source name is based on the data name.

18. The dispersed storage network of claim 15 , wherein the memory includes instructions for further causing the computer processor to identify the storage pattern from a list of storage patterns associated with the source name range.

19. The dispersed storage network of claim 15 , wherein the memory includes instructions for further causing the computer processor to determine the encoded affinity data slice was not stored within a time period.

20. The dispersed storage network of claim 15 , wherein the memory includes instructions for further causing the computer processor to determine an error has occurred.

Assignments (4)
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 Nov 6, 2017
From: RESCH, JASON K.; DHUSE, GREG R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044041/0950 →
Continuity (4)
Continuation In Part 15405004 · Jan 12, 2017
Continuation 14088897 · Nov 25, 2013
Provisional Application 61748916 · Jan 4, 2013
Related Publication 20180060173A1 · Mar 1, 2018