IP Library Granted Patent US 10,275,161
Granted Patent B2
US 10,275,161 · App. 15/627,529 · Granted Apr 30, 2019

Distributed storage network for storing a data object based on storage requirements

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,275,161
App. No.
15/627,529
Granted
Apr 30, 2019
Kind
B2
Abstract

A distributed storage network (DSN) includes a user device and a plurality of DSN memories, wherein each of the DSN memories includes a plurality of storage units. The user device includes at least one network interface to the plurality of DSN memories and at least one processing module that is operable to determine one of the plurality of DSN memories for storing a data object based on a comparison of one or more storage requirements of the data object and one or more DSN attributes of the plurality of DSN memories.

Claims (66)

1. A user device in a distributed storage network (DSN), comprises:

at least one network interface to the distributed storage network; and

at least one processing module that includes circuitry configured to:

determine to store a data object comprising a plurality of data segments;

determine one or more storage requirements for storing the data object in one of a plurality of DSN memories in the distributed storage network;

determine one or more DSN attributes associated with each of the plurality of DSN memories;

select one of the plurality of DSN memories to produce a selected DSN memory in response to a weighted comparison of the one or more storage requirements of the data object with the one or more DSN attributes for the selected DSN memory;

select one of a plurality of DSN processing units to produce a selected DSN processing unit;

transmit, via the at least one network interface, a store request message to the selected DSN processing unit to generate a plurality of encoded data slices using an error encoding dispersal function, where the error encoding dispersal function includes at least an error encoding scheme and an information dispersal algorithm represented as X/T, where the data segments are divided into pillars of X number of slices, where T number of slices are needed to reconstruct the data object, by encoding the plurality of data segments using the error encoding dispersal function to generate a plurality of encoded data segments, wherein the encoding the plurality of data segments using the error encoding dispersal function to generate one of the plurality of encoded data segments includes:

arranging data blocks of the plurality of data segments into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging the data blocks of the encoded data matrix to generate the plurality of encoded data segments; and

interleaving each of the plurality of encoded data segments into the plurality of encoded data slices; and

transmit, via the at least one network interface, the plurality of encoded data slices to the selected DSN memory.

2. The user device of claim 1 , wherein the processing module is further operable to:

determine a priority level of the data object; and

access resource that includes storage requirements for the priority level of the data object.

3. The user device of claim 2 , wherein a first storage requirement of the one or more storage requirements has a first higher priority level and a second storage requirement of the one or more storage requirements has a second lower priority level.

4. The user device of claim 3 , wherein the processing module is further operable to:

allocate a greater weight to a first favorable comparison between a first DSN attribute and the first storage requirement with the first higher priority level; and

allocate a lesser weight to a second favorable comparison between a second DSN attribute and the second storage requirement with the second lower priority level.

5. The user device of claim 1 , wherein the one or more DSN attributes includes one or more of the following: cost, geographic location, geographic diversity, performance, reliability, latency, capacity, load or availability.

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

transmit, via the at least one network interface, an address update message to a DS managing unit to update a user vault with the selected DSN memory for the data object.

7. A method for use in a user device of a distributed storage network (DSN), the method comprises:

determining, via a system that includes processing circuitry, to store a data object comprising a plurality of data segments;

determining, via the system, one or more storage requirements for storing the data object in one of a plurality of DSN memories in the distributed storage network;

determining, via the system, one or more DSN attributes associated with each of the plurality of DSN memories;

selecting, via the system, one of the plurality of DSN memories to produce a selected DSN memory in response to a weighted comparison of the one or more storage requirements of the data object with the one or more DSN attributes for the selected DSN memory;

selecting, via the system, one of a plurality of DSN processing units to produce a selected DSN processing unit;

transmitting, via at least one network interface, a store request message to the selected DSN processing unit to generate a plurality of encoded data slices using an error encoding dispersal function, where the error encoding dispersal function includes at least an error encoding scheme and an information dispersal algorithm represented as X/T, where the data segments are divided into pillars of X number of slices, where T number of slices are needed to reconstruct the data object, by encoding the plurality of data segments using the error encoding dispersal function to generate a plurality of encoded data segments, wherein the encoding the plurality of data segments using the error encoding dispersal function to generate one of the plurality of encoded data segments includes:

