A database network router (DNR) in a database network includes a client access module and a database resource manager that communicate with each other using a common software interface. The client access module communicates with clients including application servers and external database servers; and the database resource manager communicates with the database servers. The DNR also includes a protocol manager for handling multiple database protocols. The database network router also includes local data cache storage to store commonly used data objects, results of parsed query statement, non-optimized query statements, and optimized alternatives and assigns a priority to each client on log-in. The DNR provides a method for connections pooling, a method for balancing the load in a database networks and a method for synchronizing the data stored in cache memory with the database network and method for synchronizing the data stored in cache memory with the database to insure data reliability. The DNR also provides a method for monitoring and optimizing data queries to improve the performance of the database network. The DNR also provides a method to migrate from an old to a new version of the database.
|
21. A method of load balancing in a database network that includes a plurality of database servers, comprising the steps of:
(a) providing a database network router
(b) detecting, by said database network router, a failed one of the database servers; and
(c) using said database network router for transferring to transfer connections of said failed database server to at least one other server, wherein the step of using said database network router includes:
(i) monitoring said failed database server for a recovery thereof, and
(ii) transferring at least one new connection to said failed database after said recovery.
7. A method for optimization of database access in a database network comprising the steps of:
(a) providing a database network router: and
(b) using said database network router for managing data flow between at least one client and at least one database server in the database network, wherein the step of using said database network router includes comprising the steps of:
(i) receiving, by a database network router, at least one client communication,
(ii) sending, by said database network router, said at least one client communication to said at least one database server, and
(iii) in response to said at least one client communication, said database network router receiving at least one database communication and sending said at least one database communication to said at least one client.
1. A system for optimization of database access from a client device in a database network comprising:
(a) at least one client:
(b) at least one database server; and
(c) a database network router for managing data flow between said at least one client device and said at least one database server, wherein said database network router includes:
(i) a client access module for communicating configured to communicate with said at least one client device, and
(ii) a database resource manager for communicating configured to communicate with said at least one database server;
whereby said database network router may be used to optimize access to said at least one database server by said at least one client.
0. 23. A method for managing data flow between at least one client and at least one database server in the database network comprising the steps of:
(i) receiving, by a database network router, at least one client communication,
(ii) sending, by said database network router, said at least one client communication to said at least one database server,
(iii) in response to said at least one client communication, said database network router receiving at least one database communication and sending said at least one database communication to said at least one client,
(iv) prior to said receiving, said database network router assigning a priority to each said at least one client communication, and
(v) performing (i)-(iii) according to said priority.
0. 24. A method for managing data flow between at least one client and at least one database server in the database network comprising the steps of:
(i) receiving, by a database network router, at least one client communication,
(ii) sending, by said database network router, said at least one client communication to said at least one database server,
(iii) in response to said at least one client communication, said database network router receiving at least one database communication and sending said at least one database communication to said at least one client,
(iv) receiving, by said database network router, a log-out and disconnect request from a first client device that is initially connected to one of said at least one database server by a database connection, and
(v) reporting, by said database network router, said log-out to said one database server while leaving said database connection available for a second client.
0. 22. A system for optimization of database access from a client device in a database network comprising:
at least one database server; and
a database network router for managing data flow between at least one client device and said at least one database server, wherein said database network router includes:
(i) a client access module configured to communicate with at least one client device,
(ii) a database resource manager configured to communicate with said at least one database server, and
(iii) a local data storage, wherein said database resource manager stores local data and wherein said local data is chosen from the group consisting of commonly used data objects, results of parsed query statements, non-optimized query statements, alternatives for said non-optimized query statements, user defined objects, and performance statistics;
whereby said database network router may be used to optimize access to said at least one database server by said at least one client.
2. The system of
3. The system of
4. The system of
(iii) a local data storage, wherein said database resource manager stores local data.
5. The system of
6. The system of
8. The method of
9. The method of
(iv) prior to said receiving, said database network router assigning a priority to each said at least one client communication, and
(v) performing (i)-(iii) according to said priority.
10. The method of claim 7, wherein the step of using said database network router 9, further includes comprising, prior to said assigning:
(vi) identifying, by said database network router, at least one client device from which said at least one client communication is received, and
(vii) receiving, by said database network router, status information selected from the group consisting of a load of said at least one database server, a time of day of said assigning, a day of week of said assigning, a service level of said at least one client device, and a status of at least one communications line between said at least one client device and said at least one database server.
11. The method of
12. The method of
13. The method of
(i) receiving, by said database network router, a log-out and disconnect request from a first client device that is initially connected to one of said at least one database server by a database connection, and
(ii) reporting, by said database network router, said log-out to said one database server while leaving said database connection available for a second client.
14. The method of
(iii) receiving, by said database network router, a log-in and connection request from said second client;
(iv) reporting, by said database network router, said log-in to said database server; and
(v) using, by said database network router, said database connection for said second client device.
15. The method of
(vi) responding, by said database network router, to said first client log-out and disconnect request with a message confirming log-out and disconnect.
16. The method of claim 14, wherein the step of using said database network router includes 7, further comprising:
(i) sending, by said database network router, at least one query to one of the database servers; and
(ii) monitoring, by said database network router, a processing of said at least one query by said one database server, said monitoring including receiving information, regarding said at least one query, selected from the group consisting of a CPU time of said database server, a response time of said database server, a read/write load of said database server and an execution load of said database server.
17. The method of
18. The method of
19. The method of
20. The method of
|
The present invention relates to data base networks and an improved method for the access of data and, more particularly, to optimization techniques for the flow of data, to improve the efficiency, reliability and quality of service in database networks.
One or more database servers serve a large number of clients. The term “clients” as used herein includes users, application servers and other databases. A schematic system diagram of a prior art database network is shown in
In the normal operation of a database network, the clients establish a connection with the database server, and send database requests and database updates to the database server. The database server responds to the requests with data and error messages.
Commonly, there is a high processing load, including read/write load and high memory consumption on a database server, caused, for instance, by massive read requests from its clients. At these times, some or all of the clients wait for a long time in response to their data requests, because of limited database resources such as low availability of the database server central processing unit (CPU), low memory availability or a long queue waiting for a response in the database server read/write unit. The term “load” refers herein to any database server resource, typically time and memory and includes response time, read/write time and memory, an execution time and memory, and CPU time and memory.
Another inefficiency in the operation of current database server networks is related to the management of connections. Whenever a new client establishes or breaks a connection, a long database process is generated consuming CPU time, memory and read/write resources. A method which provides efficiently for the pooling of connections between users would increase database network efficiency.
A known cause of inefficiency in database networks is the use of database requests that are not executed using the most optimal execution steps. Inefficient execution of these database requests causes delay in the response to the client, high CPU consumption, high memory consumption or many read/write requests. Although algorithms are available that identify problematic database requests and suggest alternatives, these have not been applied in real time applications.
When several database servers are managed as a cluster, each client connection request is processed, using automatic selection, to one of the database servers in the cluster. Balance between connections is usually achieved when new connections are established, however, when there are several open connections, some of the database servers may become overloaded. These overloaded servers have limited performance and long response times.
Database servers are changed from time to time. When a database server is changed, applications that issue database requests may receive faster or slower response to their requests, and the load per request on the database changes from one version of the database to the other. The requests, that increase load, need to be identified and changed to receive faster response time from the database server and to consume fewer database resources.
There are some prior art applications which have attempted to address at least partially some of these known problems in database network servers.
Disk cache servers are intended to eliminate massive database access by keeping some data in memory. When the database server issues a disk request to retrieve cached data, the data are provided faster from the cache than from the storage medium. However, cache servers generally require that the application be aware of them since they do not guarantee synchronization between the cached data and the database.
There are application servers which provide a partial solution for central pooling of connections. However, they provide application pooling that requires customization of the database application. There are also special purpose applications using internal cache memory in the application.
There is thus a widely recognized need for the optimization of data flow in data base networks, and it would be highly advantageous to have a system and method for the optimization of database access in data base networks, and to improve the efficiency, reliability and quality of service in database networks
According to the present invention, there is provided a database network router for managing data flow between clients and database servers, including: (a) a client access module for communicating with a client: and (b) a database resource manager for communicating with multiple database servers; wherein the client access module and the database resource manager share a common software interface for communicating.
Preferably, the software interface of the database network router includes a protocol manager for handling multiple database protocols. Preferably, the database network router also includes local data storage for storing local data. Most preferably, the stored local data includes commonly used data objects, results of parsed query statements, non-optimized query statements, alternatives for non-optimized query statements, user defined objects and/or performance statistics. Preferably, a portion of the database resource manager is installed as a database server agent.
According to the present invention, there is provided a method of communicating in a database network, including the steps of: (a) receiving a client communication selected from the group consisting of database queries and updates, from a client; (b) sending at least one client communication to a database; and (c) in response to the client communication, sending at least one database communication, selected from the group consisting of database responses and data, to the at least one client.
Preferably, prior to receiving the client communication, a priority is assigned to the client communication and a database is allocated to the client communication. More preferably, before assigning priority, the client is identified and status information is received. The status information that is received includes a load of the database, a time of day of the assigning, a day of week of the assigning, a service level of the at least one client, and/or a status of at least one communications line between the client and the database.
Preferably, the at least one client communication includes a query. Prior to the sending of a query, at least one of the following is performed: analyzing the query, modifying the query, checking a cost estimate of the query, parsing the query; and storing the query in local storage. Optionally, modifying of the query includes a blocking of the query, and the at least one database communication is an error message.
According to the present invention, there is provided a method of connections pooling in a database network, including the steps of: (a) receiving a log-out and disconnect request from a first client that is initially connected to a database server of the database network by a database connection; and (b) reporting the log-out to the database server of the network while leaving the database connection available for a second client.
Preferably, the method also includes the steps of receiving a log-in and connection request from the second client, reporting the log-in to the database server and using the database connection for the second client. Preferably, the method also includes the step of, prior to the reporting step, responding to the first client log-out and disconnect request with a message confirming log-out and disconnect.
According to the present invention, there is provided a method of load balancing in a database network that includes a plurality of database servers, including the steps of: (a) detecting a failed one of the database servers; (b) transferring connections of the failed database server to at least one other server; and preferably, the method also includes, (c) monitoring the failed database server for a recovery thereof; and (d) transferring at least one new connection to the failed database after the recovery.
According to the present invention, there is provided a method of synchronizing data in a database network, including the steps of: (a) providing a database network router for mediating communications between at least one client and at least one database server of the database network; (b) receiving an updated data object from one of the at least one client of the database network; (c) waiting for a database server to report a successful update; and (d) upon receipt of the report allowing access to the updated data object.
According to the present invention, there is provided a method of optimizing data queries in a database network that includes a plurality of databases, including the steps of: (a) sending at least one query to one of the database servers; and (b) monitoring a processing of the at least one query by the one database server, the monitoring including receiving information, regarding the at least one query, chosen from the group consisting of (i) a CPU time of the database server, (ii) a response time of the database server, (iii) a read/write load of the database server, and (iv) an execution load of the database server.
Preferably, the method further includes, the step of storing the queries in a log of popular non-optimized queries, subsequent to the receiving step. More preferably, the method further includes the step of reading the queries from the log.
Preferably, the method also includes the step of analyzing and testing the queries. Preferably, the method also includes the step of building optimized alternatives for the queries.
According to the present invention there is provided a method of generating rules for migrating from an old database to a new database, including the steps of:
(a) monitoring at least one communication of at least one client, between at least one database network router and: (i) the old database, thereby providing first load results, and (ii) the new database, thereby providing second load results; and
(b) comparing said first and second load results to identify which of the at least one communication, between the at least one database network router and the new database, requires tuning.
The present invention successfully addresses the shortcomings of the presently known database networks by providing a system and method for the optimization of the flow of data, to improve the efficiency, reliability and quality of service in database networks.
The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein:
The present invention is of a database network router which optimizes data flow in a database network. Specifically, the present invention can be used for optimization, data caching, connection pooling, routing, load balancing, prioritization and migration to a new database, in a data base network.
The principles and operation of a database network router according to the present invention may be better understood with reference to the drawings and the accompanying description.
Referring now to the drawings,
The global process parser results caching 179 is illustrated in detail by
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7010303, | Dec 22 2000 | Malikie Innovations Limited | Wireless router system and method |
7024474, | Jan 31 2000 | TELECOMMUNICATION SYSTEMS, INC | System and method to publish information from servers to remote monitor devices |
7203927, | Sep 20 2001 | International Business Machines Corporation | SQL debugging using XML dataflows |
7490265, | May 10 2006 | International Business Machines Corporation | Recovery segment identification in a computing infrastructure |
20030009507, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 13 2005 | BOUKOBZA, ERIC | ACTIVE-BASE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 038475 | /0488 | |
Dec 20 2011 | ACTIVEBASE LTD | Informatica Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051934 | /0443 | |
Feb 24 2012 | Active-Base Ltd. | (assignment on the face of the patent) | / | |||
Aug 06 2015 | Informatica Corporation | Informatica LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 052157 | /0971 | |
Oct 29 2021 | Informatica LLC | JPMORGAN CHASE BANK, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 057973 | /0568 |
Date | Maintenance Fee Events |
Sep 11 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Oct 25 2021 | REM: Maintenance Fee Reminder Mailed. |
Apr 11 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Nov 17 2018 | 4 years fee payment window open |
May 17 2019 | 6 months grace period start (w surcharge) |
Nov 17 2019 | patent expiry (for year 4) |
Nov 17 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 17 2022 | 8 years fee payment window open |
May 17 2023 | 6 months grace period start (w surcharge) |
Nov 17 2023 | patent expiry (for year 8) |
Nov 17 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 17 2026 | 12 years fee payment window open |
May 17 2027 | 6 months grace period start (w surcharge) |
Nov 17 2027 | patent expiry (for year 12) |
Nov 17 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |