IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0565777
(2000-05-05)
|
발명자
/ 주소 |
|
인용정보 |
피인용 횟수 :
173 인용 특허 :
9 |
초록
▼
A load balancing method and system for a transaction computer system having multiple database servers for at least one database, wherein database servers cooperate to provide a unified view of the data in the database. The method includes the steps of establishing connections to said multiple databa
A load balancing method and system for a transaction computer system having multiple database servers for at least one database, wherein database servers cooperate to provide a unified view of the data in the database. The method includes the steps of establishing connections to said multiple database servers for communicating with said database servers; and assigning transactions to respective ones of said multiple database servers to balance respective loads of said multiple database servers. Assigning each new transaction includes the steps of determining possible assignments of that new transaction to one or more of said multiple database servers, each said possible assignment to one of said multiple database servers being based on a load balancing scheme to balance respective loads of said multiple database servers; and assigning that new transaction to one of said multiple database servers as a function of said possible assignments of that new transaction, to balance respective loads of said multiple database servers.
대표청구항
▼
1. A database load balancing method for back-end tier of a multi-tier computing environment including multiple database servers for at least one database, the database servers having a unified view of data in each database, comprising the steps of:receiving one or more database queries in the back-e
1. A database load balancing method for back-end tier of a multi-tier computing environment including multiple database servers for at least one database, the database servers having a unified view of data in each database, comprising the steps of:receiving one or more database queries in the back-end tier of said multi-tier computing environment;establishing database specific connections to said multiple database servers in the back-end tier of said multi-tier computing environment for communicating with said database servers; andassigning new database queries to respective ones of said multiple database servers in the back-end tier of said multi-tier computing environment to balance respective loads of said multiple database servers wherein assigning each new database query comprises the steps of:(i) determining possible assignments of that new database query to one or more of said multiple database servers, each said possible assignment to one of said multiple database servers being based on a weighted combination of a number of database specific load balancing schemes to balance respective database query loads of said multiple database servers, further comprising the steps of dynamically changing a magnitude of one or more of weighting factors of said weighted combination; and(ii) assigning that new database query to one of said multiple database servers as a function of said possible assignments of that database query, to balance respective database query loads of said multiple database servers.2. The method of claim 1 wherein each of said one or more database queries operates on the data records stored in said database.3. The method of claim 1, wherein each database load balancing scheme identifies one of said multiple database servers for possible assignment of a new database query thereto to balance respective database query loads of said multiple database servers, based on database specific predetermined criteria.4. The method of claim 1, further comprising the steps of maintaining a database query load history for each of a plurality of said multiple database servers, and at least one of said database load balancing schemes in step (ii) of assigning database queries includes the steps of identifying a database server in the back-end tier of the multi-tier computing environment for possible assignment of the new database query, wherein the identified database server has the lowest determined database query load among said multiple database servers based on the respective database query load histories of said plurality of database servers.5. The method of claim 1, wherein the step of establishing said database specific connections further includes maintaining said connections to said database servers, and reusing existing connections for communication with said database servers.6. The method of claim 1, wherein the step of establishing said database specific connections further includes establishing said connections using an interface to the multiple database servers.7. The method of claim 1, wherein:the step of establishing database specific connections further includes the steps of: establishing a first set of connections to a first subset of said multiple database servers using a first interface; and establishing a second set of connections to a second subset of said multiple database servers using a second interface; andthe step of assigning database queries further includes the steps of, for each of said subsets of the multiple database servers, assigning each of one or more database queries to respective ones of database servers in that subset of multiple database servers to balance respective database query loads of the database servers in that subset of the multiple database servers.8. The method of claim 1, further comprising the steps of, for each new database query:receiving that new database query from a requester and selecting one of said database servers for assigning the new database query thereto, in a first process, to balance respective database query loads of said multiple database servers; andsending the new database query to the selected database server, in a second process, using one of said database specific connections to the selected database server;wherein said processes cooperate in a specified sequence.9. The method of claim 8, further comprising the steps of, after processing of the new database query in said database:receiving response from the database in relation to said new database query via the selected database sever, in the second process, and communicating the response for delivery to the requester.10. The method of claim 9, further comprising the steps of utilizing an inter-process communication protocol for cooperation among said processes.11. The method of claim 9, wherein one or more of said processes comprise Java servlets.12. The method of claim 11, wherein said communication protocol comprises inter-servlet communication protocol.13. The method of claim 9, further comprising the steps of utilizing a single-thread or a multi-thread communication protocol for cooperation among said processes.14. A database load balancing system for back-end tier of a multi-tier computing environment including multiple database servers for at least one database, the database servers having a unified view of data in each database, comprising:at least one database load balancer in the back-end tier of said multi-tier computing environment for receiving new database queries and means for selecting one of said database servers for assigning each new database query to balance respective database query loads of said multiple database servers wherein means for selecting one of said database servers includes:(i) means for determining possible assignments of each new database query to one or more of said multiple database servers, each possible assignment to one of said multiple database servers being based on a weighted combination of a number of database specific load balancing schemes, further comprising means for dynamically changing a magnitude of one or more weighting factors of said weighted combination; and(ii) means for selecting one of said database servers for assigning the new database query thereto as a function of said possible assignments; andat least one database server interface including connections for communication with said multiple database servers in the back-end tier of said multi-tier computing environment to send each new database query to one of said multiple database servers selected by the database load balancer.15. The database load balancing system of claim 14, wherein each database load balancing scheme identifies one of said multiple database servers for possible assignment of a new database query thereto to balance respective database query loads of said multiple database servers, based on database specific predetermined criteria.16. The database load balancing system of claim 14, further includes means for maintaining a database query load history for each of a plurality of said multiple data base servers, and at least one of said database load balancing schemes in step (ii) of selecting database servers identifies a database server for possible assignment of the new database query, wherein the identified database server has the lowest determined database query load among said multiple database servers based on the respective database query load histories of said plurality of database servers.17. The database load balancing system of claim 14, wherein the database server interface includes database specific connection means for establishing said connections to said multiple database servers for communication with the multiple database servers.18. The database load balancing system of claim 17, wherein the database server interface further includes means for maintaining said database specific connections to said database servers, and reusing existing database specific connections for communicating with said database servers.19. The database load balancing system of claim 14, wherein:the database load balancer comprises a first process means for receiving a new database query from a requester and selecting one of said database servers for assigning the new database query to balance respective database query loads of said multiple database servers; andthe database server interface further comprises a second process means for sending each new database query to one of said multiple database servers selected by the first process means;wherein said first and second process means cooperate in a specified sequence.20. The database load balancing system of claim 19, wherein the second process further receives a response from the database in relation to said new database query via the selected database sever after processing of the new database query in said database, and communicates the response for delivery to the requester.21. The database load balancing system of claim 19, wherein each of the first and the second processes include means for inter-process communication for cooperation among said process means.22. The database load balancing system of claim 21, wherein said inter-process communication comprises inter-servlet communication protocol.23. The database load balancing system of claim 21, wherein said inter-process communication comprises a single-thread or a multi-thread communication protocol.24. The database load balancing system of claim 19 wherein one or more of said processes comprise Java servlets.25. The database load balancing system of claim 14 wherein the multi-tier computing environment comprises multiple computers interconnected via communication link means, at least one of said computers designated as a front end-tier computer, at least one of said computers designated as a middle tier computer generating said database queries, at least one of said computers designated as a load balancer computer, and at least one of said computers designated as a back-end tier computer including said database servers, the middle tier computer connected between the front-end and back-end tier computers, and the load balancing system connected between the middle tier computer and the back-end tier computers.26. The database load balancing system of claim 14, further comprising:at least two database load balancers, each load balancer being for receiving new database queries and for each new database query selecting one of said database servers for assigning that new database query, to balance respective database query loads of said multiple database servers; andat least two database server interfaces, each database server interface corresponding to a database load balancer, each database server interface including connections to said multiple database servers for sending each new database query to one of said multiple database servers selected by a corresponding database load balancer;means for selecting one of said database load balancers and corresponding interface that are functioning to receive new database queries.27. The database load balancing system of claim 26, wherein the means for selecting one of said database load balancers includes means for monitoring functioning status of each load balancer and for routing new database queries to one of said database load balancers that is functioning.28. A computer program product for use with a database load balancing system in back-end tier of a multi-tier computing environment including multiple database servers for a least one database, the database servers having a unified view of the data in each database, the computer program product comprising:a computer readable medium;means, provided on the computer-readable medium, for establishing database specific connections to said multiple database servers in the back-end tier of said multi-tier computing environment for communicating with said database servers; andmeans, provided on the computer-readable medium, for assigning new database queries to respective ones of said multiple database servers in the back-end tier of said multi-tier computing environment to balance respective database query loads of said multiple database servers wherein assigning each new database query comprises:(i) means for determining possible assignments of that new database query to one or more of said multiple database servers, each said possible assignment to one of said multiple database servers being based on a weighted combination of a number of database specific load balancing schemes to balance respective database query loads of said multiple database servers, further comprising means for dynamically changing the magnitude of one or more weighting factors of said weighted combination; and(ii) means for assigning that new database query to one of said multiple database servers as a function of said possible assignments of that new database query, to balance respective database query loads of said multiple database servers.29. The computer program product of claim 28, wherein each database load balancing scheme identifies one of said multiple database servers for possible assignment of a new database query thereto to balance respective database query loads of said multiple database servers, based on database specific predetermined criteria.30. The computer program product of claim 28, further comprising means, provided on the computer-readable medium, for maintaining a database query load history for each of a plurality of said multiple data base servers, and wherein at least one of said load balancing schemes in step (ii) of selecting database servers identifies a database server for possible assignment of the new database query, wherein the identified database server has the lowest determined database query load among said multiple database servers based on the respective database query load histories of said plurality of database servers.31. The computer program product of claim 28, wherein the means for establishing connections further includes means for maintaining said database specific connections to said database servers, and reusing existing database connections for communication with said database servers.32. The computer program product of claim 28, wherein the means for establishing database specific connections further includes means for establishing said connections using an interface to the database servers.33. The computer program product of claim 28, further comprising:first process means, provided on the computer readable medium, for receiving each new database query from a requester and selecting one of said database servers for assigning the new database query thereto, to balance respective database query loads of said multiple database servers; andsecond process means, provided on the computer readable medium, for sending a new database query to a selected database server, using one of said database specific connections to the selected database server;wherein said first and second process means cooperate in a specified sequence.34. The computer program product of claim 33, wherein the second process means further includes means for, after processing of the new database query in said database, receiving response from the database in relation to said new database query via the selected database server, and communicating the response for delivery to the requester.35. The computer program product of claim 33, wherein one or more of said process means comprise Java servlets.36. The computer program product of claim 35, wherein one or more of said process means comprises inter-servlet communication protocol.37. The computer program product of claim 36 wherein said communication protocol comprises a single-thread or a multi-thread communication protocol.38. The computer program product of claim 33, further comprising means, provided on the computer-readable medium for inter-process communication for cooperation among said process means.39. The computer program product of claim 33, further includes on the computer-readable medium Java Runtime Environment (JRE) and Apache Tomcat servlet container software systems.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.