arranging data blocks of the plurality of data segments into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging the data blocks of the encoded data matrix to generate the plurality of encoded data segments; and

interleaving each of the plurality of encoded data segments into the plurality of encoded data slices; and

transmitting, via the at least one network interface, the plurality of encoded data slices to the selected DSN memory.

8. The method of claim 7 , further comprising:

determining a priority level of the data object; and

accessing a resource that includes storage requirements for the priority level of the data object.

9. The method of claim 8 , wherein a first storage requirement of the one or more storage requirements has a first higher priority level and a second storage requirement of the one or more storage requirements has a second lower priority level.

10. The method of claim 9 , further comprising:

allocating, via the system, a greater weight to a first favorable comparison between a first DSN attribute and the first storage requirement with the first higher priority level; and

allocating, via the system, a lesser weight to a second favorable comparison between a second DSN attribute and the second storage requirement with the second lower priority level.

11. The method of claim 10 , wherein the one or more DSN attributes includes one or more of the following: cost, geographic location, geographic diversity, performance, reliability, latency, capacity, load or availability.

12. The method of claim 7 , further comprising:

transmitting, via the at least one network interface, an address update message to a DS managing unit to update a user vault with the selected DSN memory for the data object.

13. A non-transitory storage medium for use in a user device of a distributed storage network (DSN), that stores instructions, when executed by processing circuitry, that configure the processing circuitry to:

determine to store a data object comprising a plurality of data segments;

determine one or more storage requirements for storing the data object in one of a plurality of DSN memories in the distributed storage network;

determine one or more DSN attributes associated with each of the plurality of DSN memories;

select one of the plurality of DSN memories to produce a selected DSN memory in response to a weighted comparison of the one or more storage requirements of the data object with the one or more DSN attributes for the selected DSN memory;

select one of a plurality of DSN processing units to produce a selected DSN processing unit;

transmit, via at least one network interface, a store request message to the selected DSN processing unit to generate a plurality of encoded data slices using an error encoding dispersal function, where the error encoding dispersal function includes at least an error encoding scheme and an information dispersal algorithm represented as X/T, where the data segments are divided into pillars of X number of slices, where T number of slices are needed to reconstruct the data object, by encoding the plurality of data segments using the error encoding dispersal function to generate a plurality of encoded data segments, wherein the encoding the plurality of data segments using the error encoding dispersal function to generate one of the plurality of encoded data segments includes:

arranging data blocks of the plurality of data segments into a data matrix;

generating an encoded data matrix based on the data matrix and an encoding matrix; and

arranging the data blocks of the encoded data matrix to generate the plurality of encoded data segments; and

interleaving each of the plurality of encoded data segments into the plurality of encoded data slices; and

transmit, via the at least one network interface, the plurality of encoded data slices to the selected DSN memory.

14. The non-transitory storage medium of claim 13 , wherein the instructions, when executed by processing circuitry, further configure the processing circuitry to:

determine a priority level of the data object; and

access a resource that includes storage requirements for the priority level of the data object.

15. The non-transitory storage medium of claim 14 , wherein a first storage requirement of the one or more storage requirements has a first higher priority level and a second storage requirement of the one or more storage requirements has a second lower priority level.

16. The non-transitory storage medium of claim 15 , wherein the instructions, when executed by processing circuitry, further configure the processing circuitry to:

allocate a greater weight to a first favorable comparison between a first DSN attribute and the first storage requirement with the first higher priority level; and

allocate a lesser weight to a second favorable comparison between a second DSN attribute and the second storage requirement with the second lower priority level.

17. The non-transitory storage medium of claim 16 , wherein the one or more DSN attributes includes one or more of the following: cost, geographic location, geographic diversity, performance, reliability, latency, capacity, load or availability.

Assignments (6)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2017
From: RESCH, JASON K.; LEGGETTE, WESLEY; GLADWIN, S. CHRISTOPHER; DHUSE, GREG; BAPTIST, ANDREW
To: CLEVERSAFE, INC.
Reel/Frame 042754/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042903/0166 →
Cited By (1)
US 12,314,413