Performance optimization in a heterogeneous, distributed database environment
First Claim
1. A method of optimizing performance of a database system wherein data associated with a client is distributed among a plurality of heterogeneous database management systems (DBMSs), comprising the steps of:
- (1) transparently fetching a data block of records and record identification information that uniquely identifies each of said records of said data block from a target database management system (DBMS) in response to a record request of said client, thereby reducing accesses to said target DBMS and thus optimizing performance of said database system, wherein said target DBMS is one of said heterogeneous DBMSs and wherein a single copy of said data block is maintained in said database system by said target DBMS; and
(2) processing, in real-time, a positioned update instruction issued by said client and said record identification information, wherein said position update instruction has an associated position cursor, said positioned update instruction when executed by said target DBMS enabling said target DBMS to modify a record contained in said data block and addressed by said associated position cursor.
1 Assignment
0 Petitions
Accused Products
Abstract
The performance of a heterogeneous, distributed database system is optimized by supporting both block fetch operations and positioned update operations. Specifically, a data block is fetched from a target database management system (DBMS), and a positioned update instruction issued by a client is processed. The positioned update instruction, when executed by the target DBMS, enables the target DBMS to modify a row contained in the data block and addressed by a cursor as the cursor is perceived by the client. Also, performance of the database system is optimized by identifying database statements that reference invariant host variables, and modifying such database statements by replacing in the database statements the host variables with literal values equivalent to the host variables.
-
Citations
14 Claims
-
1. A method of optimizing performance of a database system wherein data associated with a client is distributed among a plurality of heterogeneous database management systems (DBMSs), comprising the steps of:
-
(1) transparently fetching a data block of records and record identification information that uniquely identifies each of said records of said data block from a target database management system (DBMS) in response to a record request of said client, thereby reducing accesses to said target DBMS and thus optimizing performance of said database system, wherein said target DBMS is one of said heterogeneous DBMSs and wherein a single copy of said data block is maintained in said database system by said target DBMS; and (2) processing, in real-time, a positioned update instruction issued by said client and said record identification information, wherein said position update instruction has an associated position cursor, said positioned update instruction when executed by said target DBMS enabling said target DBMS to modify a record contained in said data block and addressed by said associated position cursor. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data joiner for optimizing performance of a database system wherein data associated with a client is distributed among a plurality of heterogeneous database management systems (DBMSs), comprising:
-
data block fetching means for transparently fetching a data block of records and record identification information that uniquely identifies each of said records of said data block from a target database management system (DBMS) in response to a record request of said client, thereby reducing accesses to said target DBMS and thus optimizing performance of said database system, wherein said target DBMS is one of said heterogeneous DBMSs and wherein a single copy of said data block is maintained in said database system by said target DBMS; real-time positioned update processing means for processing a positioned update instruction issued by said client and said record identification information, wherein said position update instruction has an associated position cursor, said positioned update instruction when executed by said target DBMS enabling said target DBMS to modify a record contained in said data block and addressed by said associated position cursor; statement modifying means for modifying a database statement issued by said client and referencing a host variable by replacing in said database statement said host variable with a literal value equivalent to said host variable if said host variable is invariant, wherein said host variable is repetitively replaced with a literal value during each loop iteration, if said host variable is invariant within a loop iteration; and processing means for processing said modified database statement. - View Dependent Claims (7, 8)
-
-
9. A computer system, comprising:
-
a processor; a plurality of heterogeneous database management systems (DBMSs), wherein data associated with a client is distributed among said heterogeneous DBMSs; a controller for enabling said processor to optimize performance of said heterogeneous DBMSs, said controller comprising; data block fetching means for enabling said processor to transparently fetch a data block of records and record identification information that uniquely identifies each of said records of said data block from a target database management system (DBMS), in response to a record request of said client, thereby reducing accesses to said target DBMS and thus optimizing performance of said database system, wherein said target DBMS is one of said heterogeneous DBMSs and wherein a single copy of said data block is maintained in said database system by said target DBMS; real-time positioned update processing means for enabling said processor to process a positioned update instruction issued by said client and said record identification information, wherein said position update instruction has an associated position cursor, said positioned update instruction when executed by said target DBMS enabling said target DBMS to modify a record contained in said data block and addressed by said associated position cursor; statement modifying means for enabling said processor to modify a database statement issued by said client and referencing a host variable by replacing in said database statement said host variable with a literal value equivalent to said host variable if said host variable is invariant; and processing means for enabling said processor to process said modified database statement. - View Dependent Claims (10, 11)
-
-
12. A controller for enabling a processor to optimize performance of a heterogeneous, distributed database system comprising a plurality of heterogeneous database management systems (DBMSs), wherein data associated with a client is distributed among said heterogeneous DBMSs, said controller comprising:
-
data block fetching means for enabling said processor to transparently fetch a data block of records and record identification information that uniquely identifies each of said records of said data block from a target database management system (DBMS), in to response a record request of said client, thereby reducing accesses to said target DBMS and thus optimizing performance of said database system, wherein said target DBMS is one of said heterogeneous DBMSs and wherein a single copy of said data block is maintained in said database system by said target DBMS; real-time positioned update processing means for enabling said processor to process a positioned update instruction issued by said client and said record identification information, wherein said position update instruction has an associated position cursor, said positioned update instruction when executed by said target DBMS enabling said target DBMS to modify a record contained in said data block and addressed by said associated position cursor; statement modifying means for enabling said processor to modify a database statement issued by said client and referencing a host variable by replacing in said database statement said host variable with a literal value equivalent to said host variable if said host variable is invariant; and processing means for enabling said processor to process said modified database statement. - View Dependent Claims (13, 14)
-
Specification