Web system having clustered application servers and clustered databases
First Claim
1. A Web system comprising:
- at least one Web server computer system (referred to as a Web server below) that is connected to at least one client computer system through a network, accepts a request from the client computer system, obtains the result by performing the applicable processing in the system or by transferring the processing to another computer system, and returns the result to the client computer;
at least one application server computer system (referred to as an application server below) that is connected to the Web server through a network and executes an application for processing a request transferred from the Web server;
at least one database server computer (referred to as a database server below) that is connected to the application server through a network and includes a database that manages data required by the application to process a request and references or updates the data in response to requests from the application;
a cache database cluster that is connected to the application server and the database server through respective different networks and has functions of caching part of data in the database server, processing requests that can be processed in its own system among requests transferred from the application server to the database server, and transferring requests that cannot be processed in its own system to the database server; and
the cache database cluster including at least one cache database server computer (referred to as a cache database server below) provided with cache databases.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention improves the scalability of application servers and database servers in Web systems, thereby providing higher cost-performance Web systems. The session state of an application is stored in a clustered cache database as required. This enables another application running on an arbitrary cluster server to read the stored session state from the clustered cache database to continue the processing of the application. In addition, a cache database cluster in which data can be updated on the cluster servers is configured, thereby providing a mechanism of causing them to synchronize with the database servers as necessary. Furthermore, a mechanism of adding cache databases to the cache database cluster, thereby enabling the system to respond to an increase in database access load.
63 Citations
15 Claims
-
1. A Web system comprising:
-
at least one Web server computer system (referred to as a Web server below) that is connected to at least one client computer system through a network, accepts a request from the client computer system, obtains the result by performing the applicable processing in the system or by transferring the processing to another computer system, and returns the result to the client computer;
at least one application server computer system (referred to as an application server below) that is connected to the Web server through a network and executes an application for processing a request transferred from the Web server;
at least one database server computer (referred to as a database server below) that is connected to the application server through a network and includes a database that manages data required by the application to process a request and references or updates the data in response to requests from the application;
a cache database cluster that is connected to the application server and the database server through respective different networks and has functions of caching part of data in the database server, processing requests that can be processed in its own system among requests transferred from the application server to the database server, and transferring requests that cannot be processed in its own system to the database server; and
the cache database cluster including at least one cache database server computer (referred to as a cache database server below) provided with cache databases. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
a means for storing a session state of an application into the cache database or the database, and a means for reading the stored session state therefrom and continuing the session of the application. -
3. The Web system of claim 2, wherein the application server comprises, if there are a plurality of cache databases or databases in which session states can be stored and from which session states can be read, a means for determining a cache database or a database into which the session state is stored or from which the session state is read with a session ID that is a unique value given to each logical session in the Web system.
-
4. The Web system of claim 1, wherein the application server retains mapping data including the name of an application or an ID for identifying the application, the name of a database table retaining data used by the application, the name of a cache data server that may have cached data or an ID for identifying the cache database server, and the name of a cache database in the cache database, and has a mechanism of determining a cache database to access by referencing the mapping data.
-
5. The Web system of claim 1, wherein the cache database server has a stored data management table retaining:
-
(1) a format of data to be cached in a cache database in its own system, and (2) a condition for identifying data that has actually been cached in the cache database, or both of the condition and a condition that identifies caching target data.
-
-
6. The Web system of claim 5, wherein:
-
the stored data management table has a column for designating the updatability of data on cache databases;
the cache database server further has a mechanism of determining the updatability of data on the cache database according to a designated value in the column.
-
-
7. The Web system of claim 6, wherein the cache database server includes:
-
a query conversion unit that compares a first condition that identifies data actually being cached in the cache database with a second condition in a query transferred from an application and converts the query to the one to be processed with data in the cache database;
a query issuing unit that issues the converted query to the cache database;
a data retrieval and update unit that accepts the issued query and retrieves and updates data in the cache database;
the query conversion unit, if the first condition does not contain the second condition, further comprising a mechanism of converting a query transferred from the application to a query for obtaining all necessary data in a format designated for caching in the stored data management table; and
the query issuing unit further comprising a mechanism of issuing the converted query to the database server.
-
-
8. The Web system of claim 1, wherein the database server comprises:
-
a cache database management table that stores (1) data that is managed by its own database, (2) the name of a cache database that caches the data or an ID that identifies the cache database, (3) caching target data conditions that designate the range of data to be cached in the cache database, (4) updatability of cached data in the cache database, and (5) operating state of the cache database; and
a transaction management unit that performs transaction processing based on data in the cache database management table.
-
-
9. The Web system of claim 8, wherein the cache database management table includes:
(1) data that is managed by its own database, (2) the name of a cache database that caches the data or an ID that identifies the cache database, (3) caching target data conditions that designate the range of data to be cached in the cache database, (4) updatability of cached data in the cache database, (5) operating state of the cache database, and also (6) cached data conditions that indicate the range of data that has been cached in the cache database.
-
10. The Web system of claim 9, wherein the transaction management unit comprises:
-
comparing a first condition that indicates the range of data referenced by a transaction to be executed in the database server with a second condition that is indicated by an entry of the cached data conditions column in the cache database management table;
executing a transaction without executing the blocking synchronization process of the cache database if there is no overlapped portion between the first condition and the second condition or if the transaction includes only reference processing and all the entries of the updatablility column for records in the cache database management table that has the second condition entries having overlapped portions with the first condition are ‘
No’
; and
otherwiseexecuting a transaction after executing the blocking synchronization process of all cache databases the names of which are included in the cache database name column in the cache database management table that has entries of the second conditions having overlapped portions with the first condition if otherwise.
-
-
11. The Web system of claim 8, wherein the transaction management unit comprises:
-
comparing a first condition that indicates the range of data referenced by a transaction to be executed in the database server with a second condition that is indicated by an entry of the caching target data conditions column in the cache database management table;
executing a transaction without executing the blocking synchronization processing of the cache database if there is no overlapped portion between the first condition and the second condition or if the transaction includes only reference processing and all the entries of the updatablility column for records in the cache database management table that has the second condition entries having overlapped portions with the first condition are ‘
No’
; and
otherwiseexecuting a transaction after executing the blocking synchronization processing of all cache databases the names of which are included in the cache database name column in the cache database management table that has entries of the second conditions having an overlapped portion with the first condition.
-
-
-
12. A query processing method executed in a cache database server that is connected to at least one application server and at least one database server including a database for managing data required for processing a query by an application on the application server and updating and referencing the data in response to a request from the application and that manages a cache database in which part of data in the database is cached, comprising;
-
storing the format of data to be cached in the cache database and a first condition that identifies data that has actually been stored in the cache database in a stored data management table;
comparing a second condition contained in a query transferred from the application server with the first condition;
converting the query to a query for being processed using data in the cache database and issuing the converted query to the cache database; and
converting the query to a query that requests for required data all in a format designated for caching data in the stored data management table and retransferring the converted query to the database server if the first condition does not contain the second condition. - View Dependent Claims (13, 14, 15)
a step of adding the obtained data to the cache database if there is available storage for storing the obtained data therein; and
a step of replacing cached data with the obtained data according to the applicable refresh policy designated in the stored data management table if there is no adequate available storage for storing the obtained data in the cache database.
-
-
14. A cache database query processing method in the query processing method of claim 12 further, wherein a cache database update process involved in the processing of a query issued to the cache database comprising steps of:
-
recording update history of the cache database in a cache database log and updating data only on the cache database if there is adequate available storage for executing the update process on the cache database;
determining data to be deleted from the cache for allocating required storage if there is no adequate available storage on the cache database;
committing the update history of deletion target data and updated data to the server only if the deletion target data has been updated on the cache database;
deleting the deletion target data from the cache database if the commitment process succeeded; and
executing the update process by using available storage allocated through the deletion processing of the deletion target data.
-
-
15. The cache database query processing method of claim 14, wherein presence and absence of an update of the deletion target data on the cache are determined by the result of retrieving the deletion target data in a cache database log.
Specification