Patent ID: 8346843

Claim:
A method for distributing data over a network, the method performed by a master having one or more processors and memory storing one or more programs for execution by the one or more processors, the method comprising: determining at said master that a destination slave requires data, wherein said destination slave is one of a plurality of slaves; generating at said master a list of those slaves of said plurality of slaves that contain said data; transmitting from said master to a resource manager said list, where said resource manager is configured to: select a source slave from said list; determine a link between the selected source slave and the destination slave; determine whether sufficient resources are currently available on the link to transfer the data; when sufficient resources are determined not to be currently available on the link, forgo reservation of resources on the link for transferring the data; when sufficient resources are determined to be currently available on the link, reserve resources on the link for transferring the data, transmit an initiate instruction from said resource manager to said master to initiate a data transfer from said source slave to said destination slave; if it is determined that there is no slave source on the list for which there are sufficient resources currently available on a respective link, terminate a corresponding operation; and update a priority table based on the determination of whether sufficient resources are currently available; receiving at said master from said resource manager the initiate instruction to initiate a transfer of said data from said source slave to said destination slave; and transmitting from said master a commence instruction to commence said transfer, wherein the master, resource manager and slaves communicate with each other via the network.