Patent ID: 8169916

Claim:
A method executing within one or more computing devices for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, the method comprising: receiving a request for an on demand video; receiving a list of nodes that have chunks of the on demand video; determining a cost associated with each node based on one or more parameters that determine how fast a chunk can be received from each node; filtering a set of nodes associated with each chunk based on cost associated with each node; retrieving information associated with parameters used for determining cost from one or more nodes and updating the parameters associated with each node; determining a communication protocol to be used between each node and the destination node based on factors comprising updated information associated with each node; determining a fetch window of chunks to be retrieved for presenting the on demand video continuously; identifying a node for fetching a chunk in the fetch window based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and sending a request to the identified node associated with the chunk for retrieving the chunk.