Workload balancing in a distributed database
First Claim
1. A distributed database management system for transaction processing comprising:
- two or more query processors with a common data source;
a transaction analyzer for checking if a transaction can be processed by more than one query processor;
a query processor optimizer for locating an optimum query processor for each query in the transaction based on workload of each query processor;
a workload balancer for directing each query to the optimum query processor based on an idleness factor for each query processor if the transaction can be processed by more than one query processor, wherein the idleness factor is based on a relative capacity for each query processor, a transaction type, and transaction length; and
a lock mechanism for locking portions of the common data source at a query level to a new query processor, wherein the lock mechanism can be transferred to the new query processor when a transaction is transferred to the new query processor and using existing global lock and cache data, and the transaction is transferred as a whole;
wherein the workload balancer balances a workload for each query processor in the more than one query processors, using the lock mechanism, such that a processing speed and the idleness factor of each query processor is balanced with respect to the other query processors in more than one query processors;
a logging engine for log records of events pertaining to changes to the common data source; and
wherein the transaction analyzer identifies open cursors and aborting a transfer if an open cursor is identified; and
wherein the transaction analyzer is configured for determining that a tag indicating that the transaction is distributable is associated with the transaction, and for determining that a tag indicating that the transaction is a long running or a short running transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed database management system balances the load on query boundaries and to achieve a more evenly balanced load. The system includes two or more query processors with a common data source. A database client manages a transaction including two or more queries. A transaction analyzer checks if a transaction can be processed by more than one query processor. A query processor optimizer locates the optimum query processor for each query in the transaction based on workload of each query processor, while a workload balancer directs each query to the optimum query processor if the transaction can be processed by more than one query processor. This approach is particularly well suited to a clustered database environment that includes query processor nodes that work off a shared disk to provide database access to clients that connect to the node.
19 Citations
14 Claims
-
1. A distributed database management system for transaction processing comprising:
-
two or more query processors with a common data source; a transaction analyzer for checking if a transaction can be processed by more than one query processor; a query processor optimizer for locating an optimum query processor for each query in the transaction based on workload of each query processor; a workload balancer for directing each query to the optimum query processor based on an idleness factor for each query processor if the transaction can be processed by more than one query processor, wherein the idleness factor is based on a relative capacity for each query processor, a transaction type, and transaction length; and a lock mechanism for locking portions of the common data source at a query level to a new query processor, wherein the lock mechanism can be transferred to the new query processor when a transaction is transferred to the new query processor and using existing global lock and cache data, and the transaction is transferred as a whole; wherein the workload balancer balances a workload for each query processor in the more than one query processors, using the lock mechanism, such that a processing speed and the idleness factor of each query processor is balanced with respect to the other query processors in more than one query processors; a logging engine for log records of events pertaining to changes to the common data source; and wherein the transaction analyzer identifies open cursors and aborting a transfer if an open cursor is identified; and wherein the transaction analyzer is configured for determining that a tag indicating that the transaction is distributable is associated with the transaction, and for determining that a tag indicating that the transaction is a long running or a short running transaction. - View Dependent Claims (2, 3, 4)
-
-
5. A method for transaction processing in a distributed database management system comprising two or more query processors with a common data source and at least one database client for managing a transaction including two or more queries, said method comprising:
-
checking if a transaction can be processed by more than one query processor; locating an optimum query processor for each query in the transaction based on workload of each query processor; directing each query to the optimum query processor based on an idleness factor for each query processor if the transaction can be processed by more than one query processor, wherein the idleness factor is based on a relative capacity for each query processor, a transaction type, and transaction length; locking portions of the common data source at a query level to a new query processor, wherein a lock mechanism can be transferred to the new query processor when a transaction is transferred to a new query processor and using existing global lock and cache data, and the transaction is transferred as a whole; balancing a workload for each query processor in the more than one query processors, using the lock mechanism, such that a processing speed and an idleness factor of each query processor is balanced with respect to the other query processors in more than one query processors; storing log records of events pertaining to changes to the common data source; identifying open cursors and aborting a transfer if an open cursor is identified; and wherein a tag indicating that the transaction is distributable is associated with the transaction, and a tag indicating that the transaction is a long running or a short running transaction is associated with the transaction. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A computer program product for transaction processing in a distributed database management system, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform:
-
checking if a transaction can be processed by more than one query processor; locating an optimum query processor for each query in the transaction based on workload of each query processor; directing each query to the optimum query processor based on an idleness factor of each query processor if the transaction can be processed by more than one query processor, wherein the idleness factor is based on a relative capacity for each query processor, a transaction type, and transaction length; locking portions of a common data source at a query level to a new query processor, wherein a lock mechanism can be transferred to the new query processor when a transaction is transferred to the new query processor and using existing global lock and cache data, and the transaction is transferred as a whole; balancing a workload for each query processor in the more than one query processors, using the lock mechanism, such that a processing speed and an idleness factor of each query processor is balanced with respect to the other query processors in more than one query processors; storing log records of events pertaining to changes to the common data source; identifying open cursors and aborting a transfer if an open cursor is identified; and wherein a tag indicating that the transaction is distributable is associated with the transaction, and a tag indicating that the transaction is a long running or a short running transaction is associated with the transaction. - View Dependent Claims (12, 13, 14)
-
Specification