MANAGING DATA TRANSFER BETWEEN ENDPOINTS IN A DISTRIBUTED COMPUTING ENVIRONMENT
First Claim
1. A method for providing a file fetcher arranged for serving and retrieving files to and from endpoints on a network supporting peer-to-peer file transfer, the method comprising the steps of:
- associating work items in a work list with pending file requests from a caller at an endpoint, the work list being arranged to support prioritization of the work items;
obtaining a list of endpoints that contain at least a portion of files associated with the pending file requests;
maintaining a state for a file, the state identifying the file as being partially or completely downloaded;
retrieving at least a portion of a file in accordance with the work list, the list of endpoints, and the file state; and
serving at least a portion of a file responsively to a request from a caller at a remote endpoint.
2 Assignments
0 Petitions
Accused Products
Abstract
A file fetcher manager provides commonly-utilized management and resource allocation for multiple file fetchers that each implement a different type of mechanism or protocol for transferring data files between peer endpoints in meshes associated with a cloud-computing service. Each file fetcher is configured with both client-side and server-side components to retrieve and serve out data files. The file fetcher manager encapsulates the file fetchers to provide an abstract interface to callers while hiding the underlying details of the file fetchers. The file fetcher manager is arranged for managing simultaneous operations of the multiple file fetchers to route requests from the callers to the appropriate file fetchers, and for scheduling work items for the file fetchers so that data transfers efficiently utilize available resources while keeping the entire transfer process coherent and organized.
205 Citations
20 Claims
-
1. A method for providing a file fetcher arranged for serving and retrieving files to and from endpoints on a network supporting peer-to-peer file transfer, the method comprising the steps of:
-
associating work items in a work list with pending file requests from a caller at an endpoint, the work list being arranged to support prioritization of the work items; obtaining a list of endpoints that contain at least a portion of files associated with the pending file requests; maintaining a state for a file, the state identifying the file as being partially or completely downloaded; retrieving at least a portion of a file in accordance with the work list, the list of endpoints, and the file state; and serving at least a portion of a file responsively to a request from a caller at a remote endpoint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method performed by a local file fetcher manager for managing a plurality of local file fetchers, the method comprising the steps of:
-
exposing file retrieval and server functionality provided by the file fetchers to callers comprising a local caller at a local endpoint and to a remote caller at a remote peer endpoint, the local endpoint and remote peer endpoint being coupled to a cloud service supporting peer-to-peer file sharing; querying one or more remote file fetcher managers to determine capabilities of remote file fetchers at the remote peer endpoints; maintaining a list of the capabilities in a cache; and routing requests from the callers to a file fetcher selected among the plurality of local file fetchers according to the capabilities. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for scheduling work in a file fetcher, the method comprising the steps of:
-
maintaining state information pertaining to a plurality of remote peer endpoints on a cloud service, the state information including at least one of active communication channels to a remote peer endpoint, online and offline status of the remote peer endpoint, or request service history for the remote peer endpoint, the request service history identifying a quality of service provided by the remote peer endpoint; and implementing a scheduler arranged for i) consuming policies governing the serving and retrieval of files to and from the plurality of remote peer endpoints, and receiving the state information and ii) scheduling the work in the file fetcher responsively to the state information and policies, the file fetcher being arranged with client-side and server-side components to respectively retrieve and serve files over communication channels supported by the cloud service. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification