IP Library Granted Patent US 10,481,978
Granted Patent B2
US 10,481,978 · App. 15/402,551 · Granted Nov 19, 2019

Optimal slice encoding strategies within a dispersed storage unit

Inventor: Jason K. Resch (Chicago, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/1076G06F3/061G06F3/064G06F3/0604G06F3/067G06F3/0619G06F3/0631G06F3/0635G06F3/0644G06F3/0647G06F3/0653G06F3/0659G06F11/1092G06F11/1662G06F11/3684G06F11/3688G06F11/3692H03M13/1515H03M13/616H04L67/1097G06F2201/805G06F2201/82H03M13/373
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,481,978
App. No.
15/402,551
Granted
Nov 19, 2019
Kind
B2
Abstract

A method for storing data in a plurality of dispersed storage units of a dispersed storage network (DSN) includes receiving an encoded data slice at a first dispersed storage unit of the DSN and determining whether to apply an additional encoding operation to the encoded data slice based on on information relating to the encoded data slice, the storage vault and an underlying memory device. The method continues with the first dispersed storage unit applying the additional encoding operation to create a modified first encoded first encoded data slice and marking the modified first encoded data slice to identify the additional encoding operation used.

Claims (40)

1. A method for storing data in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage units comprising:

receiving a first encoded data slice at a first dispersed storage unit of the plurality of dispersed storage units;

determining, by the first dispersed storage unit, whether to apply a first additional encoding operation to the first encoded data slice, wherein the determining is based on information relating to at least one of the first encoded data slice, a vault, or an underlying memory device, and

applying the first additional encoding operation to create a modified first encoded data slice, wherein the applying the first additional encoding operation includes marking the modified first encoded data slice with information sufficient to identify the first additional encoding operation.

2. The method of claim 1 wherein the information relating to at least one of the first encoded data slice, a vault or an underlying memory device includes at least one of a vault ID, a requesting entity ID, a data type indicator, a data size indicator, the first encoded data slice name, an analysis of the first encoded data slice, a local memory type indicator, a level of available processing resources.

3. The method of claim 1 wherein the first additional encoding operation includes at least one of compression encoding, encryption encoding and data slice meta data encoding.

4. The method of claim 1 further including:

determining by the first dispersed storage unit whether to apply a second additional encoding operation to the modified first encoded data slice;

in response to a determination to apply the second additional encoding operation to the modified first encoded data slice, applying the second additional encoding operation to the modified first encoded data slice to create a twice modified first encoded data slice; and

marking the twice modified first encoded data slice with information sufficient to identify the second additional encoding operation and information sufficient to identify an order in which the first additional encoding operation and second additional encoding operation were applied.

5. The method of claim 4 wherein the determining whether to apply the second additional encoding operation to the modified first encoded data slice is further based on information regarding the first additional encoding operation applied to the first encoded data slice.

6. The method of claim 1 wherein determining by the first dispersed storage unit whether to apply the first additional encoding operation to the first encoded data slice includes determining whether to apply compression coding based on storage gains for the first dispersed storage unit and CPU cycle costs to the first dispersed storage unit.

7. The method of claim 1 wherein determining by the first dispersed storage unit whether to apply the first additional encoding operation to the first encoded data slice includes determining whether to apply encryption encoding based on whether or not the first encoded data slice is already encrypted.

8. The method of claim 1 wherein determining by the first dispersed storage unit whether to apply the first additional encoding operation to the first encoded data slice includes determining whether to apply meta-data encoding based on whether meta-data is already stored for the data slice in the first dispersed storage unit.

9. The method of claim 4 further including

storing the twice modified first encoded data slice in the first dispersed storage unit;

receiving a request to read the twice modified first encoded data slice from the first dispersed storage unit; and

in response to the request, decoding the first additional encoding and second additional encoding based on the first additional encoding operation applied to the first encoded data slice and second additional encoding operation applied to the modified first encoded data slice and based on the order in which the first additional encoding operation and second additional encoding operation were applied.

10. A first dispersed storage unit for storing data in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage units, the first dispersed storage unit comprising:

an communications interface;

a memory; and

a computer processor;

where the memory includes instructions for causing the processor to:

receive a first encoded data slice at a first dispersed storage unit of the plurality of dispersed storage units;

determine whether to apply a first additional encoding operation to the first encoded data slice, wherein the determining is based on information relating to at least one of the first encoded data slice, a vault, or an underlying memory device, and

apply the first additional encoding operation to create a modified first encoded data slice, wherein the applying the first additional encoding operation includes marking the modified first encoded data slice with information sufficient to identify the first additional encoding operation.

11. The first dispersed storage unit of claim 10 wherein the information relating to at least one of the first encoded data slice, a vault or an underlying memory device includes at least one of a vault ID, a requesting entity ID, a data type indicator, a data size indicator, the first encoded data slice name, an analysis of the first encoded data slice, a local memory type indicator, a level of available processing resources.

12. The first dispersed storage unit of claim 10 wherein the first additional encoding operation includes at least one of compression encoding, encryption encoding and data slice meta data encoding.

13. The first dispersed storage unit of claim 10 further including instructions for causing the processor to:

determine by the first dispersed storage unit whether to apply a second additional encoding operation to the modified first encoded data slice;

in response to a determination to apply the second additional encoding operation to the modified first encoded data slice, apply the second additional encoding operation to the modified first encoded data slice create a twice modified first encoded data slice; and

mark the twice modified first encoded data slice with information sufficient to identify the second additional encoding operation and information sufficient to identify an order in which the first additional encoding operation and second additional encoding operation were applied.

14. The first dispersed storage unit of claim 13 wherein instructions for causing the processor to determine whether to apply the second additional encoding operation to the modified first encoded data slice includes instructions regarding the first additional encoding operation applied to the first encoded data slice.

15. The first dispersed storage unit of claim 12 wherein instructions for causing the processor to determine whether to apply the first additional encoding operation to the first encoded data slice includes instructions for causing the processor to determine whether to apply compression coding based on storage gains for the first dispersed storage unit and CPU cycle costs for the first dispersed storage unit.

16. The first dispersed storage unit of claim 10 wherein instructions for causing the processor to determine whether to apply the first additional encoding operation to the first encoded data slice includes instructions for causing the processor to determine whether to apply encryption encoding based on whether or not the first encoded data slice is already encrypted.

17. The first dispersed storage unit of claim 10 wherein instructions for causing the processor to determine whether to apply the first additional encoding operation to the first encoded data slice includes instructions for causing the processor to determine whether to apply meta-data encoding based on whether meta-data is already stored for the data slice in the first dispersed storage unit.

18. The first dispersed storage unit of claim 13 further including instructions for causing the processor to:

store the twice modified first encoded data slice in the memory;

receive a request via the interface to read the twice modified first encoded data slice from the memory; and

in response to the request, decode the twice modified first encoded data slice based on the first additional encoding operation applied to the first encoded data slice and second additional encoding operation applied to the modified first encoded data slice and based on the order in which the first additional encoding operation and second additional encoding operation were applied.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2017
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040934/0395 →
Continuity (2)
Provisional Application 62314839 · Mar 29, 2016
Related Publication 20170286224A1 · Oct 5, 2017