[go: up one dir, main page]

WO2012070292A1 - 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム - Google Patents

分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム Download PDF

Info

Publication number
WO2012070292A1
WO2012070292A1 PCT/JP2011/070460 JP2011070460W WO2012070292A1 WO 2012070292 A1 WO2012070292 A1 WO 2012070292A1 JP 2011070460 W JP2011070460 W JP 2011070460W WO 2012070292 A1 WO2012070292 A1 WO 2012070292A1
Authority
WO
WIPO (PCT)
Prior art keywords
servers
database
load
physical node
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2011/070460
Other languages
English (en)
French (fr)
Inventor
祐己 牧野
山本 学
幹雄 竹内
泰男 濱野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012545640A priority Critical patent/JP5567686B2/ja
Priority to GB1309532.8A priority patent/GB2499547B/en
Priority to DE112011103497T priority patent/DE112011103497T5/de
Publication of WO2012070292A1 publication Critical patent/WO2012070292A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Definitions

  • the present invention relates to a distributed database, and more particularly to an information processing system, an information processing apparatus, a load balancing method, a database arrangement planning method, and a program for balancing loads between physical nodes in a distributed database environment.
  • Patent Document 1 In an application that uses a database, it is desired to improve the performance and capacity of the database in accordance with the data scale and the access load.
  • a technique to improve the scalability of the entire system there is a technique to reduce the load by creating a database replica and distributing multiple database servers that handle all data to multiple physical nodes.
  • Patent Document 1 There is also known a technique in which a database is divided in a practical search range and a plurality of database servers that respectively handle the divided partitions are distributed. As described above, by distributing a database on a plurality of physical nodes and constructing a distributed database environment, it is possible to improve transaction performance and improve system availability and fault tolerance.
  • FIG. 14A is a schematic diagram showing a distributed database environment in the prior art.
  • a distributed database environment 500 shown in FIG. 14A is composed of a plurality of database servers 510a1 to 510c2 that are distributed on a plurality of physical nodes.
  • the database is divided and each partition is multiplexed, and each database server 510 is responsible for data of a different partition or the same partition.
  • a logical unit of a database managed by a group (for example, 510a1 and 510a2) of database servers 510 that handle the same partition is referred to as a distributed database 520 (for example, 520a). That is, the distributed database 520 includes an original database (master) that handles the same partition and a duplicate database (replica) that is replicated from the master.
  • master original database
  • replica duplicate database
  • each partition is multiplexed, and these database servers 510 are divided into a plurality of databases.
  • the unit of data handled by each physical node can be reduced. This increases transaction performance and improves system availability and fault tolerance.
  • by creating a replica and multiplexing data as described above it is possible to distribute the load caused by access from the client application 530 and to improve the system availability and fault tolerance.
  • different distributed databases 520 are provided on physical nodes 540 that are the same physical resources as shown in FIG. 14B.
  • the database server 510 is used in combination. However, when a plurality of database servers 510 are arranged on the same physical node 540, when access is concentrated on a certain database server (for example, database A), the database server (for example, database A) It can happen that the resources of other database servers (eg database C ′) on the same physical node (eg physical node 540a) are under pressure.
  • the present invention has been made in view of the above-mentioned problems of the prior art, and the present invention is responsive, flexible, and easy to handle in situations of sudden overload and remaining physical resources in a distributed database environment.
  • Information processing system, information processing apparatus, and load balancing method capable of balancing the load on physical nodes by a method with low performance cost, and thus realizing an efficient distributed database environment on limited physical resources
  • An object of the present invention is to provide a database arrangement planning method and program.
  • the present invention has been made in view of the disadvantages of the prior art described above, and the present invention provides an information processing system having the following features.
  • the information processing system according to the present invention is a plurality of database servers distributed on a plurality of physical nodes, and two or more servers serving different data among the plurality of database servers are the same physical node
  • the plurality of database servers wherein one or more servers arranged on the same and serving the same data as any of the two or more servers are respectively arranged on one or more other physical nodes.
  • the information processing system monitors the load on each physical node, and establishes a connection with the client from the database server on the physical node having a higher load than the target to the database server on the physical node having a lower load than the target. Move connections and distribute connections to balance physical node load.
  • the information processing system can include a reconnection control unit that temporarily disconnects a connection planned for reconnection at a transaction boundary and acquires a new connection related to the reconnection. Thereby, the movement of the connection is realized by disconnecting the connection scheduled for reconnection and acquiring a new connection.
  • the present invention provides an information processing apparatus that includes a pool unit that is connected to a plurality of physical nodes via a network and pools a plurality of connections that connect to each of the plurality of database servers, and that performs the connection distribution. be able to. Further, the present invention can provide an information processing apparatus that makes a plan for distributing and arranging the plurality of database servers on a plurality of physical nodes.
  • the present invention can further provide a load balancing method executed by the information processing apparatus.
  • the load balancing method includes a step in which the information processing apparatus monitors a load related to each of the physical nodes, and a connection with a client to a database server on the physical node having a larger load than the target among the plurality of database servers. Issuing a request for disconnecting at the transaction boundary, and obtaining a new connection for reconnection with the client to the database server on the physical node having a smaller load than the target among the plurality of database servers. Performing the steps.
  • the present invention provides a database placement method for planning to distribute a plurality of database servers on a plurality of physical nodes.
  • this database arrangement method two or more information processing apparatuses are arranged so that two or more servers that handle the same data among a plurality of database servers are not arranged on the same physical node, and that have different data.
  • the databases are arranged so that the servers are arranged on the same physical node, and one or more servers having the same data as one of the two or more servers are arranged on one or more other physical nodes, respectively. Including performing the planning steps.
  • connections are allocated from clients for dynamically changing load status.
  • the operation with low performance cost of changing the direction makes it possible to balance the load of the entire physical node and effectively use the physical resources. As a result, it is possible to promptly cope with sudden overload and surplus resources that were difficult to deal with by increasing physical resources or adding replicas.
  • the functional block diagram implement
  • the flowchart which shows the connection distribution process which the connection distribution part by embodiment of this invention performs.
  • the figure explaining arrangement plan algorithm A (n) The figure which illustrates the load distribution in the database arrangement
  • a data processing system including a plurality of databases distributed on a plurality of physical nodes and a client application that accesses the plurality of databases will be described as an example of an information processing system.
  • FIG. 1 shows functional blocks implemented in the data processing system 100 according to the embodiment of the present invention.
  • a data processing system 100 shown in FIG. 1 plans a physical node group 120 composed of a plurality of physical nodes (not shown) and a database arrangement, and distributes the databases on the physical node group 120 according to the plan.
  • the client 164 corresponds to the application layer.
  • the client 164 is connected to a web client that is connected using the HTTP protocol. Please note that this is omitted.
  • Each physical node, the database placement server 110, the application server 130, and the connection distribution server 132 constituting the physical node group 120 are respectively TCP / IP and Ethernet (registered trademark) LAN (Local Area Network) or VPN (Virtual They are connected to each other via a wired or wireless network (not shown) including a private network, a WAN (Wide Area Network) using a dedicated line, and the Internet.
  • TCP / IP and Ethernet registered trademark
  • LAN Local Area Network
  • VPN Virtual Network
  • Each of the physical nodes constituting the physical node group 120 includes a central processing unit (CPU) such as a single core processor or a multi-core processor, a cache memory, a RAM, a network interface card (NIC), and an appropriate storage device. And operate under the control of an appropriate operating system (hereinafter referred to as OS).
  • OS operating system
  • the physical node may adopt any architecture of a Shared-Nothing type and a Shared-Disk type.
  • DBMS database management system
  • database server refers to a DBMS server process operating on each physical node
  • database refers to data including database objects such as tables, views, and indexes managed by the DBMS.
  • a collection of The database server and the database as a data collection may be collectively referred to as “database”.
  • Each database server 122 can handle different data or the same data.
  • a unit of a logical group of databases composed of database servers 122 that handle the same data is referred to as a “distributed database”.
  • the original is referred to as a master database (hereinafter simply referred to as a master)
  • a replica database hereinafter simply referred to as a replica
  • the replication method is not particularly limited, and may be either a multi-master method or a master-slave method.
  • a plurality of database servers 122a to 122g distributed on the physical node group 120 form a distributed database environment including a plurality of distributed databases each including a master and one or more replicas. Is done.
  • the “database” and the “distributed database” may include a relational database (RDB), but are not limited thereto.
  • RDB relational database
  • an object-oriented database an XML (extensible Markup Language) database
  • a key It can be applied to any database such as a -value type data store, and is not limited to a specific data model.
  • the database placement server 110, the application server 130, and the connection distribution server 132 are generally configured as general-purpose computers such as personal computers, workstations, rack mount or blade servers, mid-range computers, and mainframes. More specifically, the database placement server 110, the application server 130, and the connection distribution server 132 include a CPU such as a single-core processor or a multi-core processor, a cache memory, a RAM, a NIC, a storage device, and the like. Under the control of the OS, hardware and software cooperate to realize each functional unit and each process described later.
  • the database placement server 110 includes a placement planning unit 112 that plans database placement for realizing efficient load balancing, and a placement execution unit 114.
  • the placement execution unit 114 is a functional unit that places the database server 122 of the distributed database on the physical node group 120 in accordance with the database placement plan planned by the placement planning unit 112.
  • the present embodiment can further include an auxiliary configuration unit 116 that monitors a load deviation between physical nodes in a long-term span, and appropriately changes and corrects the database arrangement so as to eliminate the load deviation. Details of the database arrangement plan and the auxiliary configuration for reducing the load bias will be described later.
  • connection can include fixing the destination by affinity for the request.
  • a master and one or more replica database servers when load balancing is performed using a master and one or more replica database servers, these database servers are located on different physical nodes, and the master and one or more replicas include For example, connections are allocated by a round robin method or the like.
  • connections are distributed at a fixed rate, if multiple distributed database server entities are placed on the same physical node for the purpose of effective use of physical resources, access concentrates on one distributed database server entity.
  • a situation may occur in which the resource of the server entity of the other distributed database on the same physical node is compressed. In the prior art, such a situation is generally dealt with by increasing physical resources and adding replicas, but it is difficult to appropriately deal with sudden overloads and surplus resources. .
  • the connection management mechanism 170 loads the load established between the client 164 and the database server entity of the distributed database.
  • a configuration in which the proportion of connections distributed to the master and replica on the physical node group 120 is dynamically controlled in accordance with the situation is adopted to balance the load between the physical nodes on which the master and replica are arranged.
  • the connection management mechanism 170 includes a connection distribution unit 140, a connection request reception unit 160, and a driver unit 162.
  • the connection distribution unit 140 is mounted on the connection distribution server 132, and the connection request reception unit 160 and the driver unit 162 are client-side modules, and the application server 130 on which the client application operates.
  • the connection distribution server 132 can be configured as a connection distribution server that uniformly distributes connections to the clients 164 on the plurality of application servers 130.
  • a client 164a in FIG. 1 represents a client application that is requesting a connection and is newly establishing a connection.
  • the client 164b represents a client application that has already established a connection and is currently connected.
  • the connection request reception unit 160 acquires a connection from the connection distribution unit 140 in response to a connection request from the client 164a trying to newly establish a connection, and between the client 164a and the database server entity of the distributed database. Establish a connection.
  • the connection distribution unit 140 monitors the load on each physical node and determines the ratio of connection distribution to the server entity (master or replica) of the distributed database according to the load status. In response to the connection acquisition request from the connection request reception unit 160, the connection distribution unit 140 returns a connection to the database server entity according to the determined connection distribution ratio.
  • connection distribution unit 140 finds the existence of a physical node to which an excessive load is applied in accordance with the load state, the connection distribution unit 140 corresponds to the excessive load in the connection to the database server entity on the physical node.
  • the driver unit 162 is requested to disconnect and reconnect.
  • the driver unit 162 controls the connection between the client 164b and the database server entity of the distributed database.
  • the connection requested to be reconnected at the transaction boundary Disconnect once.
  • the driver unit 162 acquires a new connection from the connection request receiving unit 160 and continues the connection between the client 164 and the database server entity. By thus disconnecting the connection at the transaction boundary, it is possible to hide disconnection and reconnection from the user.
  • the driver unit 162 constitutes a reconnection control unit of the present embodiment.
  • the connection distribution unit 140 monitors the load on each physical node, determines the connection distribution ratio according to the load status of the physical node group 120, and reconnects excessive connections to the driver unit 162. Request. As a result, the connection with the client is moved from the database server entity on the physical node having a higher load than the target to the database server entity on the physical node having a lower load than the target, thereby balancing the load between the nodes. .
  • FIG. 2 is a conceptual diagram illustrating connection distribution according to the embodiment of the present invention.
  • FIG. 2A shows a connection state before connection distribution
  • FIG. 2B shows a connection state when connection distribution is performed.
  • FIG. 2 shows that two database servers are arranged on each physical node 124a, 124b, 124c.
  • Each database server is identified by A, B, C.
  • the distributed databases A, B, and C can handle, for example, each partition divided from a single database, or data of a different database.
  • X (where X is an arbitrary alphabet) represents a master, and X ′ (similarly, X is an arbitrary alphabet) represents a replica.
  • the connection management mechanism 170 manages the connection between each client 164 and the database server entity of the distributed database, and distributes the connection between the master and replica of the distributed database. As shown in FIG. 2A, for example, when accesses are concentrated in the distributed databases B and C, if the connection distribution ratio is fixed, the database server entities C and B ′ are excessive in the physical node 124b on which they share. Will cause a heavy load.
  • the connection management mechanism 170 handles an excessive load among the connections allocated to the database server entities B ′ and C on the physical node 124b having an excessive load. The corresponding amount is once cut at the transaction boundary. Further, the connection management mechanism 170 reconnects after changing the ratio of connection distribution between the database server entities B and B ′ operating on different physical nodes and between the database server entities C and C ′. The connection from the client 164 is maintained and the excessive load on the physical node 124b is reduced. At this time, the ratio of connection allocation is determined probabilistically so as to be largely distributed to the database server entity B on the physical node 124a with the smaller load and the database server entity C 'on the physical node 124c.
  • the load is moved from the physical node having a relatively large load to the physical node having a relatively small load.
  • the load peak of the entire node group 120 can be smoothed.
  • FIG. 3 is a diagram illustrating a relationship in which load balancing is possible by connection distribution and a relationship in which load balancing is impossible.
  • FIG. 3 shows the relationship between the two physical nodes 124a and 124b, and two database servers are arranged on each of the physical nodes 124a and 124b.
  • FIG. 3A illustrates a relationship in which load balancing by connection distribution is impossible
  • FIG. 3B illustrates a relationship in which load balancing by connection distribution is possible.
  • the server sets on the physical node 124a and the physical node 124b are the same considering the server sets having the distributed databases A and B as elements.
  • the server set ⁇ A, B ⁇ on the physical node 124a and the server set ⁇ B, X ⁇ on the physical node 124b are different in the relationship shown in FIG.
  • the load can be moved between the master and one or more replicas of the distributed database located on different physical nodes, but as shown in FIG.
  • the server set of all the physical nodes where the nodes are arranged is the same, the load cannot be substantially balanced by the connection distribution. Therefore, with respect to a certain distributed database, in order to realize load balancing by connection distribution, it is a condition that the server set on the physical node where the master and the replica are arranged has at least a difference. Furthermore, it can be said that it is more preferable that the difference in the server set on the physical node where the master and the replica are arranged is larger.
  • FIG. 4 illustrates a database arrangement in which database servers of five distributed databases each having a multiplicity of 3 are distributed on five physical nodes.
  • FIG. 5 illustrates a database arrangement in which database server entities of six distributed databases each having a multiplicity of 2 are distributed on six physical nodes.
  • the server sets on the physical nodes where the database server entities of the respective distributed databases are arranged are different from each other.
  • the server sets of the physical nodes Node1, Node2, and Node4 in which server entities are arranged are ⁇ A, C, E ⁇ , ⁇ A, B, D ⁇ , ⁇ A, C, D, respectively. ⁇ , Which are different from each other.
  • the server sets on the physical nodes are the same for the distributed databases A to C.
  • Node 2 and Node 3 share the server entities of the distributed databases A to C, and the server sets of these physical nodes are the same.
  • the masters or replicas of the distributed databases A to C exist not only on the physical nodes Node2 and Node3 but also on physical nodes (Node1, Node4, and Node5) having different server sets. Therefore, the load can be moved between the physical nodes Node2 and Node3 and the other physical nodes (Node1, Node4, Node5).
  • the load can be balanced as follows. However, the presence of a plurality of physical nodes having the same server set limits the degree of freedom of load movement.
  • the movable relationship spreads as much as possible by involving more physical nodes in the physical node group 120.
  • the load can be directly moved between masters and replicas of the same distributed database arranged on different physical nodes.
  • the load can be indirectly moved between masters and replicas of different distributed databases by way of the movable relationship in the same distributed database. Therefore, the characteristics of the database arrangement such as the spread of the movable relationship as described above is that the relationship between the physical node and the load movable relationship is regarded as a graph, and the physical node having the movable relationship is connected. It can be quantified as a size.
  • a graph formed by connecting edges (edges or links) connecting physical nodes on which server entities of the same distributed database are included, including different distributed databases, can be quantified as a cluster based on the size of the cluster. it can. If the cluster is formed into a small group and closed by a part of the physical node group 120, the load balance is closed in the small cluster.
  • the spread of the cluster as a characteristic of database arrangement connects the physical nodes where the server entities of the same distributed database are arranged.
  • This is a cluster formed by connecting edges, and can be quantified by the number of nodes of the cluster including physical nodes on which database servers of different distributed databases share.
  • the number of nodes of each cluster is preferably 3 or more considering that the distributed database is composed of a master and one or more replicas. From the viewpoint of load balancing of the entire physical node group 120, More preferably, it matches the number of physical nodes in the node group 120.
  • the number of nodes in the cluster is equal to the number of physical nodes, and the load balance is achieved in the entire physical node group 120.
  • two closed clusters are configured in the physical node group 120. In this case, both clusters do not have a shared database that is arranged in common, so the load cannot be moved between the clusters. Therefore, load balancing is performed independently in the cluster composed of the physical nodes Node1, Node2, and Node3 and in the cluster composed of the physical nodes Node4, Node5, and Node6.
  • FIG. 6 shows detailed functional blocks related to connection distribution realized in the data processing system 100 according to the embodiment of the present invention.
  • FIG. 6 shows a physical node group 120 in which a plurality of database servers are arranged, a connection distribution unit 140, a connection request reception unit 160, a driver unit 162, and a client 164.
  • connection distribution unit 140 includes a performance information acquisition unit 142, an arrangement configuration information acquisition unit 144, a load status calculation unit 146, a dynamic equilibrium planning unit 148, a connection pool adjustment unit 150, a connection And a resolution unit 152.
  • the performance information acquisition unit 142 monitors the performance of the distributed database environment and acquires performance information regularly or irregularly.
  • the performance information is not particularly limited, but the load on the physical node, such as the usage value (usage rate) of physical resources such as CPU, disk I / O and memory for each physical node, and the total number of connections of the physical node.
  • the information which quantifies can be mentioned.
  • the performance information for each distributed database includes information that quantifies the load on the distributed database, such as the number of connections for each distributed database, the amount of table data increase, the usage of the database area, the response time of queries, and the number of users. Can be mentioned. These information can be obtained from performance monitoring tools deployed in a distributed database environment.
  • the arrangement configuration information acquisition unit 144 acquires arrangement configuration information of the distributed database environment regularly or irregularly.
  • the arrangement configuration information is information describing the arrangement configuration of the database server entity on the physical node group 120, and is information indicating which distributed database server entity is arranged on each physical node.
  • the arrangement configuration information is simply configured as a list describing a server set for each physical node.
  • the load status calculation unit 146 calculates the load status for each physical node by multiplying the performance information acquired by the performance information acquisition unit 142 and the arrangement configuration information acquired by the arrangement configuration information acquisition unit 144.
  • the load status for each physical node to be calculated includes the load evaluation amount for each physical node for quantifying the load applied to the physical node to be balanced, and the ratio of each database server entity for each physical node to the load evaluation amount. Including.
  • the method for calculating the load evaluation amount is not particularly limited as long as the load applied to each physical node can be quantified.
  • the resource usage value (usage rate) of the physical node that can be acquired and the total number of connections are directly used. It may be used.
  • the calculation method of the ratio to the load evaluation amount is not particularly limited.
  • a distributed database that is, a server set
  • the ratio of connection distribution to each server entity in the database the ratio of each server entity in the load evaluation amount on the physical node can be calculated.
  • the connection distribution ratio can be acquired from, for example, the dynamic equilibrium planning unit 148 described later.
  • the dynamic equilibrium planning unit 148 determines the target value for determining the ratio of connection allocation in consideration of the current connection status and the amount of connection change estimated during a predetermined interval, and determines the load on each physical node. Connection allocation and reconnection are planned so that the evaluation amount approaches the target value. More specifically, the dynamic equilibrium planning unit 148 applies the distribution ratio or probability to the server entity of the distributed database according to the load below the target according to the load status calculated by the load status calculation unit 146. Plan the distribution of new connections, including reconnections.
  • connection pool adjustment unit 150 prepares a sufficient amount of connections 156 in the pool unit 154 according to the connection distribution ratio planned by the dynamic equilibrium planning unit 148.
  • the connection resolution unit 152 manages the number of connections such as the maximum number of connections lent out from the pool to the pool unit 154.
  • the connection resolution unit 152 selects the connection to be connected to the server entity of the distributed database related to the request from the connections 156 pooled in the pool unit 154. Pass in response to the request. At this time, a connection to connect to the server entity is passed with a probability corresponding to the distribution ratio.
  • connection request receiving unit 160 issues a connection resolution request to the connection resolution unit 152, and between the connection requesting client 164a and the server entity of the distributed database. A connection is established and a connection reference is returned to the client 164a.
  • connection pooling by applying connection pooling by the connection pool adjustment unit 150 and the connection resolution unit 152, the connection between the distributed database to the database server entity is reused, so that the connection between the client and the server entity is established.
  • the overhead due to various processes such as authentication when establishing a connection can be reduced.
  • the dynamic equilibrium planning unit 148 finds the presence of a physical node to which an excessive load is applied from the load status calculated by the load status calculation unit 146, the dynamic equilibrium planning unit 148 corresponds to the number of connections corresponding to the load exceeding the target value.
  • the connection is planned after disconnecting once, and the driver unit 162 is requested to reconnect the connection.
  • the driver unit 162 temporarily disconnects the connection related to the reconnection request at the transaction boundary, and requests the connection request reception unit 160 to reconnect.
  • the connection request receiving unit 160 issues a connection resolution request to the connection resolution unit 152, establishes a new connection with the server entity of the distributed database, and refers to the new connection. Return to the driver unit 162.
  • the driver unit 162 temporarily disconnects the connection I156a for the server entity A and requests the connection request reception unit 160 to reconnect. To do.
  • the connection request reception unit 160 acquires, for example, the connection II 156b for the database server entity A 'and maintains the connection between the distributed database A and the client.
  • connection to a server entity on a physical node that is subjected to a load larger than the target by executing the connection distribution and reconnection plan by the dynamic equilibrium planning unit 148 and the reconnection by the connection request receiving unit 160 and the driver unit 162 described above. Is disconnected, the connection is switched to the server entity on the physical node having a smaller load, and the load is smoothly smoothed between the physical nodes.
  • FIG. 7 is a flowchart showing connection distribution processing executed by the connection distribution unit 140.
  • the process shown in FIG. 7 starts from step S100 in response to, for example, the activation of the connection distribution function service.
  • step S101 the connection distribution unit 140 loops step S101 until a predetermined interval time elapses (during NO).
  • This interval time is an interval for controlling connection distribution, and a time interval corresponding to the amount of load fluctuation depending on the characteristics of the client application can be set. If the predetermined interval time has elapsed in step S101 (YES), the process proceeds to step S102.
  • step S102 the performance information acquisition unit 142 acquires performance information of the distributed database environment.
  • step S103 the arrangement configuration information acquisition unit 144 acquires arrangement configuration information of the distributed database environment.
  • step S104 the load status calculation unit 146 uses the acquired performance information and arrangement configuration information, and the load evaluation amount for each physical node and each database server entity for each physical node occupy the load evaluation amount. Calculate the load situation including the percentage.
  • the load status for each physical node the resource usage value for each physical node and the ratio of each database server entity in the physical node of the resource usage value (hereinafter referred to as the resource usage ratio) Is used.
  • the average value of the increase in the number of connections that can occur in C is C
  • the resource usage value corresponding to one connection is r
  • the target value T for the resource usage value is calculated by the following equation (1).
  • the target value T is a control target for determining the ratio of connection distribution so that the load on each physical node is balanced in consideration of the current connection status and the change in connection during the predetermined interval time. Value. Moreover, the increase amount average value C of the number of connections can be acquired as a performance value from the database side, for example.
  • the dynamic equilibrium planning unit 148 determines the ratio of connection distribution to the server entity on each physical node according to the calculated target value T.
  • T-R 1 T- R 2: ...: a T-R I.
  • the resource usage value r corresponding to one connection is a converted value that the connection 1 true occupies in the resource usage value in the physical node.
  • the total number of connections in the physical node can be acquired as performance information.
  • the resource usage value of the physical node can be Rs, and the total number of connections of the physical node can be calculated by the following equation (2).
  • the resource usage value of each physical node where the server entity of the distributed database is arranged is calculated by calculating the total resource usage value used by the distributed database from the resource usage ratio of the server entity of the distributed database in the physical node, and dividing this by the number of connections for the entire distributed database.
  • the value r can also be calculated.
  • step S111 the processing from step S108 to step S111 is executed for each distributed database.
  • the processing of Step S109 and Step S110 is executed for each of the first to I-th physical nodes i for the distributed database of interest, and there is a physical node that is overloaded with the target value. Is detected.
  • step S109 the dynamic balancing planning unit 148 compares the physical node i resource usage values R i and the target value T for determines whether the resource use value R i exceeds the target value T. If it is determined in step S109 that the resource usage value R i does not exceed the target value T (NO), the process proceeds to step S111.
  • step S109 if it is determined in step S109 that the resource usage value R i exceeds the target value T (YES), the process proceeds to step S110.
  • step S110 the dynamic equilibrium planning unit 148, for the distributed database of interest, out of the number of connections Q corresponding to the difference in which the resource usage value R i of the physical node exceeds the target value T, For the portion corresponding to, the driver unit 162 is requested to disconnect and reconnect to the server entity on the physical node (FIG. 8).
  • the number of connections Q corresponding to the above-described difference that is required to be disconnected for the physical node i can be calculated by the following equation (4).
  • step S110 When a plurality of distributed database server entities share the physical node i, in step S110, out of the total Q, according to the resource usage ratio of the physical node i occupied by the distributed database of interest.
  • the connection is reconnected as much as it is.
  • the driver unit 162 Upon receiving the reconnection request, the driver unit 162 disconnects the connection related to the reconnection request at a transaction boundary timing and switches to a new connection.
  • the load is moved from the physical node having a larger load than the target to the physical node having a smaller load than the target.
  • the load peak of the entire physical node group 120 can be smoothed.
  • an operation with low performance cost that monitors a dynamically changing load situation and dynamically changes a connection distribution ratio with a client in response to the change of the load situation, It becomes possible to balance the load of the entire node and effectively use physical resources.
  • load balancing method based on connection distribution can be planned without considering a load situation that is difficult to predict.
  • load balancing is achieved by controlling the distribution of connections to the master and replica of the distributed database, so it is possible to achieve smooth load smoothing with only local planning and operation, and increase physical resources. It is possible to cope with sudden overload and resource surplus that were difficult to deal with by adding replicas and resources.
  • connection distribution target even for a user who maintains a connection for a long time.
  • the load balancing method by connection distribution aims to balance the load on the physical nodes on which the server entities of a plurality of distributed databases share, combinations occur in the server set on the physical nodes. It is assumed that the database arrangement is as follows. Therefore, the condition is that M ⁇ 2 and K ⁇ M ⁇ N are satisfied. Furthermore, when the multiplicity M of the distributed database exceeds the number K of physical nodes, a plurality of server entities of the same distributed database are necessarily arranged on the same physical node. If the multiplicity M of the distributed database is equal to the number K of physical nodes, all the distributed database server entities are arranged on each physical node, and the load cannot be moved substantially. For this reason, M ⁇ K is an additional condition.
  • FIG. 9 is a flowchart showing database arrangement planning processing executed by the arrangement planning unit according to the embodiment of the present invention.
  • the process shown in FIG. 9 starts from step S200 in response to an instruction to perform the initial arrangement configuration from the system administrator.
  • step S ⁇ b> 201 the arrangement planning unit 112 receives an instruction to perform the initial arrangement configuration from the system administrator.
  • step S202 the arrangement planning unit 112 determines whether or not the physical node number K is equal to or greater than the distributed database number N, and branches the processing flow according to the magnitude relationship between the physical node number K and the distributed database number N.
  • step S203 the arrangement planning unit 112 calls an arrangement planning algorithm A (n) that arranges n distributed databases on n physical nodes, and N distributed databases have N physical nodes out of K. Implement a placement plan for placement. More specifically, the arrangement planning unit 112 calls n the arrangement planning algorithm A (n) with n ⁇ N and the multiplicity M as parameters, and K masters and replicas of N distributed databases. A placement plan for placing on any N physical nodes is implemented.
  • step S204 the arrangement planning unit 112 selects the K of the N ⁇ M database server entities planned in step S203 from the last planned arrangement in order of the K ⁇ remaining in step S203. Move one by one to N unallocated empty nodes.
  • the number O of server entities to be moved can be calculated by the following equation (5).
  • the above missing square brackets represent the floor function.
  • the above equation (5) exemplifies a function for calculating the number of movements for equalizing the number of server entities arranged on each physical node, and is not particularly limited. A ceiling function may be used instead of the function.
  • FIG. 10 is a diagram for explaining a method of arranging each server entity of the distributed database in a physical node.
  • FIG. 10A shows an arrangement method when the number of physical nodes K is equal to or greater than the number N of distributed databases. As shown in FIG. 10A, when the number of physical nodes K is equal to or greater than the number of distributed databases N, arrangement of M server entities of N distributed databases on N physical nodes out of K Are then distributed evenly to the remaining KN free nodes, and as a result, server entities are evenly distributed across the K physical nodes.
  • step S205 the arrangement planning unit 112 passes the configuration definition of the database arrangement planned in step S203 and step S204 to the arrangement execution unit 114, instructs execution of distributed arrangement, and constructs a distributed database environment.
  • step S206 the present process is terminated.
  • step S208 the arrangement planning algorithm A (n) is called, and K of the N distributed databases are arranged in K physical nodes.
  • the arrangement planning unit 112 sets n ⁇ K, gives the multiplicity M as a parameter, calls the arrangement planning algorithm A (n), and masters any K distributed databases among N.
  • an arrangement plan for arranging replicas on K physical nodes is planned.
  • step S209 the number L of unplanned distributed databases is calculated according to the following equation (6).
  • step S210 the arrangement planning unit 112 determines whether or not the number L of unplanned distributed databases exceeds the number K of physical nodes. If it is determined in step S210 that the number L of unplanned distributed databases exceeds the physical node number K (YES), the process branches to step S211, i is incremented, and the process is looped to step S208. . Thus, an arrangement plan for K distributed databases out of the number L of unplanned distributed databases is implemented. On the other hand, if it is determined in step S210 that the number L of unplanned distributed databases is equal to or less than the number of physical nodes K (NO), the process branches to step S212.
  • step S212 the arrangement planning unit 112 sets n ⁇ L, gives the multiplicity M as a parameter, calls the arrangement planning algorithm A (n), and sets the remaining L less than K distributed database masters and replicas to L Implement a placement plan for each physical node.
  • step S213 the placement planning unit 112 moves the L ⁇ M database server entities planned for placement in step S212 one by one to the other physical nodes of KL in order from the last planned placement.
  • the number of server entities to be moved can be a function for calculating the number of movements for equalizing the number of server entities arranged on each physical node, as in the above equation (5).
  • step S205 the arrangement planning unit 112 passes the configuration definition of the database arrangement planned in steps S207 to S213 to the arrangement execution unit 114, and instructs the execution of the distributed arrangement to construct a distributed database environment.
  • step S206 the present process is terminated.
  • FIG. 10B illustrates an arrangement method when the number K of physical nodes is less than the number N of distributed databases.
  • K distributed databases out of N are arranged in K physical nodes.
  • K distributed database placement plans are performed by the same procedure until the remaining distributed databases become less than K.
  • an arrangement plan for allocating L distributed databases to L physical nodes is executed, and server entities are arranged in order from the last arranged KL physical nodes. And the server entities are equally arranged on the K physical nodes.
  • FIG. 11 is a flowchart showing the processing of the arrangement planning algorithm A (n) executed by the arrangement planning unit according to the embodiment of the present invention.
  • the process shown in FIG. 11 is called in step S203, step S208, or step S212 shown in FIG. 10, and is started from step S300.
  • the placement planning unit 112 plans to place one database server entity (for example, master) of each of the n distributed databases on the n physical nodes, and assigns numbers to each physical node and each distributed database. (A1 in FIG. 12).
  • database server entity for example, master
  • step S302 the arrangement planning unit 112 assigns another physical database server entity (for example, the first replica) of the n distributed databases to the physical number assigned with the next number of the physical node arranged in step S301.
  • An arrangement plan is made on the node (A2 in FIG. 12).
  • the “next number” is a value from 1 to n, and (n + 1) is circulated to 1.
  • a ring composed of n physical nodes is formed. Note that this ring forms a cluster, and by using this arrangement planning algorithm, the number of nodes of the cluster is increased to n.
  • step S303 the arrangement planning unit 112 determines whether or not the multiplicity M is 3 or more. If it is determined in step S303 that the multiplicity M is less than 3 (NO), the process branches to step S309, the process is terminated, and the process is returned to the caller. On the other hand, if it is determined in step S303 that the multiplicity M is 3 or more (YES), the process proceeds to the loop of steps S304 to S306.
  • step S305 the process of step S305 is repeated M-2 times, and the arrangement of the remaining replicas of each distributed database is planned.
  • the i-th database server that is, the i + 1-th replica
  • the remaining replicas of the n distributed databases is planned according to the following equation (7) (A3 in FIG. 12).
  • the lower missing brackets represent the ceiling function.
  • k is a number given in step S301
  • i is a number for identifying a replica left in steps S301 and S302 among the instances of the distributed database.
  • said Formula (7) illustrates the function for arrange
  • the arrangement planning unit 112 determines whether or not the condition that M is an odd number and n is an even number is satisfied. If it is determined in step S307 that the condition that M is an odd number and n is an even number is not satisfied (NO), the process ends in step S309, and the process is returned to the caller.
  • step S307 if it is determined in step S307 that the condition that M is an odd number and n is an even number is satisfied (YES), the process proceeds to step S308.
  • the database placement process described above has a relationship in which the load described above can be moved, the cluster size is maximized, and a database placement in which the number of nodes of the cluster preferably matches the number of physical nodes K is planned. As a result, the load distribution can balance the load on the entire physical node group.
  • the auxiliary configuration unit 116 has a function of monitoring a load deviation between physical nodes in a long-term span, and appropriately changing and correcting the database arrangement so as to eliminate the load deviation.
  • the load unevenness between the physical nodes within the long-term span is the non-uniform load normalized in the physical node group 120 obtained from the average value of the load evaluation amount of each physical node over a certain period. Distribution.
  • the load evaluation amount of each physical node is controlled so as to approach the target value T according to the above-described connection distribution.
  • the load may be unevenly distributed over a plurality of physical nodes. There is.
  • FIG. 13 is a diagram exemplifying a load distribution in a database arrangement in which the multiplicity is 2 and distributed in a ring shape.
  • FIG. 13 shows not the physical arrangement of physical nodes but the database arrangement based on the above-described relationship of load movement.
  • loads concentrated on the distributed database may cause the loads on a plurality of adjacent physical nodes to increase unevenly. In this case, the load cannot be efficiently moved between the physical nodes.
  • the auxiliary component unit 116 acquires performance information from the connection distribution unit 140 and monitors such a normal load bias.
  • the auxiliary component 116 detects a normal load bias, it operates on one of the server entities that operate on the physical node where the load is unevenly distributed (for example, the replica A ′) and on the other physical node that has a relatively small load.
  • the database arrangement plan planned by the arrangement planning unit 112 is modified so that the server entity (for example, the replica X ′) to be exchanged is exchanged, and the execution of the database arrangement by the arrangement execution unit 114 is prompted. Since exchanging replicas has a higher performance cost than connection distribution, it can be performed by selecting a low load period such as midnight or maintenance timing.
  • assistant structure part 116 comprises the arrangement
  • connection request receiving unit 160 and the driver unit 162 are configured on the application server 130 on which the client application operates, and the connection distribution unit 140 is configured as a separate device.
  • the connection distribution server 132 has been described as being realized. However, the configuration is not limited to that shown in FIG. 1.
  • the connection distribution unit 140, the connection request receiving unit 160, the driver unit 162, and the client 164 are the same as shown by the wavy line in FIG. 1. It can also be implemented on the server 134.
  • the database arrangement server 110 has been described as being realized as a device separate from the application server 130 and the connection distribution server 132.
  • the database arrangement server 110 is not limited to the application server 130.
  • the connection distribution server 132 or the server 134 may be integrated.
  • a physical node in a distributed database environment, can be used with a technique that is responsive, flexible, and has a small performance cost for the operation itself, in response to sudden overload and remaining physical resources.
  • an information processing system an information processing apparatus, a load balancing method, a database arrangement planning method, and a program capable of realizing an efficient distributed database environment on limited physical resources by balancing the load on the system be able to.
  • the above functions of the present invention include legacy programming languages or objects such as assembler, C, C ++, Java (registered trademark), JavaBeans (registered trademark), Java (registered trademark) Applet, JavaScript (registered trademark), Perl, and Ruby. It can be realized by a device-executable program written in a directional programming language, etc., ROM, EEPROM, EPROM, flash memory, flexible disk, CD-ROM, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, Blu-ray It can be stored in a device-readable recording medium such as a disk, SD card, or MO, and distributed or transmitted for distribution.
  • a device-readable recording medium such as a disk, SD card, or MO

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本発明は分散データベース環境において物理ノード間の負荷均衡を図る。本発明の情報処理システム100は、複数の物理ノード(124)上に分散配置される複数のデータベース・サーバ122であって、当該複数のデータベース・サーバ122のうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする複数のデータベース・サーバ122と、物理ノードそれぞれに関する負荷を監視し、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへと、クライアントとのコネクションを移動させて、負荷を均衡させるようにコネクションを配分する配分部(140,170)とを含む。

Description

分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム
 本発明は、分散データベースに関し、より詳細には、分散データベース環境において物理ノード間の負荷均衡を図るための情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラムに関する。
 データベースを利用するアプリケーションにおいては、データ規模やアクセス負荷の大きさに対応して、データベースの性能および容量の向上を図ることが望まれる。従来から、システム全体のスケーラビリティを向上させる手法としては、データベースの複製を作成し、すべてのデータを受け持つ複数のデータベース・サーバを複数の物理ノードに分散配置することで、負荷を軽減する手法が知られている(例えば特許文献1)。また、データベースを実用的な検索範囲で分割して、分割されたパーティションをそれぞれ受け持つ複数のデータベース・サーバを分散配置する手法も知られている。このように、複数の物理ノード上にデータベースを分散配置して、分散データベース環境を構築することによって、トランザクションのパフォーマンスの向上、並びにシステムの可用性および耐障害性の向上を図ることができる。
 図14(A)は、従来技術における分散データベース環境を示す概略図である。図14(A)に示す分散データベース環境500は、それぞれ複数の物理ノード上に分散配置される複数のデータベース・サーバ510a1~510c2から構成される。また分散データベース環境500では、データベースの分割および各パーティションの多重化が施されており、個々のデータベース・サーバ510は、それぞれ異なるパーティションまたは同一のパーティションのデータを受け持つ。ここでは、同一のパーティションを受け持つデータベース・サーバ510のグループ(例えば、510a1,510a2)により管理されるデータベースの論理的な単位を分散データベース520(例えば、520a)と参照する。つまり、分散データベース520は、同一のパーティションを受け持つオリジナルのデータベース(マスタ)と、マスタから複製された複製データベース(レプリカ)とから構成される。
 上述のようにデータベースを分割することにより、個々のデータベース・サーバ510が受け持ち、一貫性を維持するデータ範囲を小さくすることができ、さらに各パーティションを多重化し、これらのデータベース・サーバ510を複数の物理ノード上に分散配置することにより、個々の物理ノードが受け持つデータの単位を小さくすることができる。これにより、トランザクションのパフォーマンスが高まり、またシステムの可用性および耐障害性の向上が図られる。さらに、上述のようにレプリカを作成してデータを多重化することにより、クライアント・アプリケーション530からのアクセスによる負荷を分散し、またシステムの可用性および耐障害性の向上を図ることができる。
 このような分散コンピューティング環境では、一般的に、限られた物理リソースを有効活用するため、図14(B)に示すように、同一物理リソースである物理ノード540上に、互いに異なる分散データベース520のデータベース・サーバ510を組み合わせて配置する手法を採用する。しかし、複数のデータベース・サーバ510が同一物理ノード540上に配置されると、あるデータベース・サーバ(例えば、データベースA)にアクセスが集中した場合などに、そのデータベース・サーバ(例えば、データベースA)が同一物理ノード(例えば物理ノード540a)上の他のデータベース・サーバ(例えばデータベースC’)のリソースを圧迫してしまうことが起こり得る。
 すなわち、同一の物理ノード上に複数のデータベース・サーバを配置する構成を採用すると、突発的な過負荷やリソース余りが発生してしまうという問題があった。この問題に対する対処策としては、突発的な負荷上昇が観測された分散データベース520のレプリカを追加する手法、または、突発的な負荷上昇が観測されたデータベース・サーバ510を配置する物理ノードを増強するか、または該データベース・サーバ510をリソースに余裕のある別の物理ノード上へ移動する手法を挙げることができる。しかし、突発的なアクセス増加状態などの緊急的な状況では、これらの操作自体が高負荷をかけるため、即応的な解決策とは言えない。
特開2001-175681号公報
 したがって、限られた物理リソース上で効率的な分散データベース環境を実現するためには、突発的な過負荷やリソース余りの状況に対して、柔軟かつ操作自体のパフォーマンス・コストが小さな負荷均衡手法を開発することが望まれる。
 本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明は、分散データベース環境において、突発的な過負荷や物理リソース余りの状況に対し、即応的かつ柔軟かつ操作自体のパフォーマンス・コストが小さな手法により、物理ノードにかかる負荷を均衡し、ひいては、限られた物理リソース上で効率的な分散データベース環境を実現することが可能な情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラムを提供することを目的とする。
 本発明は、上記従来技術の不都合に鑑みてなされたものであり、本発明は、以下の特徴を有する情報処理システムを提供する。本発明の情報処理システムは、複数の物理ノード上に分散配置される複数のデータベース・サーバであって、当該複数のデータベース・サーバのうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする、当該複数のデータベース・サーバを含む。そして、情報処理システムは、物理ノードそれぞれに関する負荷を監視し、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへと、クライアントとのコネクションを移動させて、物理ノードの負荷を均衡させるようにコネクションを配分する。
 さらに本発明では、上記コネクションの配分の際には、目標を上回る分の負荷に相当する接続数分のコネクションの再接続を計画し、目標を下回る分の負荷に応じた確率で再接続を含む新たなコネクションの配分を計画することができる。さらに、本情報処理システムは、再接続が計画されたコネクションをトランザクション境界で一旦切断して、再接続に係る新たなコネクションを取得する再接続制御部を含むことができる。これにより、上記コネクションの移動は、再接続が計画されたコネクションの切断および新たなコネクションの取得により実現される。
 さらに本発明では、複数の物理ノードにネットワークを介して接続され、上記複数のデータベース・サーバそれぞれと接続する複数のコネクションをプールするプール部を備え、上記コネクション配分を実行する情報処理装置を提供することができる。また本発明では、上記複数のデータベース・サーバを複数の物理ノード上へ分散配置する計画を立てる情報処理装置を提供することができる。
 本発明では、さらに、上記情報処理装置が実行する負荷均衡方法を提供することができる。本負荷均衡方法は、情報処理装置が、上記物理ノードそれぞれに関する負荷を監視するステップと、上記複数のデータベース・サーバのうちの目標より負荷が大きな物理ノード上のデータベース・サーバへのクライアントとのコネクションを、トランザクション境界で切断する要求を発行するステップと、上記複数のデータベース・サーバのうちの目標より負荷が小さな物理ノード上のデータベース・サーバへのクライアントとの再接続にかかる新たなコネクションを取得するステップとを実行することを含む。
 さらに本発明では、複数のデータベース・サーバを複数の物理ノード上へ分散配置する計画を立てるデータベース配置方法が提供される。本データベース配置方法は、情報処理装置が、複数のデータベース・サーバのうち、互いに同一のデータを受け持つ2以上のサーバが同一の物理ノード上に配置されないように、かつ、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されるように、データベースの配置を計画するステップを実行することを含む。
 上記構成によれば、一定の要件を満たす複数のデータベース・サーバの配置において物理ノードの負荷状況に応じたコネクション配分を行うことにより、動的に変わる負荷状況に対して、クライアントからのコネクションの割り振り方を変えるというパフォーマンス・コストの低い操作により、物理ノード全体の負荷を均衡し、物理リソースを有効活用することが可能となる。これにより、物理リソースの増強やレプリカの追加では対処が困難であった突発的な過負荷やリソース余りに対しても、即応的に対処することが可能となる。
本発明の実施形態によるデータ処理システムにおいて実現される機能ブロック図。 本発明の実施形態によるコネクション配分を説明する概念図。 コネクション配分による負荷均衡が可能な関係と負荷均衡が不能な関係を説明する図。 5個の物理ノード上にそれぞれ多重度が3である5個の分散データベースの各データベース・サーバを分散配置したデータベース配置を例示する図。 6個の物理ノード上にそれぞれ多重度が2である6個の分散データベースの各データベース・サーバ実体を分散配置したデータベース配置を例示する図。 本発明の実施形態によるデータ処理システムにおいて実現される、コネクション配分に関する詳細な機能ブロック図。 本発明の実施形態によるコネクション配分部が実行する、コネクション配分処理を示すフローチャート。 コネクションの再接続およびコネクションの確率的配分を説明する図。 本発明の実施形態による配置計画部が実行するデータベース配置計画処理を示すフローチャート。 分散データベースの各サーバ実体を物理ノードに配置する方法を説明する図。 本発明の実施形態による配置計画部が実行する配置計画アルゴリズムA(n)の処理を示すフローチャート。 配置計画アルゴリズムA(n)を説明する図 多重度2で輪状に分散配置されたデータベース配置における負荷分布を例示する図。 (A)従来技術における分散データベース環境を示す概略図、および(B)分散データベースのデータベース・サーバを組み合わせて配置する手法を説明する図。
 以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。以下説明する実施形態では、複数の物理ノード上に分散配置される複数のデータベースと、該複数のデータベースにアクセスするクライアント・アプリケーションとを含むデータ処理システムを、情報処理システムの一例として説明する。
(1)概要
(1.1)システム全体の機能ブロック
 図1は、本発明の実施形態によるデータ処理システム100において実現される機能ブロックを示す。図1に示すデータ処理システム100は、複数の物理ノード(図示せず。)から構成される物理ノード群120と、データベース配置を計画し、その計画に従って物理ノード群120上にデータベースを分散配置するデータベース配置サーバ110と、物理ノード群120上に分散配置されたデータベースにアクセスするクライアント・アプリケーション(以下、単にクライアントという。)164が動作するアプリケーション・サーバ130と、詳細は後述するコネクション配分サーバ132とを含んで構成される。なお、3層クライアント・サーバ・モデルでは、クライアント164は、アプリケーション層に相当し、ウェブ・アプリケーションでは、クライアント164には、HTTPプロトコルで接続するウェブ・クライアントが接続されることになるが、図1においては省略されている点に留意されたい。
 物理ノード群120を構成する各物理ノード、データベース配置サーバ110、アプリケーション・サーバ130およびコネクション配分サーバ132は、それぞれ、TCP/IPおよびイーサネット(登録商標)によるLAN(Local Area Network)や、VPN(Virtual Private Network)や専用線を使用するWAN(Wide Area Network)やインターネットを含む図示しない有線または無線のネットワークを介して相互に接続される。
 物理ノード群120を構成する物理ノードは、それぞれ、シングルコア・プロセッサまたはマルチコア・プロセッサなどの中央演算装置(CPU)、キャッシュ・メモリ、RAM、ネットワーク・インタフェース・カード(NIC)および適宜ストレージ・デバイスを含み、適切なオペレーティング・システム(以下、OSとして参照する。)の制御のもと動作する。なお、物理ノードは、Shared Nothing型およびShared Disk型のいずれのアーキテクチャを採用するものであってもよい。
 物理ノード群120には、分散データベースに対応するデータベース管理システム(DBMS)が導入されており、物理ノード群120上には、複数のデータベース・サーバ122a~122gが配置される。ここで、「データベース・サーバ」は、各物理ノード上で動作するDBMSのサーバ・プロセスをいい、「データベース」は、DBMSにより管理される、表、ビュー、索引などのデータベース・オブジェクトなどを含むデータのコレクションをいう。なお、データベース・サーバおよびデータのコレクションとしてのデータベースを総合して「データベース」と参照することもある。
 個々のデータベース・サーバ122は、それぞれ異なるデータまたは同一のデータを受け持つことができる。ここでは、同一のデータを受け持つデータベース・サーバ122からなるデータベースの論理的なグループの単位を「分散データベース」と参照する。また、便宜上、分散データベースを構成する個々のデータベースのうち、オリジナルをマスタ・データベース(以下、単にマスタという。)といい、マスタからレプリケーションされたものをレプリカ・データベース(以下、単にレプリカという。)という。なお、レプリケーションの方式は、特に限定されるものではなく、マルチマスタ方式、マスタ-スレーブ方式のいずれの方式であってもかまわない。
 このように本データ処理システム100では、物理ノード群120上に分散配置される複数のデータベース・サーバ122a~122gによって、それぞれマスタおよび1以上のレプリカを含む複数の分散データベースからなる分散データベース環境が構成される。なお、「データベース」および「分散データベース」としては、リレーショナル・データベース(RDB)を挙げることができるが、これに限定されるものではなく、その他、オブジェクト指向データベース、XML(extensible Markup Language)データベース、key-value式データストアなど如何なるデータベースに適用することができ、特定のデータモデルに限定されるものではない。
 データベース配置サーバ110、アプリケーション・サーバ130およびコネクション配分サーバ132は、概ね、パーソナル・コンピュータ、ワークステーション、ラックマウント型やブレード型のサーバ、ミッドレンジ・コンピュータ、メインフレームなどの汎用コンピュータとして構成される。データベース配置サーバ110、アプリケーション・サーバ130およびコネクション配分サーバ132は、より具体的には、シングルコア・プロセッサまたはマルチコア・プロセッサなどのCPU、キャッシュ・メモリ、RAM、NIC、ストレージ・デバイスなどを備え、適切なOSの制御のもと、ハードウェアおよびソフトウェアが協働して、後述する各機能部および各処理を実現している。
 データベース配置サーバ110は、効率的な負荷均衡を実現するためのデータベース配置を計画する配置計画部112と、配置実行部114とを含む。配置実行部114は、配置計画部112が計画したデータベース配置の計画に従って、分散データベースのデータベース・サーバ122を物理ノード群120上に配置する機能部である。本実施形態では、さらに、長期的なスパンにおける物理ノード間の負荷の偏りを監視し、負荷の偏りがなくなるようにデータベース配置を適宜変更し、修正する補助構成部116をさらに含むことができる。なお、データベースの配置計画および負荷の偏りを軽減するための補助構成についての詳細は後述する。
 アプリケーション・サーバ130上のクライアント164と、物理ノード群120上の分散データベース環境との間には、クライアント164と分散データベースのデータベース・サーバ実体(マスタまたはレプリカ)との間に確立されるデータベース・コネクション(以下、単にコネクションという。)を、物理ノードにかかる負荷を均衡するように配分する機能を実現するコネクション管理機構170が設けられる。なお、「コネクション」の用語は、リクエストに対するアフィニティ付けになどよる送信先の固定化を含むことができる。
 従来技術の分散データベース環境においては、マスタおよび1以上のレプリカのデータベース・サーバを用いて負荷分散を行う場合、これらのデータベース・サーバは異なる物理ノード上に配置され、マスタおよび1以上のレプリカには、例えばラウンドロビン方式等によりコネクションが割り振られることになる。この場合、コネクションが固定割合で振り分けられるため、物理リソースの有効活用を目的として複数の分散データベースのサーバ実体が同一物理ノード上に配置されると、一方の分散データベースのサーバ実体にアクセスが集中すると、同一物理ノード上の他方の分散データベースのサーバ実体のリソースを圧迫してしまうという事態が発生し得る。かかる事態には、従来技術では、物理リソースの増強およびレプリカの追加により対応することが一般的であるが、突発的な過負荷やリソース余りが発生した場合に適切に対処することが困難である。
 そこで、本実施形態では、かかる突発的な負荷の増減に即応的に対処すべく、コネクション管理機構170は、クライアント164と、分散データベースのデータベース・サーバ実体との間に確立されるコネクションについて、負荷状況に対応して物理ノード群120上のマスタおよびレプリカへのコネクションの配分の割合を動的に制御する構成を採用し、マスタおよびレプリカが配置される物理ノード間の負荷の均衡を図る。
 コネクション管理機構170は、コネクション配分部140と、コネクション要求受付部160と、ドライバ部162とから構成される。図1に示す実施形態では、コネクション配分部140が、コネクション配分サーバ132上に実装され、コネクション要求受付部160およびドライバ部162は、クライアント側のモジュールとして、クライアント・アプリケーションが動作するアプリケーション・サーバ130上に実装されている。この場合、コネクション配分サーバ132は、複数のアプリケーション・サーバ130上の各クライアント164に対してコネクション配分を統一的に行うコネクション配分サーバとして構成することができる。図1中のクライアント164aは、新たにコネクションを確立しようとしている接続要求中のクライアント・アプリケーションを表す。これに対してクライアント164bは、既にコネクションを確立し、接続中であるクライアント・アプリケーションを表している。
 コネクション要求受付部160は、新たにコネクションを確立しようとしているクライアント164aからの接続要求に応答して、コネクション配分部140からコネクションを取得し、クライアント164aと分散データベースのデータベース・サーバ実体との間のコネクションを確立する。コネクション配分部140は、物理ノードそれぞれに関する負荷を監視し、負荷状況に応じて、分散データベースのサーバ実体(マスタまたはレプリカ)へのコネクション配分の割合を決定する。コネクション配分部140は、コネクション要求受付部160からのコネクションの取得要求に応答して、上記決定したコネクション配分の割合に応じて、データベース・サーバ実体へのコネクションを返す。
 コネクション配分部140は、さらに、上記負荷状況に従い、過大な負荷がかかる物理ノードの存在を発見した場合、当該物理ノード上のデータベース・サーバ実体へのコネクションのうちの、過大な負荷に相当する分の切断および再度の接続をドライバ部162に対して要求する。ドライバ部162は、クライアント164bと分散データベースのデータベース・サーバ実体との間のコネクションを制御しており、上記コネクション配分部140からの再接続要求に応答して、トランザクション境界で再接続要求されたコネクションを一旦切断する。そして、ドライバ部162は、コネクション要求受付部160から新たなコネクションを取得して、クライアント164とデータベース・サーバ実体とのコネクションを継続させる。このように上記コネクションの切断をトランザクション境界において実施することにより、ユーザに対して切断および再接続を隠蔽することができる。なお、ドライバ部162は、本実施形態の再接続制御部を構成する。
 本実施形態によるコネクション配分部140は、物理ノードそれぞれに関する負荷を監視し、物理ノード群120の負荷状況に応じてコネクション配分の割合を決定し、併せてドライバ部162に対し過剰なコネクションの再接続を要求する。これにより、ある目標より負荷が大きな物理ノード上のデータベース・サーバ実体から、目標より負荷が小さな物理ノード上のデータベース・サーバ実体へと、クライアントとのコネクションを移動させ、ノード間の負荷均衡を図る。
(1.2)コネクション配分の概要
 以下、図2を参照しながら、本発明の実施形態によるコネクション配分について説明する。図2は、本発明の実施形態によるコネクション配分を説明する概念図である。図2(A)はコネクション配分を行う前のコネクションの状態を示し、図2(B)はコネクション配分を行った場合のコネクションの状態を示す図である。
 図2には、各物理ノード124a,124b,124c上に、それぞれ、2つずつデータベース・サーバが配置されている様子が示され、各データベース・サーバは、A,B,Cで識別されるいずれかの分散データベースのインスタンスのマスタまたはレプリカに対応している。分散データベースA,B,Cは、例えば単一のデータベースから分割された各パーティション、またはそれぞれ異なるデータベースのデータを受け持つことができる。なお、X(ここでXは任意のアルファベットである。)は、マスタを表し、X’(同様にXは任意のアルファベットである)は、レプリカを表す。
 コネクション管理機構170は、各クライアント164と、分散データベースのデータベース・サーバ実体との間のコネクションを管理し、分散データベースのマスタおよびレプリカ間でコネクションを振り分ける。図2(A)に示すように、例えば分散データベースBおよびCにアクセスが集中した場合、コネクション配分の割合が固定されていると、データベース・サーバ実体C,B’が相乗りする物理ノード124bに過剰な負荷が発生してしまうことになる。
 そこで、本実施形態のコネクション管理機構170は、図2(B)に示すように、負荷が過大な物理ノード124b上のデータベース・サーバ実体B’,Cに割り振られたコネクションのうち過剰な負荷に相当する分をトランザクション境界で一旦切断する。さらに、コネクション管理機構170は、異なる物理ノード上で動作するデータベース・サーバ実体B、B’間およびデータベース・サーバ実体C、C’間のコネクション配分の割合を変化させた上で再接続することによって、クライアント164からのコネクションを維持するとともに、物理ノード124bにかかる過剰な負荷を軽減する。このとき、コネクション配分の割合は、負荷が小さな方の物理ノード124a上のデータベース・サーバ実体Bおよび物理ノード124c上のデータベース・サーバ実体C’へ多く配分されるように確率的に決定される。
 すべての分散データベースについて、物理ノードの負荷状況に応じてマスタおよび1以上のレプリカのコネクション配分を行うことにより、比較的負荷が大きな物理ノードから比較的負荷が小さな物理ノードへ負荷を移動させ、物理ノード群120全体の負荷のピークを平滑化させることができる。
 一方、物理ノード群120全体で負荷を効率的に均衡させるためには、コネクション配分によって負荷を移動するために、有利な構成をもって個々のデータベース・サーバ実体が物理ノード群120上に配置されていることが望ましい。以下、図3~図5を参照しながら、コネクション配分による負荷均衡に有利なデータベース配置について説明する。
(1.3)負荷が均衡可能な関係と負荷が均衡不能な関係
 図3は、コネクション配分による負荷均衡が可能な関係と負荷均衡が不能な関係を説明する図である。図3は、2つの物理ノード124a,124b間の関係を示しており、物理ノード124a,124b上には、それぞれ2つずつデータベース・サーバが配置されている。図3(A)は、コネクション配分による負荷均衡が不能な関係を例示し、図3(B)は、コネクション配分による負荷均衡が可能な関係を例示する。
 図3(A)に示す負荷均衡が不能な関係では、分散データベースA,Bをそれぞれ要素とするサーバ集合を考えると、物理ノード124aおよび物理ノード124b上のサーバ集合は同一とされている。一方、図3(B)に示す負荷均衡が可能な関係では、物理ノード124a上のサーバ集合{A,B}と、物理ノード124b上のサーバ集合{B,X}とは異なっている。
 上述したように、負荷は、異なる物理ノード上に配置された分散データベースのマスタおよび1以上のレプリカ間を移動させることができるが、図3(A)に示すように、分散データベースのマスタおよびレプリカが配置される物理ノードすべてのサーバ集合が同一である場合には、コネクション配分によって負荷を実質的に均衡させることができない。したがって、ある分散データベースに関して、コネクション配分による負荷の均衡を実現するためには、マスタおよびレプリカが配置される物理ノード上のサーバ集合が少なくとも差異があることが条件となる。さらに、マスタおよびレプリカが配置される物理ノード上のサーバ集合の差異が大きい方がより好ましいと言える。
(1.4)効率的な負荷均衡を実現するためのデータベース配置
 以下、図4および図5を参照しながら、効率的な負荷均衡を実現するためのデータベース配置について説明する。図4は、5個の物理ノード上にそれぞれ多重度が3である5個の分散データベースの各データベース・サーバを分散配置したデータベース配置を例示する。図5は、6個の物理ノード上にそれぞれ多重度が2である6個の分散データベースの各データベース・サーバ実体を分散配置したデータベース配置を例示する。
 図4(A)に示すデータベース配置では、5個すべての分散データベースA~Eについて、各分散データベースのデータベース・サーバ実体が配置される物理ノード上のサーバ集合が、互いに異なるように配置されている。例えば、分散データベースAについてみると、サーバ実体が配置される物理ノードNode1,Node2,Node4のサーバ集合は、それぞれ{A,C,E}、{A,B,D}、{A,C,D}であり、互いに異なっている。そして、他の分散データベースB~Eについても同様である。したがって、図4(A)に示すようなデータベース配置では、負荷の大きい物理ノードから負荷の小さな物理ノードへと、効率的に負荷を移動させることが可能であり、物理ノード群120全体の負荷のピークを良好に平滑化させることができる。
 これに対して、図4(B)に示すデータベース配置では、分散データベースA~Cについて、物理ノード上のサーバ集合が同一となっている部分が存在している。Node2とNode3は、共通して分散データベースA~Cのサーバ実体を有し、これらの物理ノードのサーバ集合は同一となる。一方、分散データベースA~Cのマスタまたはレプリカは、物理ノードNode2,Node3の他、これらとはサーバ集合が異なる物理ノード(Node1、Node4、Node5)上にも存在する。したがって、物理ノードNode2およびNode3と、他の物理ノード(Node1、Node4、Node5)との間で、それぞれ負荷を移動させることが可能であり、図4(B)に示すデータベース配置では、物理ノード全体として負荷を均衡させることができる。しかし、サーバ集合が同一である複数の物理ノードの存在は、負荷移動の自由度を制限することになる。
 また、物理ノード群120全体で負荷を効率的に均衡させるためには、上記移動可能な関係が物理ノード群120内でより多くの物理ノードを巻き込んで可能な限り大きく広がっていることが好ましい。上述したように、負荷は、直接的には、異なる物理ノード上に配置された同一分散データベースのマスタおよびレプリカ間で移動することが可能である。一方、この同一分散データベース内の移動可能な関係を経由することにより、異なる分散データベースのマスタおよびレプリカ間でも負荷を間接的に移動させることが可能である。したがって、上述のような移動可能な関係の広がりというデータベース配置の特性は、物理ノードと負荷が移動可能な関係とをグラフとみなし、移動可能な関係を有する物理ノードを繋いで構成されるクラスタの大きさとして定量することができる。
 すなわち、同一分散データベースのサーバ実体が配置される物理ノード間を結ぶ辺(エッジまたはリンク)を異なる分散データベースを含めて繋いで構成されるグラフをクラスタとして、このクラスタの大きさにより定量することができる。当該クラスタが小さくまとまり、物理ノード群120の一部で閉じて形成されてしまうと、負荷均衡が小さなクラスタ内で閉じられてしまうことになる。
 複数の分散データベースのサーバ実体が相乗りする物理ノードにおいて負荷の均衡が図られることを考慮すると、データベース配置の特性としてのクラスタの広がりは、同一の分散データベースのサーバ実体が配置される物理ノードを結ぶ辺を繋いで構成されるクラスタであって、異なる複数の分散データベースのデータベース・サーバが相乗りする物理ノードを含むクラスタの節点の数によって定量することができる。各クラスタの節点数は、分散データベースがマスタおよび1以上のレプリカから構成されることを考慮すると、3以上となることが好ましく、物理ノード群120全体の負荷均衡を目的とする観点からは、物理ノード群120の物理ノードの数に一致することがより好ましい。
 例えば、図4(A)および図4(B)に示したデータベース配置は、クラスタの節点数は物理ノードの数と等しく、物理ノード群120全体で負荷均衡が図られる。これに対して、図5に示すデータベース配置では、物理ノード群120内に2つの閉じたクラスタが構成される。この場合、両クラスタには、共通して配置される分散データベースが存在しないため、クラスタ間で負荷を移動させることができない。したがって、物理ノードNode1,Node2,Node3からなるクラスタ内、および物理ノードNode4,Node5,Node6からなるクラスタ内で、それぞれ独立して負荷均衡が行われることになる。
(2)コネクション配分の詳細
(2.1)コネクション配分に関する詳細な機能ブロック
 以下、物理ノード間の負荷均衡を図るためのコネクション配分の詳細について説明する。図6は、本発明の実施形態によるデータ処理システム100において実現される、コネクション配分に関する詳細な機能ブロックを示す。図6には、複数のデータベース・サーバが配置される物理ノード群120と、コネクション配分部140と、コネクション要求受付部160と、ドライバ部162と、クライアント164とが示されている。
 コネクション配分部140は、より詳細には、パフォーマンス情報取得部142と、配置構成情報取得部144と、負荷状況計算部146と、動的均衡計画部148と、コネクション・プール調整部150と、コネクション解決部152とを含む。
 パフォーマンス情報取得部142は、分散データベース環境のパフォーマンスをモニタし、定期的にまたは不定期にパフォーマンス情報を取得する。パフォーマンス情報としては、特に限定されるものではないが、物理ノード毎のCPU、ディスクI/Oおよびメモリ等の物理リソースの使用値(使用率)、物理ノードのコネクション総数など、物理ノードにかかる負荷を定量する情報を挙げることができる。また、分散データベース毎のパフォーマンス情報としては、分散データベース毎のコネクション数、テーブル・データの増加量、データベース領域の使用状況、クエリの応答時間、ユーザ数など、分散データベースにかかる負荷を定量する情報を挙げることができる。これらの情報は、分散データベース環境に配備されるパフォーマンス・モニタリング・ツールから取得することができる。
 配置構成情報取得部144は、定期的にまたは不定期に、分散データベース環境の配置構成情報を取得する。配置構成情報は、物理ノード群120上のデータベース・サーバ実体の配置構成を記述する情報であり、各物理ノード上にいずれの分散データベースのサーバ実体が配置されているかを示す情報である。配置構成情報は、簡単には、物理ノード毎のサーバ集合を記述したリストとして構成される。
 負荷状況計算部146は、パフォーマンス情報取得部142が取得した上記パフォーマンス情報と、配置構成情報取得部144が取得した上記配置構成情報とを掛け合わせて、物理ノード毎の負荷状況を算出する。算出する物理ノード毎の負荷状況としては、均衡させるべき物理ノードにかかる負荷を定量する物理ノード毎の負荷評価量と、物理ノード毎の各データベース・サーバ実体が上記負荷評価量に占める割合とを含む。
 負荷評価量の算出方法は、各物理ノードにかかる負荷を定量することができる限り、特に限定されるものではなく、例えば、取得可能な物理ノードのリソース使用値(使用率)やコネクション総数をそのまま用いてもよい。負荷評価量に占める割合の算出方法も特に限定されるものではなく、例えば、ある物理ノード上にサーバ実体が配置される分散データベース(すなわちサーバ集合)と、各分散データベースのコネクション数と、各分散データベースの各サーバ実体へのコネクション配分の割合とを使用して、当該物理ノード上の負荷評価量において各サーバ実体が占める割合を計算することができる。コネクション配分の割合は、例えば、後述する動的均衡計画部148から取得することができる。
 動的均衡計画部148は、現在のコネクションの状況と、所定インターバル間に見積もられるコネクションの変化量を考慮して、コネクション配分の割合を決定するための目標値を決定し、各物理ノードの負荷評価量が当該目標値に漸近するように、コネクション配分および再接続を計画する。より具体的には、動的均衡計画部148は、負荷状況計算部146が算出した負荷状況に応じて、目標を下回る分の負荷に応じた配分の割合ないし確率で分散データベースのサーバ実体への再接続を含む新たなコネクションの配分を計画する。
 コネクション・プール調整部150は、上記動的均衡計画部148が計画したコネクション配分の割合に応じて、充分な量のコネクション156をプール部154に準備する。コネクション解決部152は、プール部154に対し、プールから貸し出すコネクション最大数などコネクションの数の管理を行う。コネクション解決部152は、コネクション要求受付部160からのコネクション解決要求に応答して、プール部154にプールされたコネクション156の中から、要求にかかる分散データベースのサーバ実体へ接続されるものを、当該要求に対する返答として渡す。このとき、上記配分の割合に応じた確率で、サーバ実体に接続するコネクションが渡されることになる。コネクション要求受付部160は、接続要求中のクライアント164aからの接続要求に応答して、コネクション解決部152にコネクション解決要求を発行して、接続要求中クライアント164aと分散データベースのサーバ実体との間のコネクションを確立させ、該クライアント164aにコネクションの参照を返却する。
 本実施形態では、コネクション・プール調整部150およびコネクション解決部152によるコネクション・プーリングを適用することにより、分散データベースのデータベース・サーバ実体への接続を再利用することで、クライアントとサーバ実体との間のコネクションを確立する際の認証等の諸処理によるオーバーヘッドを軽減することができる。
 動的均衡計画部148は、さらに、負荷状況計算部146が算出した負荷状況から、過大な負荷がかかる物理ノードの存在を発見した場合、上記目標値を上回る分の負荷に相当する接続数分のコネクションについて、一旦切断した上での再接続を計画し、ドライバ部162に対してコネクションの再接続を要求する。ドライバ部162は、動的均衡計画部148からの再接続要求に応答して、トランザクション境界にて、再接続要求にかかるコネクションを一旦切断し、コネクション要求受付部160に再接続を依頼する。この依頼を受けて、コネクション要求受付部160は、コネクション解決部152に対して、コネクション解決要求を発行し、分散データベースのサーバ実体との間の新たなコネクションを確立し、新たなコネクションの参照をドライバ部162へ返却する。
 例えばデータベース・サーバ実体Aが配置される物理ノードに過大な負荷がかかっているとすると、ドライバ部162は、当該サーバ実体Aに対するコネクションI156aを一旦切断し、コネクション要求受付部160に再接続を依頼する。コネクション要求受付部160は、例えばデータベース・サーバ実体A’に対するコネクションII156bを取得し、分散データベースAとクライアントとの間のコネクションを維持する。
 上述した動的均衡計画部148によるコネクションの配分および再接続の計画、およびコネクション要求受付部160およびドライバ部162による再接続の実施により、目標より大きな負荷がかかる物理ノード上のサーバ実体へのコネクションが切断され、より負荷の小さな物理ノード上のサーバ実体へとコネクションがつなぎ替えられ、物理ノード間で負荷が良好に平滑化される。
(2.2)コネクション配分方法
 以下、図7を参照しながら、コネクション配分部140におけるコネクション配分処理についてより詳細に説明する。図7は、コネクション配分部140が実行する、コネクション配分処理を示すフローチャートである。図7に示す処理は、例えばコネクション配分機能のサービスが起動されたことに応答して、ステップS100から開始する。
 ステップS101では、コネクション配分部140は、所定のインターバル時間が経過するまで(NOの間)、ステップS101をループさせる。このインターバル時間は、コネクション配分を制御するインターバルであり、クライアント・アプリケーションの特性に依存する負荷の変動量に応じた時間間隔を設定することができる。ステップS101で、所定インターバル時間が経過すると(YES)、ステップS102へ処理が進められる。
 ステップS102では、パフォーマンス情報取得部142は、分散データベース環境のパフォーマンス情報を取得する。ステップS103では、配置構成情報取得部144は、分散データベース環境の配置構成情報を取得する。ステップS104では、負荷状況計算部146は、取得したパフォーマンス情報と、配置構成情報とを使用して、物理ノード毎の負荷評価量と、物理ノード毎の各データベース・サーバ実体が負荷評価量に占める割合とを含む負荷状況を計算する。なお、以下説明する実施形態では、物理ノード毎の負荷状況として、物理ノード毎のリソース使用値と、そのリソース使用値の物理ノードにおける各データベース・サーバ実体が占める割合(以下、リソース使用割合という)を用いる。
 ステップS105では、動的均衡計画部148は、負荷状況計算部146が算出したサーバ実体が属する物理ノードi(i=1,・・・I)のリソース使用値をRとし、所定のインターバル時間において生じ得るコネクション数の増加量の平均値をCとし、コネクション1本に相当するリソース利用値をrとし、下記式(1)により、リソース使用値に対する目標値Tを算出する。
Figure JPOXMLDOC01-appb-M000001

 ここで、目標値Tは、現在のコネクションの状況と、上記所定インターバル時間のコネクションの変化を考慮して、各物理ノードにかかる負荷が均衡するようにコネクション配分の割合を決定するための制御目標値である。また、コネクション数の増加量平均値Cは、例えば、データベース側からパフォーマンス値として取得することができる。ステップS106では、動的均衡計画部148は、上記算出した目標値Tに応じて、各物理ノード上のサーバ実体に対するコネクション配分の割合を決定する。ここでは、各物理ノードi(i=1,・・・I)上に共通の分散データベースのサーバ実体が配置されるとすると、その分散データベースについての各物理ノードi上のサーバ実体へのコネクションの配分の比率は、T-R:T-R:…:T-Rとなる。
 上記式(1)中、コネクション1本に相当するリソース使用値rは、コネクション1本当が物理ノードにおけるリソース使用値に占める換算値であり、例えば、物理ノードの総コネクション数がパフォーマンス情報として取得可能であれば、最も負荷の大きな物理ノードに注目して、該物理ノードのリソース使用値をRsとし、該物理ノードのコネクション総数をmとして、下記式(2)により算出することができる。

 あるいは、分散データベース全体のコネクション数が上記パフォーマンス情報として取得可能であれば、最も負荷の大きな分散データベースに注目して、該分散データベースのサーバ実体が配置される各物理ノードのリソース使用値と、各物理ノードにおける該分散データベースのサーバ実体のリソース使用割合とから、分散データベースが使用する総リソース使用値を算出し、これを分散データベース全体に対するコネクション数で割ることで、コネクション1本に相当するリソース利用値rを算出することもできる。
 ステップS107~ステップS112のループでは、各分散データベース毎にステップS108~ステップS111の処理を実行する。ステップS108~ステップS111のループでは、注目する分散データベースについて、1番目からI番目の各物理ノードi毎にステップS109およびステップS110の処理を実行し、目標値を上回って負荷がかかる物理ノードの存在を検出する。ステップS109では、動的均衡計画部148は、物理ノードiのリソース使用値Rと上記目標値Tとを比較し、リソース使用値Rが目標値Tを上回るか否かを判定する。ステップS109で、リソース使用値Rが目標値Tを上回らないと判定された場合(NO)には、ステップS111へ処理を進める。
 ステップS107~ステップS112のループを抜けると、ステップS113では、コネクション・プール調整部150は、リソース使用値Rが目標値Tを下回る(R<T)物理ノードについて、コネクション配分の割合に応じて充分な量のコネクションをプール部154にプールし、ステップS101へ処理をループさせ、次のインターバル時間の経過を待つ。ステップS113におけるプール量の調整処理により、コネクション解決部152は、上記決定したコネクション配分の割合に応じて、例えばラウンドロビン方式により、再接続および新規接続を含めた新たなコネクションを配分するようになる。なお、各物理ノードにコネクションが割り振られる確率Sは、例えば各物理ノードi(i=1,・・・I)上に共通の分散データベースのサーバ実体が配置されるとすると、下記式(3)の関係となる(図8)。
Figure JPOXMLDOC01-appb-M000003

 一方、ステップS109で、リソース使用値Rが目標値Tを上回ると判定された場合(YES)には、ステップS110へ処理を進める。ステップS110では、動的均衡計画部148は、注目している分散データベースについて、物理ノードのリソース使用値Rが目標値Tを上回るその差分に相当するコネクション数Qのうち、注目する当該分散データベースに対応する分について、当該物理ノード上のサーバ実体へのコネクションを切断し再接続するようドライバ部162に対し要求する(図8)。ここで、物理ノードiについて切断が要求される上記差分に相当するコネクション数Qは、下記式(4)により算出することができる。
Figure JPOXMLDOC01-appb-M000004

 そして、物理ノードi上に複数の分散データベースのサーバ実体が相乗りする場合には、ステップS110では、上記合計Q本のうち、注目している分散データベースが当該物理ノードiに占めるリソース使用割合に応じた分だけコネクションの再接続が行われる。再接続の要求を受けたドライバ部162は、トランザクション境界のタイミングで、再接続要求にかかるコネクションを切断し、新たなコネクションにつなぎ替える。
 本発明の実施形態では、上述したように、物理ノードの負荷状況に応じたコネクション配分を行うことにより、目標よりも負荷が大きな物理ノードから目標より負荷が小さな物理ノードへと負荷を移動させることができ、ひいては物理ノード群120全体の負荷のピークを平滑化させることができる。本発明の実施形態によれば、動的に変動する負荷状況を監視し、負荷状況の変化に対応してクライアントとのコネクション配分の割合を動的に変えるというパフォーマンス・コストの低い操作により、物理ノード全体の負荷を均衡し、物理リソースを有効活用することが可能となる。
 また、本実施形態によるコネクション配分による負荷均衡手法では、予測が困難な負荷状況を考慮することなくデータベース配置を計画することができる。また、分散データベースのマスタおよびレプリカへのコネクション配分を制御することで負荷均衡が実現されるため、局所的な計画と操作だけで良好に負荷の平滑化を実現することができ、物理リソースの増強やレプリカの追加では対処が困難であった突発的な過負荷やリソース余りに対しても、即応的に対処することが可能である。
 さらに、目標値を越える負荷に相当するコネクションの再接続は、トランザクション境界で行われるため、ユーザにはコネクションの切断が隠蔽され、ユーザに切断を意識させない。したがって、長時間接続を維持するようなユーザに対しても、コネクション配分の対象とすることができる。
(3)データベース配置計画の詳細
(3.1)データベース配置計画方法
 以下、コネクション配分による負荷均衡に有利なデータベース配置を計画する処理について説明する。ここで、分散データベースの数をNとし、分散データベースの多重度をMとし、物理ノードの数をKとする。また、各分散データベースの多重度は、互いに異なることを妨げないが、説明の便宜上、共通であるものとする。
 また、本発明の実施形態によるコネクション配分による負荷均衡手法が、複数の分散データベースのサーバ実体が相乗りする物理ノードにかかる負荷の均衡を目的とすることから、物理ノード上のサーバ集合に組み合わせが生じるようなデータベース配置であることが前提となる。このため、M≧2、K<M・Nを満たすことが条件となる。さらに、分散データベースの多重度Mが物理ノードの数Kを上回ると、必ず同一物理ノード上に同一分散データベースの複数のサーバ実体が配置されてしまう。また分散データベースの多重度Mが物理ノード数Kと等しいと、各物理ノード上にすべての分散データベースのサーバ実体が配置されることになり、負荷を実質的に移動させることができなくなる。このため、M<Kが追加の条件となる。
 図9は、本発明の実施形態による配置計画部が実行するデータベース配置計画処理を示すフローチャートである。図9に示す処理は、システム管理者から初期配置構成の実施の指示が行われたことに応答して、ステップS200から開始する。ステップS201では、配置計画部112は、システム管理者からの初期配置構成の実施の指令を受領する。ステップS202では、配置計画部112は、物理ノード数Kが分散データベース数N以上であるか否かを判定し、物理ノード数Kと分散データベース数Nとの大小関係により処理フローを分岐させる。
 ステップS202で、物理ノード数Kが分散データベース数N以上であると判定された場合(YES)には、ステップS203へ処理を分岐させる。ステップS203では、配置計画部112は、n個の分散データベースをn個の物理ノードに配置する配置計画アルゴリズムA(n)を呼び出し、N個の分散データベースをK個のうちのN個の物理ノードへ配置する配置計画を実施する。より具体的には、配置計画部112は、n←Nとして、多重度Mとをパラメータとして与えて、配置計画アルゴリズムA(n)を呼び出し、N個の分散データベースのマスタおよびレプリカを、K個のうちの任意のN個の物理ノードに配置する配置計画を実施する。これにより、N個の物理ノード上にN個の分散データベースのM個のデータベース・サーバ実体の配置が計画され、K個のうちの残りK-N個の物理ノードがデータベース未配置の空きノードとして準備される。なお、配置計画アルゴリズムA(n)については詳細を後述する。
 ステップS204では、配置計画部112は、ステップS203で配置計画したN×M個のデータベース・サーバ実体うちのO個を、最後に配置計画されたものから順に、上記ステップS203で残されたK-N個の未配置の空きノードに1つずつ移動させる。移動させるサーバ実体の個数Oは、下記式(5)により算出することができる。
Figure JPOXMLDOC01-appb-M000005

 上記式(5)中、上の欠けた角括弧は床関数を表す。また、上記式(5)は、各物理ノード上に配置されるサーバ実体の数を均等化するための移動個数を計算する関数を例示するものであり、特に限定されるものではなく、例えば床関数に替えて天井関数を使用してもよい。
 図10は、分散データベースの各サーバ実体を物理ノードに配置する方法を説明する図である。図10(A)は、物理ノード数Kが分散データベース数N以上である場合の配置方法を示す。図10(A)に示すように、物理ノード数Kが分散データベース数N以上であるときは、K個のうちのN個の物理ノード上にN個の分散データベースのM個のサーバ実体の配置が計画され、その後、残りのK-N個の空きノードに均等に振り分けられ、結果として、K個の物理ノード全体にサーバ実体が均等に配置される。
 ステップS205では、配置計画部112は、上記ステップS203およびステップS204で計画されたデータベース配置の構成定義を配置実行部114に渡し、分散配置の実施を指令して、分散データベース環境を構築させ、ステップS206で、本処理を終了させる。
 一方、ステップS202で、物理ノード数Kが分散データベース数N未満であると判定された場合(NO)には、ステップS207へ処理を分岐させる。ステップS207では、配置計画部112は、まずi=1を設定し、ステップS208では、配置計画アルゴリズムA(n)を呼び出し、N個のうちのK個の分散データベースをK個の物理ノードへ配置する配置計画を実施する。より具体的には、配置計画部112は、n←Kとして、多重度Mをパラメータとして与えて、配置計画アルゴリズムA(n)を呼び出し、N個のうちの任意のK個の分散データベースのマスタおよびレプリカを、K個の物理ノード上に配置する配置計画を実施する。これにより、K個の物理ノード上にK個の分散データベースのM個のサーバ実体の配置が計画される。ステップS209では、未計画の分散データベースの個数Lを下記式(6)に従って計算する。
Figure JPOXMLDOC01-appb-M000006

 ステップS210では、配置計画部112は、未計画の分散データベースの個数Lが物理ノード数Kを上回るか否かを判定する。ステップS210で、未計画の分散データベースの個数Lが物理ノード数Kを上回ると判定された場合(YES)には、ステップS211へ処理を分岐させ、iをインクリメントし、ステップS208へ処理をループさせる。これにより、未計画の分散データベースの個数LのうちさらにK個の分散データベースの配置計画が実施される。一方、ステップS210で、未計画の分散データベースの個数Lが物理ノード数K以下であると判定された場合(NO)には、ステップS212へ処理を分岐させる。
 ステップS212では、配置計画部112は、n←Lとして、多重度Mをパラメータとして与えて、配置計画アルゴリズムA(n)を呼び出し、K個未満の残りL個の分散データベースのマスタおよびレプリカをL個の物理ノードへの配置計画を実施する。ステップS213では、配置計画部112は、ステップS212で配置計画したL×M個のデータベース・サーバ実体を、最後に配置計画されたものから順に、K-Lの他の物理ノードに1つずつ移動させる。移動させるサーバ実体の個数は、上記式(5)と同様に、各物理ノード上に配置されるサーバ実体の数を均等化するための移動個数を計算する関数とすることができる。
 ステップS205では、配置計画部112は、上記ステップS207~ステップS213で計画されたデータベース配置の構成定義を配置実行部114に渡し、分散配置の実施を指令して、分散データベース環境を構築させ、ステップS206で、本処理を終了させる。
 図10(B)は、物理ノード数Kが分散データベース数N未満である場合の配置方法を説明する。図10(B)に示すように、物理ノード数Kが分散データベース数N未満であるときは、まず、N個のうちのK個の分散データベースがK個の物理ノードに配置される。そして、残りの分散データベースがK未満となるまで、同様の手順により、K個ずつ分散データベースの配置計画を行う。残りの分散データベースの個数LがK未満となると、L個の分散データベースをL個の物理ノードへ配置する配置計画を実施して、最後配置したものから順にサーバ実体をK-L個の物理ノードに振り分けて、K個の物理ノードに均等にサーバ実体を配置する。
(3.2)配置計画アルゴリズムA(n)
 図11は、本発明の実施形態による配置計画部が実行する、配置計画アルゴリズムA(n)の処理を示すフローチャートである。図11に示す処理は、図10に示したステップS203、ステップS208またはステップS212で呼び出されて、ステップS300から開始される。ステップS301では、配置計画部112は、n個の分散データベースそれぞれの1つのデータベース・サーバ実体(例えばマスタ)をn個の物理ノード上に配置計画し、各物理ノードおよび各分散データベースに番号を付す(図12のA1)。
 ステップS302では、配置計画部112は、n個の分散データベースのもう1つのデータベース・サーバ実体(例えば1番目のレプリカ)を、それぞれ、ステップS301で配置した物理ノードの次の番号が付された物理ノード上に配置計画する(図12のA2)。ここで、上記「次の番号」は、1~nまでの値であり、(n+1)は1へ循環される。ステップS301およびステップS302により、同一分散データベースのサーバ実体が配置される物理ノードを連結する辺を繋げると、n個の物理ノードから構成される輪が構成される。なお、この輪はクラスタを構成し、この配置計画アルゴリズムを用いることで、クラスタは、節点数がnまで広がる。
 ステップS303では、配置計画部112は、多重度Mが3以上であるか否かを判定する。ステップS303で、多重度Mが3未満であると判定された場合(NO)には、ステップS309へ処理を分岐させ、本処理を終了し、呼び出し元に処理を返す。一方、ステップS303で、多重度Mが3以上であると判定された場合(YES)には、ステップS304~ステップS306のループへ処理を進める。
 ステップS304~ステップS306のループでは、ステップS305の処理をM-2回だけ繰り返し、各分散データベースの残りのレプリカの配置を計画する。ステップS305では、n個の分散データベースの残りのレプリカのうちi個目のデータベース・サーバ(つまりi+1番目のレプリカ)を、下記式(7)に従って配置計画する(図12のA3)。
Figure JPOXMLDOC01-appb-M000007

 上記式(7)中、下の欠けた角括弧は天井関数を表す。また、上記式(7)中、kは、ステップS301で付された番号であり、iは、分散データベースのインスタンスのうちの、上記ステップS301およびステップS302で残されたレプリカを識別する番号である。なお、上記式(7)は、n個の分散データベースのサーバ実体を上記物理ノードの輪の上に最も距離を有するように配置するための関数を例示するものであるが、特に限定されるものではない。ステップS304~ステップS306のループを抜けると、ステップS307では、配置計画部112は、Mが奇数であり、かつnが偶数であるという条件を満たすか否かを判定する。ステップS307で、Mが奇数でありかつnが偶数であるという条件を満たさないと判定された場合(NO)には、ステップS309で本処理を終了し、呼び出し元に処理を返す。
 一方、ステップS307で、Mが奇数であり、かつnが偶数であるという条件を満たすと判定された場合(YES)には、ステップS308へ処理を進める。ステップS308では、配置計画部112は、kとk+n-1番目においたデータベース配置の組み合わせが重ならないように、i=(M-1)/2番目に配置したデータベース・サーバを、次の番号でまだ配置していない物理ノードに配置する。このように配置することで、n個の物理ノード全体にコネクション配分の流れが分散するようなデータベース配置が計画される。
 上述したデータベース配置処理により、上述した負荷が移動可能な関係を有し、クラスタサイズが最大化され、好ましくはクラスタの節点数が物理ノード数Kに一致するデータベース配置が計画される。ひいては、上記コネクション配分により、物理ノード群全体で負荷の均衡を図ることが可能となる。
(3.3)データベース配置の交換
 以下、長期的なスパンにおける負荷の偏りを軽減する補助構成について説明する。本実施形態の補助構成部116は、長期的なスパン内における物理ノード間の負荷の偏りを監視し、負荷の偏りがなくなるようにデータベース配置を適宜変更し、修正する機能を有する。ここで、長期的なスパン内における物理ノード間の負荷の偏りとは、各物理ノードの負荷評価量の一定期間における平均値から求められる、物理ノード群120内で常態化された負荷の不均一な分布をいう。各物理ノードの負荷評価量は、上述したコネクション配分により、目標値Tに漸近するように制御されるが、ある分散データベースに負荷が集中する場合に、複数の物理ノードにわたって負荷が偏在する可能性がある。
 図13は、多重度2で輪状に分散配置されたデータベース配置における負荷分布を例示する図である。図13には、物理ノードの物理的な配置ではなく、上記負荷移動可能な関係によるデータベース配置が表されている。図13に示すような物理ノードが構成する輪の中で、分散データベースに負荷が集中することで、隣接する複数の物理ノードにかかる負荷が偏って増大してしまう可能性がある。この場合、この物理ノード間で効率的に負荷を移動させることができなくなってしまう。
 そこで、補助構成部116は、コネクション配分部140からパフォーマンス情報を取得し、このような常態化した負荷の偏りを監視する。補助構成部116は、常態化した負荷の偏りを検出すると、負荷が偏在する物理ノード上で動作するサーバ実体いずれか(例えばレプリカA‘)と、他方の比較的負荷が小さな物理ノード上で動作するサーバ実体(例えばレプリカX’)とを交換するよう、配置計画部112が計画したデータベース配置計画を修正し、配置実行部114のデータベース配置の実行を促す。なお、レプリカの交換はコネクション配分に比べてパフォーマンス・コストが高いため、例えば深夜などの負荷の低い時間帯やメンテナンスのタイミングを選択して行うことができる。なお、補助構成部116は、本実施形態の配置交換部を構成する。
(4)代替実施形態
 なお、上述までの実施形態では、コネクション要求受付部160およびドライバ部162が、クライアント・アプリケーションが動作するアプリケーション・サーバ130上に、コネクション配分部140が別の装置として構成されたコネクション配分サーバ132上に実現されるものとして説明してきた。しかしながら、図1に示す構成に限定されるものではなく、他の実施形態では、図1において波線で示すように、コネクション配分部140、コネクション要求受付部160、ドライバ部162およびクライアント164を同一のサーバ134上に実装することもできる。
 また、上述までの実施形態では、データベース配置サーバ110は、アプリケーション・サーバ130やコネクション配分サーバ132とは別の装置として実現されるものとして説明してきたが、データベース配置サーバ110は、アプリケーション・サーバ130、コネクション配分サーバ132またはサーバ134上に一体として構成することもできる。
 以上説明したように、上記実施形態によれば、分散データベース環境において、突発的な過負荷や物理リソース余りの状況に対し、即応的、柔軟かつ操作自体のパフォーマンス・コストが小さな手法により、物理ノードにかかる負荷を均衡することで、限られた物理リソース上で効率的な分散データベース環境を実現することができる、情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラムを提供することができる。
 なお、本発明の上記機能は、アセンブラ、C、C++、Java(登録商標)、JavaBeans(登録商標)、Java(登録商標)Applet、JavaScript(登録商標)、Perl、Rubyなどのレガシープログラミング言語またはオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD-ROM、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
 これまで本発明を、特定の実施形態および実施例をもって説明してきたが、本発明は、特定の実施形態または実施例に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。

Claims (25)

  1.  複数の物理ノード上に分散配置される複数のデータベース・サーバであって、当該複数のデータベース・サーバのうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする、当該複数のデータベース・サーバと、
     前記物理ノードそれぞれに関する負荷を監視し、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへと、クライアントとのコネクションを移動させて、前記負荷を均衡させるようにコネクションを配分する配分部と
     を含む、情報処理システム。
  2.  前記配分部は、目標を上回る分の負荷に相当する接続数分のコネクションの再接続を計画し、目標を下回る分の負荷に応じた確率で再接続を含む新たなコネクションの配分を計画する均衡計画部を含み、
     前記情報処理システムは、再接続が計画されたコネクションをトランザクション境界で一旦切断して、再接続に係る新たなコネクションを取得する再接続制御部をさらに含み、 前記移動は、再接続が計画された前記コネクションの切断および前記新たなコネクションの取得により実現される、請求項1に記載の情報処理システム。
  3.  前記配分部は、計画された前記配分の割合に応じて各データベース・サーバに接続されるコネクションのプール量を調整するプール調整部と、コネクションの取得要求に応答して、プールされたコネクションの中から、要求に係るデータを受け持つデータベース・サーバに接続されるコネクションを返すコネクション解決部とを含み、
     前記情報処理システムは、再接続制御部からの再接続の要求またはクライアントからの新規接続の要求に応答して、前記解決部に対し取得要求を発行し、返されたコネクションを受け取り、クライアントとデータベース・サーバとの接続を確立するコネクション要求受付部をさらに含む、請求項2に記載の情報処理システム。
  4.  前記複数のデータベース・サーバは、さらに、同一のデータを受け持つサーバを同一の要素として、各要素について、同一要素のサーバが配置される2以上の物理ノード上に配置されるサーバの集合に差異があることを特徴とする、請求項3に記載の情報処理システム。
  5.  前記複数のデータベース・サーバは、互いに同一データを受け持つサーバ間を結ぶ辺の連なりにより構成されるグラフであって、互いに異なるデータを受け持つ2以上のサーバが配置される物理ノードを節点として含む当該グラフの節点の数が、前記複数のデータベース・サーバが分散配置される物理ノードの数と等しいことを特徴とする、請求項4に記載の情報処理システム。
  6.  互いに同一のデータを受け持つ2以上のサーバが同一の物理ノード上に配置されないように、前記複数のデータベース・サーバの配置を計画する配置計画部をさらに含む、請求項1に記載の情報処理システム。
  7.  設定されたスパン内での前記物理ノードそれぞれに関する前記負荷の偏りを検出し、偏った負荷がかかる物理ノード上のデータベース・サーバが受け持つデータと、他の物理ノード上のデータベース・サーバが受け持つデータとを交換させる配置交換部をさらに含む、請求項1に記載の情報処理システム。
  8.  前記配分部は、前記複数のデータベース・サーバに関するパフォーマンス情報を取得するパフォーマンス取得部と、前記複数のデータベース・サーバの配置構成を取得する配置構成取得部と、前記パフォーマンス情報および前記配置構成から、前記物理ノード毎の負荷を計算する負荷計算部とをさらに含み、
     前記均衡計画部は、前記物理ノード毎の負荷と、見積もられる接続数の増加量と、接続1つ当たりの負荷とから、前記負荷に対する制御目標値を計算し、さらに前記コネクションの配分の割合を求める、請求項2に記載の情報処理システム。
  9.  複数の物理ノード上に分散配置される複数のデータベース・サーバであって、前記複数のデータベース・サーバのうち、第1データを受け持つ第1サーバと第2データを受け持つ第2サーバとが第1物理ノード上に配置され、前記第1データを受け持つ第3サーバが第2物理ノード上に配置される、当該複数のデータベースと、
     前記第1物理ノードおよび前記第2物理ノードそれぞれに関する負荷を監視し、前記第1物理ノードの負荷が目標より大きく、前記第2物理ノードの負荷が目標より小さい場合に、前記第1物理ノード上の前記第1サーバへのクライアントとのコネクションを、前記第2物理ノード上の前記第3サーバへ移動させる配分部と
     を含む、情報処理システム。
  10.  複数の物理ノードにネットワークを介して接続される情報処理装置であって、
     前記複数の物理ノード上に分散配置される複数のデータベース・サーバであって、当該複数のデータベース・サーバのうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする当該複数のデータベース・サーバそれぞれと接続する複数のコネクションをプールするプール部と、
     前記物理ノードそれぞれに関する負荷を監視し、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへと、クライアントとのコネクションを移動させて、前記負荷を均衡させるようにコネクションを配分する配分部と
     を含む、情報処理装置。
  11.  前記配分部は、目標を上回る分の負荷に相当する接続数分のコネクションの再接続を計画し、目標を下回る分の負荷に応じた確率で再接続を含む新たなコネクションの配分を計画する均衡計画部を含み、
     前記移動は、再接続が計画された前記コネクションの切断および前記新たなコネクションの取得により実現される、請求項10に記載の情報処理装置。
  12.  前記配分部は、計画された前記配分の割合に応じて各データベース・サーバに接続されるコネクションのプール量を調整するプール調整部と、コネクションの取得要求に応答して、前記プール部にプールされたコネクションの中から、要求に係るデータベース・サーバに接続されるコネクションを返すコネクション解決部とを含む、請求項11に記載の情報処理装置。
  13.  複数の物理ノードにネットワークを介して接続される情報処理装置であって、
     複数のデータベース・サーバを前記複数の物理ノード上へ分散配置する計画を立てる配置計画部であって、前記複数のデータベース・サーバのうち、互いに同一のデータを受け持つ2以上のサーバが同一の物理ノード上に配置されないように、かつ、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されるように、データベース配置を計画することにより、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへ、クライアントとのコネクションを移動可能とすることを特徴とする、当該配置計画部を含む、情報処理装置。
  14.  設定されたスパン内での前記物理ノードそれぞれに関する前記負荷の偏りを検出し、偏った負荷がかかる物理ノード上のデータベース・サーバが受け持つデータと、他の物理ノード上のデータベース・サーバが受け持つデータとを交換させる配置交換部をさらに含む、請求項13に記載の情報処理装置。
  15.  前記配置計画部は、前記複数のデータベース・サーバのうち、同一のデータを受け持つサーバを同一の要素として、要素それぞれについて、同一要素のサーバが配置される2以上の物理ノード上に配置されるサーバの集合に差異があるように、前記複数のデータベース・サーバのそれぞれを配置することを特徴とする、請求項14に記載の情報処理装置。
  16.  前記配置計画部は、前記複数のデータベース・サーバのうち互いに同一データを受け持つサーバ間を結ぶ辺の連なりにより構成されるグラフであって、互いに異なるデータを受け持つ2以上のサーバが配置される物理ノードを節点として含む当該グラフの節点の数が前記複数のデータベース・サーバが分散配置される物理ノードの数と等しくなるように、前記複数のデータベース・サーバのそれぞれを配置することを特徴とする、請求項15に記載の情報処理装置。
  17.  前記配置計画部は、前記複数のデータベース・サーバのうち互いに同一データを受け持つ2つのサーバが配置される2つの物理ノードを結ぶ辺により構成される輪上で、前記2つのサーバと同一のデータを受け持つ他のサーバが前記2つのサーバと距離をあけて配置されるように、前記複数のデータベース・サーバのそれぞれを配置することを特徴とする、請求項16に記載の情報処理装置。
  18.  複数の物理ノードにネットワークを介して接続される情報処理装置が実行する、負荷均衡方法であって、前記複数の物理ノード上には、複数のデータベース・サーバであって、当該複数のデータベース・サーバのうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする当該複数のデータベース・サーバが分散配置され、前記負荷均衡方法は、
     前記情報処理装置が、前記物理ノードそれぞれに関する負荷を監視するステップと、
     前記情報処理装置が、前記複数のデータベース・サーバのうちの目標より負荷が大きな物理ノード上のデータベース・サーバへのクライアントとのコネクションを、トランザクション境界で切断する要求を発行するステップと、
     前記情報処理装置が、前記複数のデータベース・サーバのうちの目標より負荷が小さな物理ノード上のデータベース・サーバへのクライアントとの再接続にかかる新たなコネクションを取得するステップと
     を含む、負荷均衡方法。
  19.  前記負荷を監視するステップは、さらに、
     前記情報処理装置が、目標を下回る分の負荷に応じた確率で再接続を含む新たなコネクションの配分を計画するサブステップと、目標を上回る分の負荷に相当する接続数分のコネクションの再接続を計画するサブステップとを含む、請求項18に記載の負荷均衡方法。
  20.  前記負荷を監視するステップは、前記情報処理装置が、前記配分の割合に応じてコネクションのプール量を調整するサブステップを含み、前記新たなコネクションを取得するステップは、前記情報処理装置が、クライアントからのコネクションの取得要求に応答して、前記プールされたコネクションの中から、要求に係るデータベース・サーバへ接続されたコネクションを返すサブステップを含む、請求項19に記載の負荷均衡方法。
  21.  複数の物理ノードにネットワークを介して接続される情報処理装置が実行する、複数のデータベース・サーバを前記複数の物理ノード上へ分散配置する計画を立てる方法であって、
     前記情報処理装置が、前記複数のデータベース・サーバのうち、互いに同一のデータを受け持つ2以上のサーバが同一の物理ノード上に配置されないように、かつ、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されるように、データベースの配置を計画するステップ
     を含み、
     前記計画するステップにより計画された配置が実施されることによって、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへ、クライアントとのコネクションが移動可能とされることを特徴とする、データベース配置計画方法。
  22.  前記計画するステップは、
     前記情報処理装置が、前記複数のデータベース・サーバのうち、互いに同一データを受け持つサーバを2つづつ物理ノードに配置するように計画するサブステップであって、前記互いに同一データを受け持つ2つのサーバが配置される2つの物理ノードを結ぶ辺により輪を構成する、当該サブステップと、
     前記情報処理装置が、他のデータベース・サーバの配置を計画するサブステップであって、前記2つのサーバと同一のデータを受け持つ他のサーバが前記2つのサーバと距離をあけて配置することを計画するサブステップと
     を含む、請求項21に記載のデータベース配置計画方法。
  23.  設定されたスパン内での前記物理ノードそれぞれにかかる負荷の偏りを検出するステップと、
     偏った負荷がかかる物理ノード上のデータベース・サーバが受け持つデータと、他の物理ノード上のデータベース・サーバが受け持つデータとを交換させるステップをさらに含む、請求項22に記載のデータベース配置計画方法。
  24.  コンピュータ実行可能なプログラムであって、前記プログラムは、1以上のコンピュータからなるコンピュータ・システムに対し、
     複数の物理ノード上に分散配置される複数のデータベース・サーバであって、当該複数のデータベース・サーバのうち、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されていることを特徴とする当該複数のデータベース・サーバそれぞれと接続する複数のコネクションをプールするプール部、および
     前記物理ノードそれぞれに関する負荷を監視し、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへと、クライアントとのコネクションを移動させて、前記負荷を均衡させるようにコネクションを配分する配分部
     を実現するためのプログラム。
  25.  コンピュータ実行可能なプログラムであって、前記プログラムは、1以上のコンピュータからなるコンピュータ・システムに対し、
     複数のデータベース・サーバを複数の物理ノード上へ分散配置する計画を立てる配置計画部であって、前記複数のデータベース・サーバのうち、互いに同一のデータを受け持つ2以上のサーバが同一の物理ノード上に配置されないように、かつ、互いに異なるデータを受け持つ2以上のサーバが同一の物理ノード上に配置され、前記2以上のサーバのいずれかと同一のデータを受け持つ1以上のサーバがそれぞれ1以上の他の物理ノード上に配置されるように、配置を計画することにより、目標より負荷が大きな物理ノード上のデータベース・サーバから、目標より負荷が小さな物理ノード上のデータベース・サーバへ、クライアントとのコネクションを移動可能とすることを特徴とする、当該配置計画部
     を実現するためのプログラム。
PCT/JP2011/070460 2010-11-22 2011-09-08 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム Ceased WO2012070292A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012545640A JP5567686B2 (ja) 2010-11-22 2011-09-08 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム
GB1309532.8A GB2499547B (en) 2010-11-22 2011-09-08 Load balancing in distributed database
DE112011103497T DE112011103497T5 (de) 2010-11-22 2011-09-08 Informationsverarbeitungssystem, Informationsverarbeitungsvorrichtung, Lastausgleichsverfahren, Planungsverfahren für die Datenbankbereitstellung und Programm zum Durchführen der Verbindungsverteilung für den Lastausgleich in einer verteilten Datenbank

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-259734 2010-11-22
JP2010259734 2010-11-22

Publications (1)

Publication Number Publication Date
WO2012070292A1 true WO2012070292A1 (ja) 2012-05-31

Family

ID=46065379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/070460 Ceased WO2012070292A1 (ja) 2010-11-22 2011-09-08 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム

Country Status (6)

Country Link
US (1) US9170851B2 (ja)
JP (1) JP5567686B2 (ja)
DE (1) DE112011103497T5 (ja)
GB (1) GB2499547B (ja)
TW (1) TWI525459B (ja)
WO (1) WO2012070292A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015528962A (ja) * 2012-08-03 2015-10-01 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー 高可用性コンピュータシステム
JP2016045850A (ja) * 2014-08-26 2016-04-04 富士通株式会社 データ配置プログラム、データ配置方法およびデータ配置装置
US9542429B2 (en) 2013-02-05 2017-01-10 International Business Machines Corporation Workload balancing in a distributed database

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332778A1 (en) * 2012-06-07 2013-12-12 Vmware, Inc. Performance-imbalance-monitoring processor features
CN102882973B (zh) * 2012-10-11 2015-05-20 北京邮电大学 基于p2p技术的分布式负载均衡系统和方法
US20150286544A1 (en) * 2012-11-29 2015-10-08 Hewlett-Packard Development Company, L.P. Fault tolerance in a multi-core circuit
CN104102541B (zh) * 2013-04-08 2018-02-13 鸿富锦精密工业(深圳)有限公司 签核动态调整方法及系统
US9053167B1 (en) 2013-06-19 2015-06-09 Amazon Technologies, Inc. Storage device selection for database partition replicas
TWI505111B (zh) * 2013-09-26 2015-10-21 Chunghwa Telecom Co Ltd Assist systems and methods for decentralized database to achieve automatic load balancing
US9578112B2 (en) * 2014-04-30 2017-02-21 Jive Communications, Inc. Reliability of a connection during a communication session on a network device
US10089307B2 (en) * 2014-12-31 2018-10-02 International Business Machines Corporation Scalable distributed data store
US10747753B2 (en) 2015-08-28 2020-08-18 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US9390154B1 (en) 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
JP6966544B2 (ja) 2016-11-10 2021-11-17 スワールズ,インコーポレイテッド 匿名エントリを含む分散型データベースのための方法および装置
CN110140116B (zh) 2016-12-19 2023-08-11 海德拉哈希图有限责任公司 用于启用事件删除的分布式数据库的方法和设备
KR101981310B1 (ko) * 2016-12-27 2019-05-22 주식회사 씨에스리 데이터베이스 시스템의 이상을 탐지하는 장치 및 방법
JP6963168B2 (ja) * 2017-06-21 2021-11-05 富士通株式会社 情報処理装置、メモリ制御方法およびメモリ制御プログラム
TWI770038B (zh) * 2017-07-06 2022-07-11 中華電信股份有限公司 伺服器之遠端管理系統及其遠端管理方法
CA3066903A1 (en) * 2017-07-11 2019-01-17 Swirlds, Inc. Methods and apparatus for efficiently implementing a distributed database within a network
US10489385B2 (en) 2017-11-01 2019-11-26 Swirlds, Inc. Methods and apparatus for efficiently implementing a fast-copyable database
US10715615B1 (en) * 2018-08-01 2020-07-14 The Government Of The United States Of America As Represented By The Secretary Of The Air Force Dynamic content distribution system and associated methods
US10990608B2 (en) 2019-03-19 2021-04-27 Snowflake Inc. Transferring connections in a multiple deployment database
TWI743474B (zh) * 2019-04-26 2021-10-21 鴻齡科技股份有限公司 存儲資源管理裝置及管理方法
SG11202109729SA (en) 2019-05-22 2021-10-28 Swirlds Inc Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database
TWI701557B (zh) * 2019-05-24 2020-08-11 威聯通科技股份有限公司 多複製資料源系統的資料讀取方法
CN110502522B (zh) * 2019-08-30 2022-11-29 携程计算机技术(上海)有限公司 报表处理系统及方法
US12210912B2 (en) * 2019-09-11 2025-01-28 Synchronoss Technologies, Inc Method and system for uniform, consistent, stateless and deterministic consistent hashing for fixed size partitions
US11514079B1 (en) * 2019-11-27 2022-11-29 Amazon Technologies, Inc. Peer-based access to distributed database
US11789971B1 (en) 2019-12-02 2023-10-17 Amazon Technologies, Inc. Adding replicas to a multi-leader replica group for a data set
CN111209097B (zh) * 2019-12-16 2024-04-05 网宿科技股份有限公司 软件部署方法及系统
US11409771B1 (en) 2020-03-26 2022-08-09 Amazon Technologies, Inc. Splitting partitions across clusters in a time-series database
US11366598B1 (en) 2020-03-26 2022-06-21 Amazon Technologies, Inc. Dynamic lease assignments in a time-series database
US11263270B1 (en) * 2020-03-26 2022-03-01 Amazon Technologies, Inc. Heat balancing in a distributed time-series database
US10855660B1 (en) * 2020-04-30 2020-12-01 Snowflake Inc. Private virtual network replication of cloud databases
US11032361B1 (en) * 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability
AU2021358742A1 (en) 2020-10-06 2023-06-22 Hedera Hashgraph, Llc Methods and apparatus for a distributed database within a network
RU2771444C1 (ru) * 2021-05-13 2022-05-04 Акционерное общество "Лаборатория Касперского" Система и способ балансировки подключений между клиентами и серверами
CN114143320A (zh) * 2021-09-01 2022-03-04 浪潮云信息技术股份公司 一种基于分布式数据库的数据网关方法及系统
US12093156B2 (en) * 2021-10-14 2024-09-17 International Business Machines Corporation Connection pool management using predicted authentication data
US11930073B1 (en) * 2022-10-21 2024-03-12 International Business Machines Corporation Maximizing system scalability while guaranteeing enforcement of service level objectives
CN115766733B (zh) * 2022-11-14 2025-09-16 中国建设银行股份有限公司 节点信息处理系统及方法
CN115550368B (zh) * 2022-11-30 2023-03-10 苏州浪潮智能科技有限公司 一种元数据上报方法、装置、设备及存储介质
CN115587222B (zh) * 2022-12-12 2023-03-17 阿里巴巴(中国)有限公司 分布式图计算方法、系统及设备
CN116028234B (zh) * 2023-03-31 2023-07-21 山东浪潮科学研究院有限公司 一种分布式数据库负载均衡方法、装置、设备及存储介质
CN116521486A (zh) * 2023-05-12 2023-08-01 山东中创软件商用中间件股份有限公司 分布式文档存储数据库监控脚本的实现方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005338893A (ja) * 2004-05-24 2005-12-08 Hitachi Ltd データ処理システムおよびディスクアクセス制御方法並びにその処理プログラム
JP2006209294A (ja) * 2005-01-26 2006-08-10 Hitachi Ltd アクセス負荷を分散するストレージシステム
JP2010238124A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05314179A (ja) 1992-05-14 1993-11-26 Kobe Steel Ltd 分散型データベースのデータ検索処理方法
JPH0765031A (ja) 1993-08-27 1995-03-10 Toshiba Corp 重複分散データベースを持つ情報処理システム
EP0675451A3 (en) 1994-03-30 1996-12-04 Siemens Stromberg Carlson Distributed database architecture and system for managing a distributed database for development in an open network.
EP0678812A1 (en) 1994-04-20 1995-10-25 Microsoft Corporation Replication verification
JP3584630B2 (ja) 1996-09-20 2004-11-04 株式会社日立製作所 データベース処理システムにおける分類集計処理方法
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6604137B2 (en) * 1997-07-31 2003-08-05 Mci Communications Corporation System and method for verification of remote spares in a communications network when a network outage occurs
JP2000020374A (ja) 1998-07-01 2000-01-21 Nec Corp レプリケーション制御システム
US6578066B1 (en) * 1999-09-17 2003-06-10 Alteon Websystems Distributed load-balancing internet servers
JP2001109638A (ja) * 1999-10-06 2001-04-20 Nec Corp 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
JP3686564B2 (ja) * 1999-12-21 2005-08-24 株式会社日立製作所 データベースシステム、データベースのレプリカ生成方法およびデータベースのレプリカ生成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001297026A (ja) 2000-04-11 2001-10-26 Hitachi Ltd 複数のデータベースマネージメントシステムを有する計算機システム
JP2002222108A (ja) 2001-01-26 2002-08-09 Hitachi Ltd 部分レプリカの生成装置および生成方法
US6901446B2 (en) * 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
KR20040010836A (ko) * 2001-07-06 2004-01-31 컴퓨터 어소시에이츠 싱크, 인코포레이티드 정보 백업 시스템 및 방법
US7039916B2 (en) 2001-09-24 2006-05-02 Intel Corporation Data delivery system for adjusting assignment of connection requests to nodes based upon the tracked duration
US7451205B2 (en) * 2001-10-01 2008-11-11 Hewlett-Packard Development Company, L.P. Multimedia stream pre-fetching and redistribution in servers to accommodate mobile clients
US7647422B2 (en) * 2001-11-06 2010-01-12 Enterasys Networks, Inc. VPN failure recovery
WO2003107629A2 (en) * 2002-06-01 2003-12-24 Engedi Technologies, Inc. Out-of-band remote management station
US20040078450A1 (en) * 2002-07-08 2004-04-22 Tsu-Wei Chen Packet routing via payload inspection for digital content delivery
US7475108B2 (en) * 2003-06-26 2009-01-06 International Business Machines Corporation Slow-dynamic load balancing method
JP3599055B2 (ja) 2003-07-14 2004-12-08 株式会社日立製作所 記憶装置管理方法およびシステム
US8060599B2 (en) * 2004-03-16 2011-11-15 Hewlett-Packard Development Company, L.P. System and method for determining a streaming media server configuration for supporting expected workload in compliance with at least one service parameter
JP4331045B2 (ja) 2004-04-20 2009-09-16 株式会社エヌ・ティ・ティ・データ データベースシステム、および、プログラム
DE602006004384D1 (de) * 2005-03-21 2009-02-05 Hewlett Packard Development Co Mobiles Klientgerät und System mit Unterstützung von Fernverwaltungsgeräten
US20070073874A1 (en) * 2005-09-07 2007-03-29 Ace Comm Consumer configurable mobile communication solution
US8234378B2 (en) 2005-10-20 2012-07-31 Microsoft Corporation Load balancing in a managed execution environment
US7813265B2 (en) * 2006-03-09 2010-10-12 Cisco Technology, Inc. Backup BGP paths for non-multipath BGP fast convergence
JP4891657B2 (ja) 2006-05-29 2012-03-07 株式会社野村総合研究所 データ記憶システム、ファイル検索装置およびプログラム
WO2007146710A2 (en) * 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8015294B2 (en) * 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
WO2008028072A2 (en) * 2006-08-30 2008-03-06 Hewlett-Packard Development Company, L.P. Electronic device management
US20080065746A1 (en) * 2006-09-07 2008-03-13 Ace*Comm Corporation Consumer configurable mobile communication web filtering solution
CN101523818B (zh) * 2006-10-13 2012-12-19 发尔泰公司 在静态和移动网状网络上的网状网节点移动性
US8756253B2 (en) * 2007-01-22 2014-06-17 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
JP5079561B2 (ja) 2008-03-21 2012-11-21 株式会社野村総合研究所 データベースシステム及びデータベースシステムにおけるレプリカデータの更新方法
US8539035B2 (en) * 2008-09-29 2013-09-17 Fujitsu Limited Message tying processing method and apparatus
US8281023B2 (en) 2008-11-14 2012-10-02 Qualcomm Incorporated Systems and methods for data authorization in distributed storage networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005338893A (ja) * 2004-05-24 2005-12-08 Hitachi Ltd データ処理システムおよびディスクアクセス制御方法並びにその処理プログラム
JP2006209294A (ja) * 2005-01-26 2006-08-10 Hitachi Ltd アクセス負荷を分散するストレージシステム
JP2010238124A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015528962A (ja) * 2012-08-03 2015-10-01 フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー 高可用性コンピュータシステム
US9871704B2 (en) 2012-08-03 2018-01-16 Fujitsu Limited High-availability computer system, working method and the use thereof
US10491488B2 (en) 2012-08-03 2019-11-26 Fujitsu Limited High-availability computer system, working method and the use thereof
US9542429B2 (en) 2013-02-05 2017-01-10 International Business Machines Corporation Workload balancing in a distributed database
US10108654B2 (en) 2013-02-05 2018-10-23 International Business Machines Corporation Workload balancing in a distributed database
JP2016045850A (ja) * 2014-08-26 2016-04-04 富士通株式会社 データ配置プログラム、データ配置方法およびデータ配置装置

Also Published As

Publication number Publication date
DE112011103497T5 (de) 2013-08-14
GB2499547A (en) 2013-08-21
JP5567686B2 (ja) 2014-08-06
TW201237655A (en) 2012-09-16
US20120131093A1 (en) 2012-05-24
TWI525459B (zh) 2016-03-11
JPWO2012070292A1 (ja) 2014-05-19
US9170851B2 (en) 2015-10-27
GB201309532D0 (en) 2013-07-10
GB2499547B (en) 2020-04-22

Similar Documents

Publication Publication Date Title
JP5567686B2 (ja) 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム
EP2904763B1 (en) Load-balancing access to replicated databases
Ren et al. The load balancing algorithm in cloud computing environment
JP5998206B2 (ja) クラスタデータグリッドにおける拡張可能な中央集中型動的リソース分散
US8533731B2 (en) Apparatus and method for distrubuting complex events based on correlations therebetween
US20050038834A1 (en) Hierarchical management of the dynamic allocation of resources in a multi-node system
US20040243709A1 (en) System and method for cluster-sensitive sticky load balancing
US20050038829A1 (en) Service placement for enforcing performance and availability levels in a multi-node system
JPH0293836A (ja) 分散型データベース管理装置
WO2004084085A1 (ja) サイト間連携による負荷分散システム
EP2269136A1 (en) Method, system and computer program for workload scheduling
Dhurandher et al. A cluster-based load balancing algorithm in cloud computing
AU2004266019A2 (en) On demand node and server instance allocation and de-allocation
CN112492022A (zh) 提高数据库可用性的集群、方法、系统及存储介质
US20050021511A1 (en) System and method for load balancing in database queries
CN109274710A (zh) 网络负载均衡方法、装置及集群服务系统
US20050144280A1 (en) Load distribution system by inter-site cooperation
CN117714448A (zh) 多集群流量调度方法、装置、电子设备及存储介质
Saravanakumar et al. A novel load balancing algorithm for computational grid
JP5969352B2 (ja) 信号処理システム
Nandagopal et al. Sender initiated decentralized dynamic load balancing for multi cluster computational grid environment
WO2022222403A1 (zh) 任务分发系统、方法、装置、计算机设备及存储介质
CN120199400B (zh) 基于哈希算法的电子病历分布式存储方法
CN120567864A (zh) 分布式集群的负载均衡方法和装置
CN120144634A (zh) 基于多Trino集群的查询路由方法、系统及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11842690

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012545640

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 112011103497

Country of ref document: DE

Ref document number: 1120111034970

Country of ref document: DE

ENP Entry into the national phase

Ref document number: 1309532

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20110908

WWE Wipo information: entry into national phase

Ref document number: 1309532.8

Country of ref document: GB

122 Ep: pct application non-entry in european phase

Ref document number: 11842690

Country of ref document: EP

Kind code of ref document: A1