Patent ID: 8250191

Claim:
A method for obtaining at least one file in a cooperative file distribution system, comprising: obtaining a target delivery rate for said at least one file; identifying one or more unreliable data sources and one or more reliable data sources to transfer at least a portion of said at least one file to a client, wherein each unreliable data source is associated with a lower cost, a lower availability and a lower reliability of performance than each reliable data source and wherein said identification step is performed by said client; obtaining at least a portion of said file at a receiver from one or more of said identified unreliable data sources at an unreliable data delivery rate; obtaining at least a portion of said file at said receiver from one or more of said identified reliable data sources based on a throttle rate when said unreliable data delivery rate is below said target delivery rate, wherein a size or rate of requests for the portion of the file from the one or more reliable data sources are based on the throttle rate; adjusting said throttle rate such that an amount of data obtained from said reliable data sources is reduced and said target delivery rate is maintained; detecting rate saturation by comparing said throttle rate to an actual rate of data received from said reliable data sources; and reducing said throttle rate when rate saturation is detected, wherein at least one of said identified unreliable data sources is provided by an entity distinct from a provider of at least one of said identified reliable data sources, and wherein said throttle rate is based on a combined delivery rate from said identified unreliable data sources and said identified reliable data sources, and wherein said combined delivery rate is monitored at said receiver.