IP Library Granted Patent US 9,110,834
Granted Patent B2
US 9,110,834 · App. 14/480,945 · Granted Aug 18, 2015

Utilizing local memory and dispersed storage memory to access encoded data slices

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 9,110,834
App. No.
14/480,945
Granted
Aug 18, 2015
Kind
B2
Abstract

A method begins by a processing module establishing a dispersed storage (DS) error coding function based on a number of local memories associated with the computing device, wherein a decode threshold number of the DS error coding function corresponds to the number of local memories. The method continues with the processing module encoding a data segment of data utilizing the DS error coding function to produce a set of encoded data slices, of which the decode threshold number of encoded data slices is required to recover the data and the set of encoded data slices includes a pillar width number of encoded data slices. The method continues with the processing module storing the decode threshold number of encoded data slices in the local memories and outputting a remaining number of encoded data slices of the set of encoded data slices to the dispersed storage network (DSN) memory for storage therein.

Claims (82)

1. A method for execution by a computing device, the method comprises:

establishing a dispersed storage error coding function based on a number of local memories associated with the computing device, wherein a decode threshold number of the dispersed storage error coding function corresponds to the number of local memories;

encoding a data segment of data utilizing the dispersed storage error coding function to produce a set of encoded data slices, wherein the decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data and wherein the set of encoded data slices includes a pillar width number of encoded data slices;

storing the decode threshold number of encoded data slices in the local memories; and

outputting a remaining number of encoded data slices of the set of encoded data slices to dispersed storage network (DSN) memory for storage therein, wherein the remaining number is based on a difference between the pillar width number and the decode threshold number.

2. The method of claim 1 further comprises:

determining the number of local memories based on one or more of:

internal memory devices within the computing device;

determining a number of the internal memory devices that are available for storing encoded data slices;

external memory devices available to the computing device with a local area network; and

determining a number of the external memory devices that are available for storing encoded data slices.

3. The method of claim 1 , wherein the outputting the remaining number of encoded data slices further comprises:

sending the remaining number of encoded data slices to a dispersed storage (DS) processing unit; or

sending the data segment and the remaining number of encoded data slices, wherein the DS processing unit:

encodes the data segment utilizing the dispersed storage error coding function to produce another set of encoded data slices;

identifies the remaining number of encoded data slices from the other set of encoded data slices based on the remaining number; and

outputs the remaining number of encoded data slices to the DSN memory; and

updating an encoded data slice mapping.

4. The method of claim 1 , wherein the storing the decode threshold number of encoded data slices comprises:

issuing a number of write requests to the local memories for the decode threshold number of encoded data slices.

5. The method of claim 1 further comprises:

encoding another data segment of data utilizing the dispersed storage error coding function to produce another set of encoded data slices;

storing the decode threshold number of the other encoded data slices in the local memories; and

outputting the remaining number of encoded data slices of the other set of encoded data slices to dispersed storage network (DSN) memory for storage therein.

6. A computing device comprises:

an interface;

memory;

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

establish a dispersed storage error coding function based on a number of local memories associated with the computing device, wherein a decode threshold number of the dispersed storage error coding function corresponds to the number of local memories;

encode a data segment of data utilizing the dispersed storage error coding function to produce a set of encoded data slices, wherein the decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data and wherein the set of encoded data slices includes a pillar width number of encoded data slices;

store the decode threshold number of encoded data slices in the local memories; and

output a remaining number of encoded data slices of the set of encoded data slices to dispersed storage network (DSN) memory for storage therein, wherein the remaining number is based on a difference between the pillar width number and the decode threshold number.

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

determine the number of local memories based on one or more of:

internal memory devices within the computing device;

determining a number of the internal memory devices that are available for storing encoded data slices;

external memory devices available to the computing device with a local area network; and

determining a number of the external memory devices that are available for storing encoded data slices.

8. The computing device of claim 6 , wherein the processing module in the outputting the remaining number of encoded data slices further functions to:

