Reliable, efficient peer-to-peer storage
First Claim
1. A computer-implemented process for encoding files to be stored in a distributed network, comprising the process actions of:
- calculating optimal file size ranges corresponding to different erasure resilient coding (ERC) number of fragments, wherein each number of fragments is the optimal number of fragments for a corresponding range of file sizes;
inputting a file of a given file size;
if the file size is smaller than the range of the file sizes for the smallest ERC number of fragments of two, encoding the file without using erasure resilient coding;
if the file size of the input file corresponds to a range of file sizes, encoding the file using erasure resilient coding and the optimal number of fragments corresponding to the file size range of the input file.
2 Assignments
0 Petitions
Accused Products
Abstract
An adaptive coding storage system that uses adaptive erasure resilient code (ERC) which changes the number of fragments used for encoding according to the size of the file distributed. Adaptive ERC may greatly improve the efficiency and reliability of P2P storage. A number of procedures for P2P storage applications may also be implemented. In one embodiment small, dynamic data files are diverted to the more reliable peers or even a server, while large and static files are stored utilizing the storage capacity of the unreliable peers. Also, for balanced contribution and benefit, a peer should host the same amount of content as it stored in the P2P network. As a result, unreliable peers are allowed to distribute less data, and more reliable peers are allowed to distribute more. Also, smaller files are assigned a higher distribution cost, and the larger files are assigned a lower distribution cost.
-
Citations
20 Claims
-
1. A computer-implemented process for encoding files to be stored in a distributed network, comprising the process actions of:
-
calculating optimal file size ranges corresponding to different erasure resilient coding (ERC) number of fragments, wherein each number of fragments is the optimal number of fragments for a corresponding range of file sizes;
inputting a file of a given file size;
if the file size is smaller than the range of the file sizes for the smallest ERC number of fragments of two, encoding the file without using erasure resilient coding;
if the file size of the input file corresponds to a range of file sizes, encoding the file using erasure resilient coding and the optimal number of fragments corresponding to the file size range of the input file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for improving the storage reliability and efficiency of a peer-to-peer network, comprising:
-
a general purpose computing device;
a computer program comprising program modules executable by the general purpose computing device, wherein the computing device is directed by the program modules of the computer program to, determine the optimum number of fragments to encode a file of given size with erasure resilient coding;
if the optimum number of fragments to encode the file with erasure resilient encoding is one, do not encode the file with erasure resilient coding; and
if the optimum number of fragments is larger than one, encode the file by breaking the file into the optimum number of fragments and encoding the file with erasure resilient coding. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-implemented process for decoding an encoded file stored in a distributed network, comprising the process actions of:
-
retrieving a set of fragments of an encoded file equal to or greater than the number of fragments that were used to encode the file, wherein the file was erasure resilient encoded with an optimum number of fragments for a given file size; and
decoding the encoded fragments with erasure resilient decoding to obtain a decoded version of the encoded file. - View Dependent Claims (19, 20)
-
Specification