Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof
First Claim
1. A semi-dynamic load balancer for a transaction-type computer system having multiple processors and a shared database, said load balancer reassigning transaction types to respective ones of said multiple processors to balance respective loads of said multiple processors;
- the load balancer comprising;
routing means connected to said multiple processors for assigning new transactions of a same type to a processor of said multiple processors according to a routing table;
monitoring means connected to said multiple processors for periodically determining whether a load imbalance has occurred among said processors, said monitoring means including threshold means for determining whether a processor utilization of one of said multiple processors exceeds a predetermined threshold; and
reallocation means connected to and responsive to said monitoring means and including lock contention means for determining a predicted load to a candidate processor of said multiple processors for a possible reassignment of said new transactions of said same type of said one of said multiple processors having a processor utilization exceeding said predetermined threshold;
said reallocation means updating said routing table to thereby automatically reassign said new transactions of said same type to said candidate processor of said multiple processors.
1 Assignment
0 Petitions
Accused Products
Abstract
A semi-dynamic load balancer for a transaction processing system reallocates transaction types among computers in the system as a group rather than as individual transactions. Statistical data is accumulated in an affinity matrix which records the number of times a transaction type i was blocked by transaction type j was holding a lock on a data item that transaction type i wanted to access. When an overloaded computer is detected, transaction types are reallocated on the computers of the system according to a transaction type routing table which is updated based on data from the affinity matrix.
181 Citations
7 Claims
-
1. A semi-dynamic load balancer for a transaction-type computer system having multiple processors and a shared database, said load balancer reassigning transaction types to respective ones of said multiple processors to balance respective loads of said multiple processors;
- the load balancer comprising;
routing means connected to said multiple processors for assigning new transactions of a same type to a processor of said multiple processors according to a routing table; monitoring means connected to said multiple processors for periodically determining whether a load imbalance has occurred among said processors, said monitoring means including threshold means for determining whether a processor utilization of one of said multiple processors exceeds a predetermined threshold; and reallocation means connected to and responsive to said monitoring means and including lock contention means for determining a predicted load to a candidate processor of said multiple processors for a possible reassignment of said new transactions of said same type of said one of said multiple processors having a processor utilization exceeding said predetermined threshold;
said reallocation means updating said routing table to thereby automatically reassign said new transactions of said same type to said candidate processor of said multiple processors.
- the load balancer comprising;
-
2. A semi-dynamic load balancer for a multi-computer, shared database transaction processing system, said load balancer reassigning transactions to balance loads of respective ones of said computers, the load balancer comprising:
-
routing means connected to said processing means for assigning new transactions of a same type to a common computer in accordance with a transaction type routing table; statistical means connected to said processing system for creating and maintaining an affinity matrix that records the number of times a transaction type i was blocked by transaction type j because said transaction type j was holding a lock on a data item in said shared database that said transaction type i wanted to access; monitoring means connected to said processing system for periodically checking for an over loaded computer in said system; and reallocation means, connected to and responsive to said monitoring means, using said affinity matrix for predicting an expected change in a contention related loading factor for each said computer for various possible reassignments of transaction types, said reallocation means making one or more changes in said transaction type routing table based on said predicted expected change in said contention related loading factor for each said computer for the various possible reassignments of transaction types, said routing means thereafter automatically reassigning new transaction types from an over loaded computer to an under utilized computer in accordance with said routing table. - View Dependent Claims (3)
-
-
4. A transaction processing system comprising:
-
a plurality of computers sharing a common database, said plurality of computers being interconnected via communication links, one of said computers being a front end computer and others of said computers being back end computers; routing means at said front end computer for assigning new transactions of a same type to one of said back end computers in accordance with a transaction type routing table; means at each of said back end computers for periodically accumulating statistical data on the respective back end computer'"'"'s work load and transmitting the statistical data to said front end computer; load balancing means at said front end computer for periodically analyzing said statistical data from said back end computers;
wherein said load balancing means including statistical means for creating and maintaining an affinity matrix that records the number of times a transaction type i was blocked by transaction type j because said transaction type j was holding a lock on a data item in said shared common database that said transaction type i wanted to access, said load balancing means using said affinity matrix for predicting an expected change in a contention related loading factor for each said back end computer for various possible reassignments of transaction types and making one or more changes in said transaction type routing table based on said predicted expected change in said contention related loading factor for each said back end computer for the various possible reassignments of transaction types;said routing means thereby automatically reassigning transaction types from an over loaded back end computer to an under utilized back end computer in accordance with said transaction type routing table as updated.
-
-
5. In a transaction processing system of the type having a plurality of computers sharing a common database, said plurality of computers being interconnected via communication links, each of said computers processing one or more transaction types, at least one of said computers being a front end computer and others of said computers being back end computers, a load balancing system for said back end computers comprising:
-
routing means at said front end computer for assigning new transactions of a same type to one computer of said back end computers in accordance with a transaction type routing table; monitoring means at each of said back end computers for accumulating statistical data on the back end computer'"'"'s work load and periodically transmitting said statistical data to said front end computer; load balancing means at said front end computer for periodically analyzing said statistical data and identifying ones of said back end computers having a processor utilization exceeding a predetermined threshold, said load balancing means selecting one of said back end computers with a greatest utilization exceeding said threshold and selecting a transaction type as a candidate transaction type for reallocating to another one of said back end computers; said front end computer including calculating means for calculating an increase in loading to those back end computers having a processor utilization not exceeding said threshold due to reallocation of said candidate transaction type and then determining those of said back end computers for which the increase in loading plus current processor utilization do not exceed said threshold, said computers being candidate computers for reallocation of said candidate transaction type; said load balancing means selecting one of said candidate computers for which the calculated increase in loading is a minimum and reassigning said candidate transaction type to the selected candidate computer by updating said transaction type routing table. - View Dependent Claims (6, 7)
-
Specification