IP Library Granted Patent US 10,067,832
Granted Patent B2
US 10,067,832 · App. 15/283,241 · Granted Sep 4, 2018

Imposter 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 10,067,832
App. No.
15/283,241
Granted
Sep 4, 2018
Kind
B2
Abstract

Methods and apparatus for accessing dispersed storage error encoded data in a dispersed storage network (DSN). When storing data in available storage units of a DSN, a DS processing unit issues a write slice request that includes a slice name corresponding to the storage unit and a unique encoded data slice of the set of encoded data slices, where each encoded data slice includes an IDA index of the corresponding storage unit. For each unavailable storage unit, the DS processing unit issues a write imposter slice request to a foster storage unit that includes a slice name corresponding to the foster storage unit and imposter encoded data slice corresponding to the unavailable storage unit, where the imposter encoded data slice includes an IDA index corresponding to the unavailable storage unit.

Claims (39)

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

dispersed storage error encoding a data segment to produce a set of encoded data slices;

sending a first slice write request for receipt by a first dispersed storage unit of the plurality of dispersed storage units, the first slice write request including a first slice name corresponding to the first dispersed storage unit and a first data slice of the set of encoded data slices, wherein the first data slice includes a first information dispersed algorithm index of the first dispersed storage unit; and

sending a second slice write request for receipt by a third dispersed storage unit of the plurality of dispersed storage units when a second dispersed storage unit of the plurality of dispersed storage units is unavailable, the second slice write request including a second slice name corresponding to the third dispersed storage unit and a second data slice of the set of encoded data slices, wherein the second data slice includes a second information dispersed algorithm index of the second dispersed storage unit.

2. The method of claim 1 , wherein the first information dispersed algorithm index of the first dispersed storage unit is included in one or more of a header or footer in the first data slice.

3. The method of claim 1 , wherein the second information dispersed algorithm index of the second dispersed storage unit is included in one or more of a header or a footer in the second data slice.

4. The method of claim 1 , wherein the first information dispersed algorithm index represents a first pillar the first data slice is associated with.

5. The method of claim 1 , wherein the second information dispersed algorithm index represents a second pillar the second data slice is associated with.

6. The method of claim 1 , further including retrieving the first data slice and the second data slice.

7. The method of claim 6 , further including retrieving additional encoded data slices from the plurality of disperse storage units such that a decode threshold number of unique slices is retrieved and disperse storage error decoding the first data slice, the second data slice and the additional encoded data slices.

8. The method of claim 1 , further including retrieving the second data slice when the second dispersed storage unit of the plurality of disperse storage units becomes available and sending a third slice write request for receipt by the second dispersed storage unit of the plurality of dispersed storage units, the third slice write request including a third slice name corresponding to the second dispersed storage unit and the second data slice of the set of encoded data slices, wherein the second data slice includes the information dispersed algorithm index of the second dispersed storage unit.

9. A dispersed storage processing unit for use in a dispersed storage network, the dispersed storage network including a plurality of dispersed storage units, the dispersed storage processing unit comprising:

a communications interface;

a memory; and

a processor;

wherein the memory includes a data segment and wherein the memory further includes instructions for causing the processor to:

dispersed storage error encode the data segment to produce a set of encoded data slices;

send a first slice write request for receipt by a first dispersed storage unit of the plurality of dispersed storage units, the first slice write request including a first slice name corresponding to the first dispersed storage unit and a first data slice of the set of encoded data slices, wherein the first data slice includes a first information dispersed algorithm index of the first dispersed storage unit; and

send a second slice write request for receipt by a third dispersed storage unit of the plurality of dispersed storage units when a second dispersed storage unit of the plurality of dispersed storage units is unavailable, the second slice write request including a second slice name corresponding to the third dispersed storage unit and a second data slice of the set of encoded data slices, wherein the second data slice includes a second information dispersed algorithm index of the second dispersed storage unit.

10. The dispersed storage processing unit of claim 9 , wherein the first information dispersed algorithm index of the first dispersed storage unit is included in one or more of a header or footer in the first data slice.

11. The dispersed storage processing unit of claim 9 , wherein the second information dispersed algorithm index of the second dispersed storage unit is included in one or more of a header or a footer in the second data slice.

12. The dispersed storage processing unit of claim 9 , wherein the first information dispersed algorithm index represents a first pillar the first data slice is associated with.

13. The dispersed storage processing unit of claim 9 , wherein the second information dispersed algorithm index represents a second pillar the second data slice is associated with.

14. The dispersed storage processing unit of claim 9 , wherein the memory further includes instructions for causing the processor to retrieve the first data slice and the second data slice.

15. The dispersed storage processing unit of claim 14 , wherein the memory further includes instructions for causing the processor to retrieve additional encoded data slices from the plurality of disperse storage units such that a decode threshold number of unique slices is retrieved and disperse storage error decode the first data slice, the second data slice and the additional encoded data slices.

16. The dispersed storage processing unit of claim 9 , wherein the memory further includes instructions for causing the processor to retrieve the second data slice when the second dispersed storage unit of the plurality of disperse storage units becomes available and send a third slice write request for receipt by the second dispersed storage unit of the plurality of dispersed storage units, the third slice write request including a third slice name corresponding to the second dispersed storage unit and the second data slice of the set of encoded data slices, wherein the second data slice includes the information dispersed algorithm index of the second dispersed storage unit.

17. A dispersed storage network comprising:

a plurality of dispersed storage units including a first dispersed storage unit, a second dispersed storage unit and a third dispersed storage unit; and

a dispersed storage processing unit, the dispersed storage processing unit including:

a communications interface;

a memory; and

a processor;

wherein the memory includes a data segment and wherein the memory further includes instructions for causing the processor to:

dispersed storage error encode the data segment to produce a set of encoded data slices;

send a first slice write request to the first dispersed storage unit of the plurality of dispersed storage units, the first slice write request including a first slice name corresponding to the first dispersed storage unit and a first data slice of the set of encoded data slices, wherein the first data slice includes a first information dispersed algorithm index of the first dispersed storage unit; and

send a second slice write request to the third dispersed storage unit of the plurality of dispersed storage units when the second dispersed storage unit of the plurality of dispersed storage units is unavailable, the second slice write request including a second slice name corresponding to the third dispersed storage unit and a second data slice of the set of encoded data slices, wherein the second data slice includes a second information dispersed algorithm index of the second dispersed storage unit.

18. The dispersed storage network of claim 17 , wherein the memory further includes instructions for causing the processor to retrieve the first data slice and the second data slice.

19. The dispersed storage network of claim 18 , wherein the memory further includes instructions for causing the processor to retrieve additional encoded data slices from the plurality of disperse storage units such that a decode threshold number of unique slices is retrieved and disperse storage error decode the first data slice, the second data slice and the additional encoded data slices.

20. The dispersed storage network of claim 17 , wherein the memory further includes instructions for causing the processor to retrieve the second data slice when the second dispersed storage unit of the plurality of disperse storage units becomes available and send a third slice write request for receipt by the second dispersed storage unit of the plurality of dispersed storage units, the third slice write request including a third slice name corresponding to the second dispersed storage unit and the second data slice of the set of encoded data slices, wherein the second data slice includes the information dispersed algorithm index of the second dispersed storage unit.

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 Sep 30, 2016
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; KHADIWALA, RAVI V.; RESCH, JASON K.; VOLVOVSKI, ILYA; WOZNIAK, ETHAN S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039916/0549 →