IP Library Granted Patent US 8,612,831
Granted Patent B2
US 8,612,831 · App. 13/154,167 · Granted Dec 17, 2013

Accessing data stored in a dispersed storage memory

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,612,831
App. No.
13/154,167
Granted
Dec 17, 2013
Kind
B2
Abstract

A method begins by a processing module forward error correction (FEC) encoding data to produce FEC encoded data and dividing the FEC encoded data into a set of FEC encoded words. The method continues with the processing module generating integrity information based on the data and generating a word name for an FEC encoded word of the set of FEC encoded words. The method continues with the processing module affiliating an address of allocated address space of a dispersed storage memory with the word name and storing the integrity information, the word name, and the address. The method continues with the processing module creating a write command to store the FEC encoded word at the address in the dispersed storage memory.

Claims (67)

1. A method comprises:

forward error correction (FEC) encoding data to produce FEC encoded data;

dividing the FEC encoded data into a set of FEC encoded words;

generating integrity information based on the data;

generating a word name for an FEC encoded word of the set of FEC encoded words;

affiliating an address of allocated address space of a dispersed storage memory with the word name;

storing the integrity information, the word name, and the address; and

creating a write command to store the FEC encoded word at the address in the dispersed storage memory, wherein the dispersed storage memory comprises at least one of:

a local memory of a device executing the method;

a memory of a storage service provider; and

a network coupled memory unit;

determining whether to store the FEC encoded word in the local memory, the memory of the storage service provider, or the network coupled memory unit;

when storing the FEC encoded word in the local memory:

determining available local memory addresses of the allocated address space of the local memory; and

selecting one of the available local memory addresses as the address;

when storing the FEC encoded word in the memory of the storage service provider:

determining available service provider memory addresses of the allocated address space of the memory of the storage service provider; and

selecting one of the available service provider memory addresses as the address; and

when storing the FEC encoded word in the network coupled memory unit:

determining available network memory addresses of the allocated address space of the network coupled memory unit; and

selecting one of the available network memory addresses as the address.

2. The method of claim 1 , wherein the generating the integrity information comprises at least one of:

performing a hash algorithm on the data to produce the integrity information;

performing a hash-based message authentication code (HMAC) on the data to produce the integrity information;

performing a parity function on the data to produce the integrity information;

performing a cyclic redundancy check function on the data to produce the integrity information; and

performing a mask generating function (MGT) on the data to produce the integrity information.

3. The method of claim 1 further comprises:

generating a second word name for a second FEC encoded word of the set of FEC encoded words;

affiliating a second address of allocated address space of the dispersed storage memory with the second word name;

storing the second word name with the integrity information, the word name, and the address; and

creating a second write command to store the second FEC encoded word at the second address in the dispersed storage memory.

4. A computer comprises:

an interface;

a memory; and

a processing module operable to:

forward error correction (FEC) encode data to produce FEC encoded data;

divide the FEC encoded data into a set of FEC encoded words;

generate integrity information based on the data;

generate a word name for an FEC encoded word of the set of FEC encoded words;

affiliate an address of allocated address space of a dispersed storage memory with the word name;

store, via the interface, the integrity information, the word name, and the address; and

create a write command to store, via the interface, the FEC encoded word at the address in the dispersed storage memory, wherein the dispersed storage memory comprises at least one of:

a local memory of a device executing the method;

a memory of a storage service provider; and

a network coupled memory unit;

determine whether to store the FEC encoded word in the local memory, the memory of the storage service provider, or the network coupled memory unit;

when storing the FEC encoded word in the local memory:

determine available local memory addresses of the allocated address space of the local memory; and

select one of the available local memory addresses as the address;

when storing the FEC encoded word in the memory of the storage service provider:

determine available service provider memory addresses of the allocated address space of the memory of the storage service provider; and

select one of the available service provider memory addresses as the address; and

when storing the FEC encoded word in the network coupled memory unit:

determine available network memory addresses of the allocated address space of the network coupled memory unit; and

select one of the available network memory addresses as the address.

5. The computer of claim 4 , wherein the processing module functions to generate the integrity information by at least one of:

performing a hash algorithm on the data to produce the integrity information;

performing a hash-based message authentication code (HMAC) on the data to produce the integrity information;

performing a parity function on the data to produce the integrity information;

performing a cyclic redundancy check function on the data to produce the integrity information; and

performing a mask generating function (MGT) on the data to produce the integrity information.

6. The computer of claim 4 , wherein the processing module further functions to:

generate a second word name for a second FEC encoded word of the set of FEC encoded words;

affiliate a second address of allocated address space of the dispersed storage memory with the second word name;

store, via interface, the second word name with the integrity information, the word name, and the address; and

create a second write command to store, via the interface, the second FEC encoded word at the second address in the dispersed storage memory.

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 Jun 7, 2011
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 026400/0171 →