Smarter Workload Balancing
Publication Date: 2010-Nov-03
The IP.com Prior Art Database
This disclosure describes a technique for smarter workload balancing based on responsiveness of remote machines and network traffic.
Page 01 of 3
Smarter Workload Balancing
In a distributed processing environment, workload balancing is a critical component in managing timely processing of business critical transactions.
Currently there are 2 approaches:
1) a push-type method, where the request is pushed out to be serviced by one of the many available processing points. This technique allows the workload to be distributed in a number of ways - for example round-robin or by applying a weighting factor to the destinations.
Taking the round-robin approach means that if the distributed machines are not located in similar places or are not of similar processing power, some transactions will be processed faster than others.
Using a weighting factor, it relies on the user knowing the details of the system and ensuring that each machine is similarly utilized.
2) a pull-type method, where the request sits in a repository and distributed processing points will actively attempt to service the request potentially by polling the repository to see if there is work.
Whilst the pull-type technique allows an effective approach to workload balancing, it requires a central repository that is available to all processing components and typically requires the remote systems to tell the repository that they are waiting for work. In a system with many remote systems, this can lead to CPU being wasted as the remote systems race for the next piece of work.
The solution disclosed herein enhances takes the push-type technique and allows the system to determine the most appropriate location to process the data.
This system essentially determines which distributed systems are available for particular work, and then determines the "best" place for the work to be processed in a timely manner.
This decision is based on how long it takes to transfer the request to the remote system and how busy the remote system is.
For example, in a messaging environment, a request to put to a queue is made on a gateway server. The gateway server determines there are 15 places within its network that can process the request. The gateway server needs to decide where to send that work...The business has decided the work should be processed as quickly as possible, so the server needs to send the request to the place that will process it fastest - which at any point in time may not be the same place.
This system uses a "ping-and-process" algorithm to determine which distributed system is best capable of processing a request and allows a dynamic routing of workload that a manual configuration cannot keep pace with.
The requesting system will create a list to determine which systems are available to process requests.
Periodically, using this list, the requesting system will, for each available system:
* Create a ping message, containing a "start" time-stamp.
* Send the message to the remote system.
* Wait for the response.
* Add an "end" time-stamp to the message.
On receipt of the "ping" message, the remote system will:
* add a "start...