IP Library Granted Patent US 8,554,994
Granted Patent B2
US 8,554,994 · App. 12/777,887 · Granted Oct 8, 2013

Distributed storage network utilizing memory stripes

Inventor: Jason K. Resch (Chicago, IL)
Assignee: Cleversafe, Inc.
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,554,994
App. No.
12/777,887
Granted
Oct 8, 2013
Kind
B2
Abstract

Multiple data slices are generated from an original data segment. The data slices are constructed to prevent recovery of the original data segment using a single related data slice, but to allow recovery of the original data segment using fewer than all of the data slices. Each data slice is stored in the same memory stripe as the other data slices. The memory stripe extends across multiple memory devices and multiple different distributed storage units. The memory device in which each data slice is stored can be determined based on a source name associated with each data slice.

Claims (43)

1. A method for storing error coded data slices in a dispersed storage network (DSN), wherein a data segment is encoded using an error coding dispersed storage function to produce a plurality of error coded data slices, wherein each of the plurality of error coded data slices has a unique slice name, and wherein each of the unique slice names includes a common source name and unique addressing information, the method comprising:

receiving, by a first dispersed storage unit of the DSN, a first error coded data slice of a plurality of error coded data slices and the unique slice name of the first error coded data slice;

performing, by the first dispersed storage unit, a deterministic function on the common source name of the unique slice name of the first error coded data slice to select a memory device of a plurality of memory devices of the first distributed storage unit; and

storing, by the first dispersed storage unit, the first error coded data slice in the memory device of the plurality of memory devices of the first dispersed storage unit based on the unique slice name of the first error coded data slice;

receiving, by a second dispersed storage unit of the DSN, a second error coded data slice of a plurality of error coded data slices and the unique slice name of the second error coded data slice;

performing, by the second dispersed storage unit, the deterministic function on the common source name of the unique slice name of the second error coded data slice to select a memory device of a plurality of memory devices of the second distributed storage unit; and

storing, by the second dispersed storage unit, the second error coded data slice in the memory device of the plurality of memory devices of the second dispersed storage unit based on the unique slice name of the second error coded data slice.

2. The method of claim 1 further comprising:

performing, by the first dispersed storage unit, a reducing function as the deterministic function to produce a reduced length source name;

selecting, by the first dispersed storage unit, the memory device of the plurality of memory devices of the first distributed storage unit based on the reduced length source name;

performing, by the second dispersed storage unit, the reducing function as the deterministic function to produce the reduced length source name; and

selecting, by the second dispersed storage unit, the memory device of the plurality of memory devices of the second distributed storage unit based on the reduced length source name.

3. The method of claim 2 , wherein the reducing function comprising one or more of:

a hash function;

a truncating function; and

modulo function.

4. The method of claim 1 , wherein the unique addressing information comprising:

vault information.

5. The method of claim 1 further comprising:

performing, by the first dispersed storage unit, a hash function as the deterministic function on the common source name to produce a hashed source name;

performing, by the first dispersed storage unit, a truncating function on the hashed source name to produce a truncated source name; and

selecting, by the first dispersed storage node, the memory device of a plurality of memory devices of the first distributed storage unit based on the truncated source name.

6. The method of claim 1 , further comprising:

updating, by the first dispersed storage unit, a digital-storage-network-address to physical-location table to record storage of the first error coded data slice in the memory device of the plurality of memory devices of the first distributed storage unit.

7. A distributed storage unit comprising:

an interface to receive error coded data slice of a plurality of error data slices, wherein a data segment is encoded using an error coding dispersed storage function to produce the plurality of error coded data slices, wherein each of the plurality of error coded data slices has a unique slice name, and wherein each of the unique slice names includes a common source name and unique addressing information;

a plurality of memory devices; and

a processing module operable to:

perform a deterministic function on the common source name of the unique slice name of the error coded data slice to select a memory device of the plurality of memory devices; and

facilitate storing the error coded data slice in the memory device based on the unique slice name of the error coded data slice.

8. The distributed storage unit of claim 7 , wherein the processing module is further operable to:

perform a reducing function as the deterministic function to produce a reduced length source name; and

select the memory device based on the reduced length source name.

9. The distributed storage unit of claim 8 , wherein the reducing function comprising one or more of:

a hash function;

a truncating function; and

modulo function.

10. The distributed storage unit of claim 8 , wherein the unique addressing information comprising:

vault information.

11. The distributed storage unit of claim 8 , wherein the processing module is further operable to:

perform a hash function as the deterministic function on the common source name to produce a hashed source name;

perform a truncating function on the hashed source name to produce a truncated source name; and

select the memory device based on the truncated source name.

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 May 11, 2010
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 024368/0522 →
Continuity (2)
Provisional Application 61246876 · Sep 29, 2009
Related Publication 20110078371A1 · Mar 31, 2011