send the remaining number of encoded data slices to a dispersed storage (DS) processing unit; or

send the data segment and the remaining number of encoded data slices, wherein the DS processing unit:

encodes the data segment utilizing the dispersed storage error coding function to produce another set of encoded data slices;

identifies the remaining number of encoded data slices from the other set of encoded data slices based on the remaining number; and

outputs the remaining number of encoded data slices to the DSN memory; and

update an encoded data slice mapping.

9. The computing device of claim 6 , wherein the processing module in the storing the decode threshold number of encoded data slices further functions to:

issue a number of write requests to the local memories for the decode threshold number of encoded data slices.

10. The computing device of claim 6 , wherein the processing module further functions to:

encode another data segment of data utilizing the dispersed storage error coding function to produce another set of encoded data slices;

store the other decode threshold number of the other encoded data slices in the local memories; and

output another remaining number of encoded data slices of the set of encoded data slices to dispersed storage network (DSN) memory for storage therein, wherein the other remaining number is based on a difference between the pillar width number and the decode threshold number.

11. A non-transitory computer readable storage device comprises:

a first memory section storing operational instructions that, when executed by a computing device, causes the computing device to:

establish a dispersed storage error coding function based on a number of local memories associated with the computing device, wherein a decode threshold number of the dispersed storage error coding function corresponds to the number of local memories;

a second memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

encode a data segment of data utilizing the dispersed storage error coding function to produce a set of encoded data slices, wherein the decode threshold number of encoded data slices of the set of encoded data slices are required to recover the data and wherein the set of encoded data slices includes a pillar width number of encoded data slices;

a third memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

store the decode threshold number of encoded data slices in the local memories; and

a fourth memory section storing operational instructions that, when executed by the computing device, causes the computing device to:

output a remaining number of encoded data slices of the set of encoded data slices to dispersed storage network (DSN) memory for storage therein, wherein the remaining number is based on a difference between the pillar width number and the decode threshold number.

12. The non-transitory computer readable storage device of claim 11 , wherein the first memory section further stores operational instructions that, when executed by the computing device, causes the computing device to:

determine the number of local memories based on one or more of:

internal memory devices within the computing device;

determining a number of the internal memory devices that are available for storing encoded data slices;

external memory devices available to the computing device with a local area network; and

determining a number of the external memory devices that are available for storing encoded data slices.

13. The non-transitory computer readable storage device of claim 11 further comprises:

the fourth memory section stores further operational instructions that, when executed by the computing device, causes the computing device to:

send the remaining number of encoded data slices to a dispersed storage (DS) processing unit; or

send the data segment and the remaining number of encoded data slices to the DS processing unit;

a fifth memory section that stores operational instructions that, when executed by the DS processing unit, causes the DS processing unit to:

encode the data segment utilizing the dispersed storage error coding function to produce another set of encoded data slices;

identify the remaining number of encoded data slices from the other set of encoded data slices based on the remaining number; and

output the remaining number of encoded data slices to the DSN memory; and

a sixth memory section stores further operational instructions that, when executed by the computing device, causes the computing device to:

update an encoded data slice mapping.

14. The non-transitory computer readable storage device of claim 11 wherein the third memory section stores further operational instructions that, when executed by the computing device, causes the computing device to:

issue a number of write requests to the local memories for the decode threshold number of encoded data slices.

15. The non-transitory computer readable storage device of claim 11 further comprises:

the second memory section stores further operational instructions that, when executed by the computing device, causes the computing device to encode another data segment of data utilizing the dispersed storage error coding function to produce another set of encoded data slices;

the third memory section stores further operational instructions that, when executed by the computing device, causes the computing device to store the other decode threshold number of the other encoded data slices in the local memories; and

the fourth memory section stores further operational instructions that, when executed by the computing device, causes the computing device to output another remaining number of encoded data slices of the set of encoded data slices to dispersed storage network (DSN) memory for storage therein, wherein the other remaining number is based on a difference between the pillar width number and the decode threshold number.

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 →
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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →