Accessing data stored in a dispersed storage memory
View Patent ↗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.
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.