Synchronous peer to peer deployed application propagation for large clusters
AssigneeInternational Business Machines Corporation
InventorsSteven J. Branda, Robert V. Geiner, John J. Stecher
Life of this patent
Estimating the term…
Abstract
The present invention a synchronous peer to peer transfer model that utilizes all available network bandwidth to deploy application code to an entire cluster as fast as it can be sent to one machine. A method in accordance with an embodiment of the present invention includes: determining a number N of simultaneous connections that should be opened to the cluster members to maximize network bandwidth; and synchronously deploying the application to the cluster members using the N simultaneous connections.
Claims20
A method for synchronously deploying an application to members of a cluster, comprising:
- determining, by simultaneously sending a dummy file to an increasing number of cluster members, a maximum number N of simultaneous connections that should be opened to the cluster members to maximize network bandwidth, wherein determining the maximum number N of simultaneous connections comprises:
- (a) connecting to a first cluster member;
- (b) beginning transfer of the dummy file to the first cluster member;
- (c) monitoring a transfer rate of the dummy file to the first cluster member;
- (d) connecting to an additional cluster member;
- (e) beginning transfer of the dummy file to the additional cluster member;
- (f) monitoring the transfer rate of the dummy file to the additional cluster member;
- (g) determining whether a transfer rate of the dummy file to any of the connected cluster members has dropped;
- repeating, if necessary, (d)-(g) until a drop in the transfer rate of the dummy file to any of the connected cluster members occurs;
- and
- setting N equal to the number of connected cluster members prior to the occurrence of the drop in the transfer rate;
- managing the cluster to establish N different groups of open simultaneous connections among N groups of different cluster members;
- and
- synchronously deploying the application to the cluster members using the N different groups of open simultaneous connections.
A system for synchronously deploying an application to members of a cluster, comprising:
- a deployment computing device configured to:
- determine, by simultaneously sending a dummy file to an increasing number of cluster members, a maximum number N of simultaneous connections that should be opened to the cluster members to maximize network bandwidth, wherein, in being configured to determine the maximum number N of simultaneous connections, the deployment computing device is configured to:
- (a) connect to a first cluster member;
- (b) begin transfer of the dummy file to the first cluster member;
- (c) monitor a transfer rate of the dummy file to the first cluster member;
- (d) connect to an additional cluster member;
- (e) begin transfer of the dummy file to the additional cluster member;
- (f) monitor the transfer rate of the dummy file to the additional cluster member;
- (g) determine whether a transfer rate of the dummy file to any of the connected cluster members has dropped;
- repeat, if necessary, (d)-(g) until a drop in the transfer rate of the dummy file to any of the connected cluster members occurs;
- and
- set N equal to the number of connected cluster members prior to the occurrence of the drop in the transfer rate;
- manage the cluster to establish N different groups of open simultaneous connections among N groups of different cluster members;
- and
- synchronously deploy the application to the cluster members using the N different groups of open simultaneous connections.
A program product stored on a non-transitory computer readable medium for synchronously deploying an application to members of a cluster, the computer readable medium comprising program code for:
- determining, by simultaneously sending a dummy file to an increasing number of cluster members, a maximum number N of simultaneous connections that should be opened to the cluster members to maximize network bandwidth, wherein determining the maximum number N of simultaneous connections comprises:
- (a) connecting to a first cluster member;
- (b) beginning transfer of the dummy file to the first cluster member;
- (c) monitoring a transfer rate of the dummy file to the first cluster member;
- (d) connecting to an additional cluster member;
- (e) beginning transfer of the dummy file to the additional cluster member;
- (f) determining the transfer rate of the dummy file to the additional cluster member;
- (g) determining whether a transfer rate of the dummy file to any of the connected cluster members has dropped;
- repeating, if necessary, (d)-(g) until a drop in the transfer rate of the dummy file to any of the connected cluster members occurs;
- and
- setting N equal to the number of connected cluster members prior to the occurrence of the drop in the transfer rate;
- managing the cluster to establish N different groups of open simultaneous connections among N groups of different cluster members;
- and
- synchronously deploying the application to the cluster members using the N different groups of open simultaneous connections.
Dependencies are inferred from the claim text.