Distributed decentralized data storage and retrieval
First Claim
Patent Images
1. A method comprising:
- communicating with a distributed hash table comprising a plurality of local routing tables maintained in a plurality of processor nodes containing storage, each of the plurality of local routing tables containing hash values corresponding to node addresses of neighboring network nodes, the plurality of processor nodes comprising at least a first processor node;
receiving, by a routing service, a storage request message comprising a bit stream, the bit stream coming from a storage service;
dividing the bit stream into a plurality of chunks;
computing hash values for each of the plurality of chunks, each hash value based on a concatenation comprising a bit stream identifier and a user identifier;
consulting a local routing table of the first processor node to determine if an address of a recipient processor node corresponds to a neighboring network node of the first processor node, the recipient processor node comprising a chunk store service that divides a received chunk into a plurality of fragments, encodes a fragment into a plurality of check blocks, and transmits each check block of the plurality of check blocks to a fragment store service; and
transmitting, into a network, a plurality of chunk store messages if the address of the recipient processor node corresponds to the neighboring network node of the first processor node.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for distributed, decentralized storage and retrieval of data in an extensible SOAP environment are disclosed. Such systems and methods decentralize not only the bandwidth required for data storage and retrieval, but also the computational requirements. Accordingly, such systems and methods alleviate the need for one node to do all the storage and retrieval processing, and no single node is required to send or receive all the data.
34 Citations
17 Claims
-
1. A method comprising:
-
communicating with a distributed hash table comprising a plurality of local routing tables maintained in a plurality of processor nodes containing storage, each of the plurality of local routing tables containing hash values corresponding to node addresses of neighboring network nodes, the plurality of processor nodes comprising at least a first processor node; receiving, by a routing service, a storage request message comprising a bit stream, the bit stream coming from a storage service; dividing the bit stream into a plurality of chunks; computing hash values for each of the plurality of chunks, each hash value based on a concatenation comprising a bit stream identifier and a user identifier; consulting a local routing table of the first processor node to determine if an address of a recipient processor node corresponds to a neighboring network node of the first processor node, the recipient processor node comprising a chunk store service that divides a received chunk into a plurality of fragments, encodes a fragment into a plurality of check blocks, and transmits each check block of the plurality of check blocks to a fragment store service; and transmitting, into a network, a plurality of chunk store messages if the address of the recipient processor node corresponds to the neighboring network node of the first processor node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable storage memory having stored thereon at least one executable instruction that when executed cause a processor to perform operations comprising:
-
communicating with a distributed hash table comprising a plurality of local routing tables maintained in a plurality of processor nodes containing storage, each of the plurality of local routing tables containing hash values corresponding to node addresses of neighboring network nodes, the plurality of processor nodes comprising at least a first processor node; receiving, by a routing service, a storage request message comprising a bit stream, the bit stream coming from a storage service; dividing the bit stream into a plurality of chunks; computing hash values for each of the plurality of chunks, each hash value based on a concatenation comprising a bit stream identifier and a user identifier; consulting a local routing table of the first processor node to determine if an address of a recipient processor node corresponds to a neighboring network node of the first processor node, the recipient processor node comprising a chunk store service that divides a received chunk into a plurality of fragments, encodes a fragment into a plurality of check blocks, and transmits each check block of the plurality of check blocks to a fragment store service; and transmitting, into a network, a plurality of chunk store messages if the address of the recipient processor node corresponds to the neighboring network node of the first processor node. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a processor; and a memory coupled to the processor, the memory having stored thereon executable instructions that when executed by the processor cause the processor to effectuate operations comprising; communicating with a distributed hash table comprising a plurality of local routing tables maintained in a plurality of processor nodes containing storage, each of the plurality of local routing tables containing hash values corresponding to node addresses of neighboring network nodes, the plurality of processor nodes comprising at least a first processor node; receiving, by a routing service, a storage request message comprising a bit stream, the bit stream coming from a storage service; dividing the bit stream into a plurality of chunks; computing hash values for each of the plurality of chunks, each hash value based on a concatenation comprising a bit stream identifier and a user identifier; consulting a local routing table of the first processor node to determine if an address of a recipient processor node corresponds to a neighboring network node of the first processor node, the recipient processor node comprising a chunk store service that divides a received chunk into a plurality of fragments, encodes a fragment into a plurality of check blocks, and transmits each check block of the plurality of check blocks to a fragment store service; and transmitting, into a network, a plurality of chunk store messages if the address of the recipient processor node corresponds to the neighboring network node of the first processor node.
-
Specification