IP Library Granted Patent US 8,522,074
Granted Patent B2
US 8,522,074 · App. 12/842,932 · Granted Aug 27, 2013

Intentionally introduced storage deviations in a dispersed storage network

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 8,522,074
App. No.
12/842,932
Granted
Aug 27, 2013
Kind
B2
Abstract

A method begins by a processing module receiving a first request to store a program. The method continues with the processing module determining first error coding dispersal storage function parameters and encoding a data segment of the program. The method continues with the processing module determining whether a second request to store the program is received. The method continues with the processing module encoding a second data segment of the program in accordance with the first error coding dispersal storage function parameters when the second request is not received. The method continues with the processing module changing the first error coding dispersal storage function parameters based on the another request to produce second error coding dispersal storage function parameters when the second request is received. The method continues with the processing module encoding the second data segment in accordance with the second error coding dispersal storage function parameters.

Claims (78)

1. A method for execution by a dispersed storage (DS) processing module, the method comprises:

receiving a first request to store a program;

determining first error coding dispersal storage function parameters;

encoding a data segment of the program in accordance with the first error coding dispersal storage function parameters;

determining whether a second request to store the program is received;

when the second request is not received, encoding a second data segment of the program in accordance with the first error coding dispersal storage function parameters;

when the second request is received, changing the first error coding dispersal storage function parameters based on the second request to produce second error coding dispersal storage function parameters; and

encoding the second data segment in accordance with the second error coding dispersal storage function parameters.

2. The method of claim 1 further comprises:

determining whether another request to store the program is received, wherein the another request is received, in time, between the first and second requests;

when the other request is received, determining whether to change the first error coding dispersal storage function parameters;

when the first error coding dispersal storage function parameters are to be changed, changing the first error coding dispersal storage function parameters based on the other request to produce third error coding dispersal storage function parameters; and

encoding another data segment in accordance with the third error coding dispersal storage function parameters.

3. The method of claim 1 , wherein the changing the first error coding dispersal storage function parameters based on the second request comprises:

changing a post-slice data manipulation function that includes at least one of:

an error injection function;

a bit dithering function;

a bit rotation function;

a slice comparison function;

a watermark function;

a hash function; and

a bit swapping function.

4. The method of claim 1 further comprises at least one of:

determining a first playback error coding dispersal storage function parameter set for a requesting device associated with the first request based on the first error coding dispersal storage function parameters and subsequent changes to the first error coding dispersal storage function parameters;

determining a second playback error coding dispersal storage function parameter set for a second requesting device associated with the second request based on the second error coding dispersal storage function parameters and subsequent changes to the second error coding dispersal storage function parameters;

outputting the first playback error coding dispersal storage function parameter set to the first requesting device; and

outputting the second playback error coding dispersal storage function parameter set to the second requesting device.

5. The method of claim 1 , wherein the first and second error coding dispersal storage function parameters comprises one or more of:

a pillars list;

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

6. The method of claim 5 , wherein the pillars list comprises:

at least one set of pillar identifiers associated with less than a slicing pillar width number and at least the read threshold number of a plurality of DS units, wherein the at least one set of pillar identifiers is unique as compared to ever other set of pillar identifiers associated with previously determined playback error coding dispersal storage function parameter set for the recovered data.

7. A computer comprising:

an interface; and

a processing module operable to:

receive, via the interface, a first request to store a program;

determine first error coding dispersal storage function parameters;

encode a data segment of the program in accordance with the first error coding dispersal storage function parameters;

determine whether a second request to store the program is received;

encode a second data segment of the program in accordance with the first error coding dispersal storage function parameters when the second request is not received;

change the first error coding dispersal storage function parameters based on the another request to produce second error coding dispersal storage function parameters when the second request is received; and

encode the second data segment in accordance with the second error coding dispersal storage function parameters.

8. The computer of claim 7 , wherein the processing module further functions to:

determine whether another request to store the program is received, wherein the another request is received, via the interface, in time, between the first and second requests;

determine whether to change the first error coding dispersal storage function parameters when the other request is received;

change the first error coding dispersal storage function parameters based on the other request to produce third error coding dispersal storage function parameters when the first error coding dispersal storage function parameters are to be changed; and

encoding another data segment in accordance with the third error coding dispersal storage function parameters.

9. The computer of claim 7 , wherein the processing module further functions to change the first error coding dispersal storage function parameters based on the other request by:

changing a post-slice data manipulation function that includes at least one of:

an error injection function;

a bit dithering function;

a bit rotation function;

a slice comparison function;

a watermark function;

a hash function; and

a bit swapping function.

10. The computer of claim 7 , wherein the processing module further functions to perform at least one of:

determining a first playback error coding dispersal storage function parameter set for a requesting device associated with the first request based on the first error coding dispersal storage function parameters and subsequent changes to the first error coding dispersal storage function parameters;

determining a second playback error coding dispersal storage function parameter set for a second requesting device associated with the second request based on the second error coding dispersal storage function parameters and subsequent changes to the second error coding dispersal storage function parameters;

outputting, via the interface, the first playback error coding dispersal storage function parameter set to the first requesting device; and

outputting, via the interface, the second playback error coding dispersal storage function parameter set to the second requesting device.

11. The computer of claim 7 , wherein the first and second error coding dispersal storage function parameters comprises one or more of:

a pillars list;

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

12. The computer of claim 11 , wherein the pillars list comprises:

at least one set of pillar identifiers associated with less than a slicing pillar width number and at least the read threshold number of a plurality of dispersed storage (DS) units, wherein the at least one set of pillar identifiers is unique as compared to every other set of pillar identifiers associated with previously determined playback error coding dispersal storage function parameter set for the recovered data.

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 May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2010
From: MARKISON, TIMOTHY W.; GRUBE, GARY W.; GLADWIN, S. CHRISTOPHER; HOLMES, ALAN E.; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 024736/0238 →