WO2013073020A1 - 計算機システム、データ管理方法及びプログラム - Google Patents

計算機システム、データ管理方法及びプログラム Download PDF

Info

Publication number
WO2013073020A1
WO2013073020A1 PCT/JP2011/076398 JP2011076398W WO2013073020A1 WO 2013073020 A1 WO2013073020 A1 WO 2013073020A1 JP 2011076398 W JP2011076398 W JP 2011076398W WO 2013073020 A1 WO2013073020 A1 WO 2013073020A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
computer
server
algorithm
load
Prior art date
Application number
PCT/JP2011/076398
Other languages
English (en)
French (fr)
Inventor
明紘 松本
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/358,715 priority Critical patent/US9489429B2/en
Priority to PCT/JP2011/076398 priority patent/WO2013073020A1/ja
Priority to JP2013544031A priority patent/JP5701398B2/ja
Publication of WO2013073020A1 publication Critical patent/WO2013073020A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • the present invention relates to a distributed database composed of a plurality of computers.
  • the present invention relates to distributed data processing.
  • RDBMS Relational DataBase Management System
  • KVS Key Value
  • NoSQL Not only SQL
  • a volatile storage medium that can access data at high speed, for example, a configuration for storing data in a memory, a non-volatile recording medium that has excellent data storage durability, such as an SSD (Solid State Disk), an HDD, etc.
  • SSD Solid State Disk
  • HDD High Density Digital
  • Various configurations such as a configuration for storing data or a configuration in which the above-described configurations are used together are employed.
  • the configuration used in combination is composed of a memory store configured by integrating the memories of a plurality of computers and a non-volatile storage medium of one or more computers according to various operation policies such as high-speed accessibility and storage characteristics. Various balances of disk stores can be changed.
  • the memory store and the disk store store data in which data (value) and data identifier (key) are paired.
  • parallel processing is realized by configuring a cluster from a plurality of servers and distributing and arranging data on the servers included in the cluster.
  • data is stored in each server for each management range (for example, key range) that is a range of data managed by the server.
  • Each server executes processing as a master of data included in the management range in charge. That is, in response to a read request including a predetermined key, the server in charge of the management range data including the key reads the data corresponding to the key.
  • each server constituting a cluster stores a duplicate data of data managed by another server. That is, each server is a master that manages data included in a predetermined management range, and at the same time is a slave that holds duplicate data of data managed by other servers.
  • the data managed by the failed server as a master can be processed by another server serving as a slave using the replicated data held by itself as the master data. can do.
  • the master server is referred to as a master server
  • the slave server is also referred to as a slave server.
  • KVS also ensures fault tolerance.
  • slave servers that is, the number of servers serving as storage destinations of replicated data can be arbitrarily set by the computer system.
  • a method for arranging data used in KVS or the like various methods such as a consistent hashing method, a range method, and a list method are used.
  • the Consistent Hashing method will be described.
  • the consistent hashing method first, a hash value for a key is calculated, and a remainder obtained by dividing the calculated hash value by the number of servers is calculated. Data is arranged in a server whose remainder matches the server identification number.
  • the system described above is a system for improving access performance.
  • access to specific data is concentrated, there is a problem that a load is generated on a computer that manages the specific data, and the access performance of the entire system is lowered.
  • Patent Document 1 a method for solving the above-described deterioration in access performance by adding a computer, scaling in or out a system, and the like.
  • Patent Document 1 describes that database division conditions are set according to the usage status of computer resources, access distribution, and the like, and data rearrangement is performed according to the division conditions.
  • Patent Document 2 a technique is known that suppresses a decrease in access performance by adding a new server to a cluster and dividing a management range in which the load is concentrated (see, for example, Patent Document 2).
  • Patent Document 1 and Patent Document 2 it is necessary to rearrange the system according to the division condition after temporarily stopping the system. Further, the method described in Patent Document 2 cannot flexibly cope with a temporary load change. This is because it is necessary to perform processing for adding a server to the cluster and relocation of data included in the management range after the addition processing, which increases the processing cost and reduces the performance of the entire system. It is. Also, when the server is deleted from the cluster as the load decreases, the processing cost is similarly high and the performance of the entire system is degraded.
  • the present invention has been made in view of the above-described problems. That is, one of the purposes is to flexibly cope with the load of the computer system and manage data without degrading access performance.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer system in which a plurality of computers are connected via a network, and a business is executed using a database configured from a storage area included in each computer, wherein each computer is connected to a processor and the processor Connected to the processor and a network interface for communicating with other computers via the network, and each computer constituting the database distributes data to each computer Data is arranged based on a distributed algorithm for arranging the data, and the computer system includes a load information management unit that manages load information relating to a load in each computer constituting the database, and the computer based on the load information. Al that switches the distributed algorithm in the system Characterized in that it has a rhythm management unit, and the relocation processing section that rearranges the data stored to the each computer based on the distributed algorithm is switched, the.
  • the data distribution and arrangement method can be switched according to the load on the server constituting the database, the load on the server can be distributed. Therefore, the performance of the entire system can be maintained.
  • FIG. 1 is an explanatory diagram showing an outline of the present invention.
  • the Consistent Hashing method is used as a method for distributing data.
  • the consistent hashing method first, hash values of a plurality of servers 100 are calculated using a predetermined function, and each server 100 is arranged on the circumference based on the hash values. Then, a hash value is calculated from the key of each data, and the data is arranged on the circumference based on the hash value. At this time, each server 100 manages data on the right side of the circumference.
  • the management range 400 of the server 100 is determined, and data is distributed and arranged for each management range 400.
  • the data distribution method is not limited to the consistent hashing method, and various methods such as the range method and the list method can also be used.
  • the management range 400 is set for each server 100.
  • the server 100A manages data in the management range 400A
  • the server 100B manages data in the management range 400B
  • the server 100C manages data in the management range 400C
  • the server 100D manages data in the management range 400D. Manage data.
  • the management range 400A is a range where the hash values are “1” to “100”
  • the management range 400B is a range where the hash values are “101” to “200”
  • the management range 400C has a hash value “ 201 ”to“ 300 ”
  • the management range 400D is a range where the hash values are“ 301 ”to“ 400 ”.
  • the management range 400 managed by the server 100A is changed by switching the distributed algorithm for determining the management range 400.
  • the distributed algorithm is an algorithm for determining the management range 400.
  • FIG. 2 is a block diagram showing the configuration of the computer system in the first embodiment of the present invention.
  • the computer system includes a plurality of servers 100, a client device 200, and a network 300.
  • the servers 100 or the server 100 and the client device 200 are connected to each other via the network 300.
  • the network 300 may have various wired and wireless configurations such as LAN, WAN, and SAN.
  • the present invention may be any network as long as the server 100 and the client device 200 can communicate with each other.
  • the network 300 includes a plurality of network devices (not shown).
  • the network device includes, for example, a switch and a gateway.
  • a cluster is configured from a plurality of servers 100, and a NoSQL database is constructed on a storage area included in the servers 100.
  • KVS is used as the NoSQL database.
  • the server 100 includes a processor 110, a main storage device 120, and an auxiliary storage device 130, and is a computer that constitutes the KVS. Although not shown, the server 100 includes a network interface for connecting to the network 300. The server 100 executes various processes in accordance with requests from the client device 200. It is assumed that the configuration of each server 100 is the same.
  • the server 100 has data arranged for each management range 400, and operates as a master server that manages data included in the predetermined management range 400.
  • the server 100 holds duplicate data of data included in the management range 400 managed by the other server 100 and operates as a slave server.
  • data managed as a master server is referred to as master data
  • data managed as a slave server is also referred to as slave data.
  • the cluster of this embodiment there is no single server serving as a management server that manages the entire computer system, and all servers 100 are treated as equivalent servers. As a result, even if a failure occurs in one server, other slave servers can continue processing as a new master server, so that the processing can be continued without stopping the computer system.
  • each server 100 does not hold slave data. That is, each server 100 is demonstrated as what hold
  • the processor 110 executes a program stored in the main storage device 120.
  • the functions of the server 100 can be realized by the processor 110 executing the program.
  • the processor 110 is executing the program.
  • the main storage device 120 stores a program executed by the processor 110 and information necessary for executing the program.
  • the main storage device 120 may be a memory, for example.
  • a data management unit 141 On the main storage device 120 of this embodiment, a data management unit 141, an access request reception unit 142, an access request transfer unit 143, an access result transmission unit 144, a data relocation processing unit 145, a configuration information management unit 146, load information A program for realizing the management unit 147 and the algorithm management unit 148 is stored. Further, configuration information 161, server load information 162, log information 163, algorithm switching history 164, algorithm switching condition information 165, and movement history 166 are stored on the main storage device 120 as necessary information.
  • a data store 150 that is a database constituting the KVS is stored.
  • the data store 150 stores data including a key and a value as a set. Note that data included in the management range 400 is stored in the data store 150 of each server 100.
  • the auxiliary storage device 130 stores various information.
  • the auxiliary storage device 130 may be an HDD or an SSD.
  • a disk store (not shown) for constructing the KVS may be constructed on the auxiliary storage device 130.
  • the data management unit 141 controls various processes for data managed by the server 100.
  • the data management unit 141 receives a request from the client device 200 and controls processing such as data reading and writing based on the request.
  • the access request receiving unit 142 receives an access request from the client device 200 and transfers the received access request to the data management unit 141.
  • the access request transfer unit 143 transfers the access request to the other server 100 in order to make an inquiry about data to the other server 100.
  • the access result transmission unit 144 transmits the processing result for the received access request to the client device 200.
  • the data rearrangement processing unit 145 executes a rearrangement process of data stored in each management range 400 after the distribution algorithm is switched.
  • the configuration information management unit 146 manages configuration information 161 that manages a data storage destination.
  • the load information management unit 147 acquires information regarding the load of each server 100 and updates the server load information 162 based on the acquired information.
  • the algorithm management unit 148 manages the distributed algorithm.
  • the configuration information 161 stores information indicating a data storage destination. That is, information indicating the management range 400 of each server 100 is stored. Details of the configuration information 161 will be described later with reference to FIG.
  • the server load information 162 stores information indicating the load on each server 100. Details of the server load information 162 will be described later with reference to FIG.
  • the log information 163 stores various logs in the server 100. Details of the log information 163 will be described later with reference to FIG.
  • the algorithm switching history 164 stores information related to the history of distributed algorithms that have been switched in the past. Details of the algorithm switching history 164 will be described later with reference to FIG.
  • the algorithm switching condition information 165 stores information related to conditions for determining whether to switch the distributed algorithm. Details of the algorithm switching condition information 165 will be described later with reference to FIG.
  • the movement history 166 stores a movement history of data between the servers 100. Details of the movement history 166 will be described later with reference to FIG.
  • the client device 200 includes a processor 210, a main storage device 220, and an auxiliary storage device 230, and transmits various processing requests to the server 100.
  • the client device 200 includes a network interface for connecting to the network 300.
  • the processor 210 executes a program stored in the main storage device 220.
  • the functions of the client device 200 can be realized by the processor 210 executing the program.
  • the processing is described with the program as the subject, it indicates that the program is being executed by the processor 210.
  • the main storage device 220 stores a program executed by the processor 210 and information necessary for executing the program.
  • the main storage device 220 may be a memory, for example.
  • the main storage device 220 of this embodiment stores a program for realizing the access request unit 241, the access result receiving unit 242, and the configuration information management unit 243. Further, configuration information 251 is stored as necessary information on the main storage device 220.
  • the auxiliary storage device 230 stores various information.
  • the auxiliary storage device 130 may be an HDD or an SSD.
  • the access request unit 241 transmits an access request to the server 100.
  • the access request is for requesting execution of data read processing and data write processing. Note that the writing process includes data writing and data overwriting.
  • the access result receiving unit 242 receives the processing result for the access request transmitted from the server 100.
  • the configuration information management unit 243 manages configuration information 251 for managing the data storage destination.
  • the configuration information 251 stores information indicating a data storage destination.
  • the computer system may include a management computer having a load information management unit 147 and an algorithm management unit 148 separately from the server 100. As a result, the configuration of the server 100 can be reduced.
  • FIG. 3 is an explanatory diagram showing a format of data stored in the data store 150 according to the first embodiment of this invention.
  • the data store 150 stores data management information 1500.
  • the data management information 1500 includes a plurality of data in which a key and a value are paired.
  • data in which a key and a value are paired is also referred to as key-value type data.
  • the data management information 1500 includes a key 1501 and a value 1502.
  • the key 1501 stores an identifier (key) for identifying data.
  • Value 1502 stores actual data (value).
  • the user who operates the client device 200 can specify the key 1501 and save the data in the KVS, and can also specify the key 1501 and acquire desired data from the KVS.
  • Each server 100 manages key-value type data for each predetermined key 1501 range (management range 400). That is, key-value type data is distributed and arranged in each server 100 for each management range 400.
  • the server 100 executes processing as a master server for data in the designated management range 400. As a result, a large amount of data can be processed in parallel and at high speed.
  • FIG. 4 is an explanatory diagram illustrating an example of the configuration information 161 according to the first embodiment of this invention.
  • the configuration information 161 stores information regarding the management range 400 of each server 100. Specifically, the configuration information 161 includes a server ID 1611 and a management range 1612.
  • the server ID 1611 stores an identifier for uniquely identifying the server 100.
  • the server ID 1611 stores an identifier, an IP address, a MAC address, and the like of the server 100.
  • the management range 1612 stores a value range indicating the management range 400.
  • the management range 1612 stores the management range value of the master data of each server 100.
  • a hash value is stored as the value of the management range 400.
  • FIG. 5 is an explanatory diagram illustrating an example of the server load information 162 according to the first embodiment of this invention.
  • the server load information 162 stores information indicating the load on each server 100. Specifically, the server load information 162 includes a server ID 1621 and load information 1622.
  • the server ID 1621 stores an identifier for uniquely identifying the server 100.
  • the server ID 1621 is the same as the server ID 1611.
  • the load information 1622 stores information related to the load of the server 100.
  • the load information 1622 of this embodiment includes a throughput 1625 and a memory usage 1626.
  • the load information 1622 may store other load information such as a processor operation rate, a free capacity of the data store 150, and a network bandwidth usage rate.
  • the throughput 1625 stores a throughput value representing the number of requests per unit time.
  • the memory usage 1626 stores a memory usage rate.
  • FIG. 6 is an explanatory diagram illustrating an example of the log information 163 according to the first embodiment of this invention.
  • the log information 163 stores various logs of the server 100.
  • the log information 163 includes an access log 1631 and a memory usage log 1632.
  • the access log 1631 stores a log related to access from the client device 200 and the other server 100.
  • the memory usage log 1632 stores a log related to the memory usage included in the server 100.
  • the log information 163 may store other logs such as response time, cache hit rate, usage frequency, data reference count, and data update count.
  • FIG. 7 is an explanatory diagram illustrating an example of the algorithm switching history 164 according to the first embodiment of this invention.
  • the algorithm switching history 164 stores the history of distributed algorithms that have been switched so far. Specifically, the algorithm switching history 164 includes a switching history 1641 and a switching cause 1642.
  • the switching history 1641 stores information related to the distributed algorithm for determining the management range 400 of each server 100.
  • the switching history 1641 stores a distributed algorithm identifier, a hash function, and the like.
  • the switching cause 1642 stores the reason why the distributed algorithm is switched.
  • FIG. 8 is an explanatory diagram illustrating an example of the algorithm switching condition information 165 according to the first embodiment of this invention.
  • the algorithm switching condition information 165 stores determination criteria for switching the distributed algorithm. Specifically, the algorithm switching condition information 165 includes a distributed algorithm 1651, load information 1652, and a threshold value 1653.
  • the distributed algorithm 1651 stores information related to the distributed algorithm for determining the management range 400 of each server 100.
  • the load information 1652 stores load information serving as a switching reference.
  • the load information 1652 stores items corresponding to the load information 702.
  • the threshold value 1653 stores a threshold value for the load information stored in the load information 1622.
  • distributed algorithm 1 is used when the server 100 is not loaded, and indicates that the distributed algorithm is switched when the load is reduced.
  • distributed algorithm 2 is a distributed algorithm that is switched based on the access log 1631 of the server 100, and indicates that a throughput value is used as the threshold value 1653.
  • distributed algorithm 3 is a distributed algorithm that is switched based on the memory usage log 1632 of the server 100, and indicates that the memory usage rate is used as the threshold value 1653.
  • the algorithm switching condition information 165 includes a distributed algorithm that is determined based on load information 1652 such as a throughput log, a response log, a cache hit rate log, a data reference count log, a data update count log, and a usage frequency log for each client. May be stored.
  • FIG. 9 is an explanatory diagram illustrating an example of the movement history 166 according to the first embodiment of this invention.
  • the movement history 166 stores the movement history of the data between the servers 100. Specifically, the movement history 166 includes a Key 1661, a movement history 1662, a time stamp 1663, and a switching cause 1664.
  • Key 1661 stores an identifier (key) for identifying data.
  • the movement history 1662 stores identification information of the server 100 to which the data corresponding to the Key 1661 has moved.
  • the time stamp 1663 stores the time at which data moved between the servers 100.
  • the time stamp 1663 stores one time stamp each time data moves between the servers 100.
  • the switching cause 1664 stores the cause of switching the distributed algorithm.
  • the switching cause 1664 stores one switching cause each time data moves between the servers 100.
  • FIG. 10 is a flowchart illustrating an outline of processing executed by the server 100 according to the first embodiment of the present invention.
  • the server 100 that supervises the processing is referred to as a central server 100.
  • the central server 100 may be set in advance, or may be set manually by a KVS administrator, or the server 100 that first receives an access request or the like may be set as the central server 100. Further, the central server 100 can be changed for each different process. Note that the processing executed by the central server 100 is processing that can be executed by any server 100.
  • the central server 100 executes a load monitoring process in each server 100 (step S100). Specifically, the central server 100 acquires load information from each server 100 regularly or irregularly and updates the server load information 162.
  • the central server 100 refers to the server load information 162 and the algorithm switching condition information 165, and executes a distributed algorithm switching process (step S102).
  • the central server 100 may periodically execute the process illustrated in FIG. 10 or may execute the process according to a request from the client device 200. Further, when the load of the central server 100 that is monitoring the load is high, the central server 100 may refer to the server load information 162 and control the server 100 with a low load to change to the central server 100. . In this case, the central server 100 after the change executes the switching process.
  • FIG. 11 is a flowchart for explaining the details of the distributed algorithm switching processing executed by the server 100 according to the first embodiment of the present invention.
  • the distributed algorithm switching process is executed by the algorithm management unit 148 of the central server 100.
  • the algorithm management unit 148 refers to the server load information 162 and the algorithm switching condition information 165 to determine whether or not switching of the distributed algorithm is necessary (step S200). That is, it is determined whether or not the load on the specific server 100 is increasing or decreasing. Specifically, the algorithm management unit 148 compares the value in the load information 1622 with the corresponding load information threshold value 1653 to determine whether or not the switching condition is satisfied.
  • the throughput 1625 of the server 1 is “92”, and the corresponding load information threshold 1653 is “80”. It is determined that the algorithm needs to be switched.
  • switching to a distributed algorithm corresponding to a higher switching condition may be performed, or a priority order may be set in advance in the switching condition, and the distributed algorithm may be switched based on the priority order. Also good.
  • the algorithm management unit 148 switches to a distributed algorithm that matches the corresponding switching condition (step S202). Specifically, the distribution algorithm is changed to a distribution algorithm 1651 that matches the corresponding switching condition.
  • the algorithm management unit 148 instructs to update the configuration information 161 (step S204). Specifically, the algorithm management unit 148 instructs the configuration information management unit 146 to update the configuration information 161. The configuration information management unit 146 that has received the instruction updates the configuration information 161 based on the switched distributed algorithm.
  • the algorithm management unit 148 transmits a switching notification for notifying that the distributed algorithm has been switched to each server 100, and ends the processing (step S206).
  • the switching notification includes switched distribution algorithm information and updated configuration information 161.
  • FIG. 12 is a flowchart for explaining the switching acceptance process executed by the server 100 according to the first embodiment of the present invention.
  • the server 100 periodically executes the switching acceptance process described below.
  • the switching acceptance process is executed by the algorithm management unit 148 of the server 100.
  • the algorithm management unit 148 first determines whether or not the process is finished (step S300). For example, when the server 100 is stopped, it is determined that the process is finished.
  • the algorithm management unit 148 determines whether or not a switching notification has been received from the central server 100 (step S302). If it is determined that the switching notification has not been received from the central server 100, the algorithm management unit 148 returns to step S300 and continues to wait until the switching notification is received.
  • the algorithm management unit 148 switches the distributed algorithm based on the distributed algorithm information included in the switching notification (step S304), and further stores the algorithm switching history 164. Update (step S306).
  • the algorithm management unit 148 instructs to update the configuration information 161 (step S308). Specifically, the configuration information 161 included in the received switching notification is overwritten in the configuration information management unit 146 to the currently stored configuration information 161. Note that the update method is not limited to overwriting the configuration information 161, and a method of discarding the currently stored configuration information 161 and storing the configuration information 161 included in the received switching notification may be considered.
  • Step S300 the server 100 returns to Step S300 and executes the same processing (Step S300 to Step S308).
  • FIG. 13 is a flowchart illustrating an outline of processing executed when the server 100 according to the first embodiment of the present invention receives an access request.
  • step S400 When the server 100 receives an access request from the client device 200 (step S400), the server 100 executes an access process (step S402).
  • the server 100 acquires the target data of the access request, and transmits an access result including the acquired data to the client device that is the source of the access request (step S404).
  • the target data of the access request is also referred to as target data.
  • FIG. 14 is a flowchart illustrating access request issuing processing executed by the client device 200 according to the first embodiment of the present invention.
  • the access request issuance process is executed by the access request unit 241.
  • the access request unit 241 issues a data operation API (step S500).
  • Target data is determined based on the issued data manipulation API.
  • the access request unit 241 refers to the configuration information 251 and identifies the server 100 in which the target data is stored (step S502). Here, it is assumed that the configuration information 251 is updated to the latest configuration information 251 by configuration information update processing described later.
  • the server 100 that has received the access request transfers the access request to the server 100 that stores the target data.
  • the access request unit 241 transmits an access request including identification information (key) of the target data to the specified server 100, and ends the process (step S504).
  • FIG. 15 is a flowchart illustrating configuration information update processing executed by the client device 200 according to the first embodiment of the present invention.
  • the configuration information update process is executed by the configuration information management unit 243.
  • the configuration information management unit 243 according to the present embodiment periodically executes processing described below. Note that the processing may be executed when the client device 200 receives an access result including the new configuration information 161 from the server 100 to which the access request is transmitted.
  • the configuration information management unit 243 first determines whether or not the process is finished (step S600). For example, when the client device 200 is stopped, it is determined that the process is finished.
  • the configuration information management unit 243 determines whether or not new configuration information 161 has been received from the server 100 (step S602).
  • the configuration information management unit 243 returns to step S600 and continues to wait until the new configuration information 161 is received.
  • the configuration information management unit 243 updates the configuration information 251 by overwriting the new configuration information 161 on the currently stored configuration information 251 (step S604). . Thereafter, the configuration information management unit 243 returns to Step S600 and executes the same processing.
  • FIG. 16 is a flowchart illustrating an access process executed by the server 100 according to the first embodiment of this invention.
  • the access process is executed by the data management unit 141.
  • the data management unit 141 first determines whether or not the process is finished (step S700). For example, when the server 100 is stopped, it is determined that the process is finished.
  • the data management unit 141 determines whether an access request has been received (step S702).
  • the access request is transmitted from the client device 200 or another server 100.
  • the data management unit 141 If it is determined that the access request has not been received, the data management unit 141 returns to step S700 and continues to wait until the access request is received.
  • the data management unit 141 identifies the storage destination of the target data (step S704). Specifically, the data management unit 141 refers to the configuration information 161 to determine which server 100 the management range 400 includes the target data. In the first embodiment, the determination is made by paying attention only to the management range 400 described in the master of the management range 1612. That is, the master server 100 of the target data is specified.
  • the data management unit 141 determines whether the storage destination of the target data is the other server 100 based on the determination result described above (step S706).
  • the server A when the server A receives an access request for data having a hash value “350”, the storage destination of the data is the server C, and therefore the storage destination of the target data is the other server 100. It is determined that there is.
  • the data management unit 141 executes the data rearrangement processing. 145 is instructed (step S708).
  • the data rearrangement process will be described later with reference to FIG.
  • the data management unit 141 acquires the target data, and instructs the access result transmission unit 144 to transmit the access result including the acquired target data (step S710). Upon receiving the instruction, the access result transmission unit 144 transmits the access result to the client device 200 that is the transmission source of the access request. Thereafter, the data management unit 141 returns to step S700 and executes the same processing.
  • Step S706 when it is determined that the storage destination of the target data is the other server 100, the data management unit 141 transfers the access request to the other server 100 that stores the target data (Step S720).
  • the other server 100 that has received the access request executes the process shown in FIG. Thereafter, the data management unit 141 returns to step S700 and executes the same processing.
  • FIG. 17 is a flowchart for explaining data relocation processing executed by the server 100 according to the first embodiment of the present invention.
  • the data rearrangement processing unit 145 determines whether the target data is stored in the data store 150 (step S800).
  • the data rearrangement processing unit 145 terminates the process because it is not necessary to rearrange the target data in the data store 150.
  • the data relocation processing unit 145 refers to the algorithm switching history 164 and specifies the storage destination of the target data (step S802). Specifically, the following processing is executed.
  • the data rearrangement processing unit 145 refers to the algorithm switching history 164 and identifies the distributed algorithm immediately before the currently used distributed algorithm.
  • the data rearrangement processing unit 145 calculates the management range 400 of each server 100 from the previous distributed algorithm, and identifies the server 100 that managed the target data.
  • the data rearrangement processing unit 145 inquires the target server 100 about the target data. As a result of the inquiry, when the identified server 100 does not store the target data, the data rearrangement processing unit 145 performs the same process using the previous distributed algorithm. The above is the process of step S802.
  • the data rearrangement processing unit 145 acquires target data from the identified server 100 (step S804).
  • a method of copying target data stored in the specified server 100 a method of moving target data stored in the specified server 100, or the like can be considered.
  • the data copy indicates that the copy data of the target data stored in the other server 100 is stored in the local server 100.
  • the movement of data indicates that the target data is stored in the own server 100 and the target data is deleted from the other servers 100.
  • the data rearrangement processing unit 145 executes the update process of the movement history 166 and ends the process (step S806). Details of the update processing of the movement history 166 will be described later with reference to FIG.
  • the rearrangement process is executed only for the data accessed from the client device 200. Accordingly, it is possible to avoid unnecessary data relocation processing from being executed, and to suppress an increase in the load on the server 100.
  • FIG. 18 is a flowchart for explaining the update processing of the movement history 166 executed by the server 100 according to the first embodiment of the present invention.
  • the data rearrangement processing unit 145 acquires the identification information (key) of the target data and determines whether or not there is an entry for the target data in the movement history 166 (step S900).
  • the identification information of the target data can be acquired from the access request.
  • step S904 If it is determined that the entry of the target data exists in the movement history 166, the process proceeds to step S904.
  • the data rearrangement processing unit 145 If it is determined that the entry of the target data does not exist in the movement history 166, the data rearrangement processing unit 145 generates an entry in the movement history 166 (step S902). At this time, the data rearrangement processing unit 145 stores the identifier (key) of the target data in the Key 1661 of the generated entry.
  • the data rearrangement processing unit 145 acquires the identifier of the server 100 specified in step S802, further acquires the identifier of the own server 100, and stores it in the movement history 1662 (step S904). Information is stored so that the order of movement between the servers 100 can be understood. In the example shown in FIG. 9, the identifiers of the servers 100 are stored in the order of movement.
  • the data rearrangement processing unit 145 acquires the time when the data is moved and stores it in the time stamp 1663 (step S906). As the time when the data is moved, the time when the data rearrangement processing unit 145 acquires the data in step S804 can be considered.
  • the data rearrangement processing unit 145 identifies the cause of switching the distributed algorithm with reference to the switching cause 1642 of the algorithm switching history 164, updates the switching cause 1664, and ends the processing (step S908).
  • FIG. 19A and FIG. 19B are explanatory diagrams showing the flow of processing in the first embodiment of the present invention.
  • step S200 when the number of accesses to the server 100A increases, it is determined that the distributed algorithm needs to be switched.
  • the distribution algorithm 1 can be switched to the distribution algorithm 2.
  • the management range 400A, the management range 400B, and the management range 400D are changed by switching the distribution algorithm. That is, the management range 400A is changed to “1” to “80”, the management range 400B is changed to “91” to “200”, and the management range 400D is changed to “71” to “90” and “301” to “400”.
  • the data 500A is data having a hash value “75”, and the data 500B is data having a hash value “93”.
  • the client device 200 transmits an access request to the server 100D that manages the data 500A (step S504).
  • the server 100D determines that the storage destination of the data 500A is its own server, and executes data relocation processing (steps S706 and S708). That is, the server 100D acquires the data 500A from the server 100A, and stores the data 500A in the data store 150 (step S804).
  • the data 500B is not relocated to the server 100B because there is no access request from the client device 200. Accordingly, unnecessary communication between the servers 100 can be suppressed by changing the arrangement of only necessary data. Therefore, the load on the entire system can be reduced.
  • the management range 400 is changed by switching the distributed algorithm, the number of accesses to the server 100A is reduced, and the load on the server 100A can be reduced. Therefore, the load on the entire system can be reduced.
  • the server 100 can generate information for confirming the data movement state as shown in FIG. 20 in response to a request from the client device 200.
  • FIG. 20 is an explanatory diagram showing a display example of the data movement history in the first embodiment of the present invention.
  • the data movement history display screen 1000 includes a movement history display area 1010 and a data designation area 1020.
  • the movement history display area 1010 information related to the data movement history is displayed.
  • the example illustrated in FIG. 20 includes a key 1011, a movement history 1012, a time stamp 1013, and a switching cause 1014.
  • the key 1011, the movement history 1012, the time stamp 1013, and the switching cause 1014 are the same as the key 1661, the movement history 1662, the time stamp 1663, and the switching cause 1664, respectively.
  • the information displayed in the movement history display area 1010 is not limited to that shown in FIG.
  • the data designation area 1020 is an area for inputting information for designating data desired by the administrator who operates the client device 200. In the example shown in FIG. 20, a predetermined key range is input. In the data designation area 1020, individual keys may be input, or information other than the keys, such as a time stamp and a server identifier, may be input.
  • the following processing can be considered as the display processing of the display screen 1000.
  • the client device 200 operates the data designation area 2020 and transmits a display request for the display screen 2000.
  • the display request includes arbitrary information such as key information, a time stamp, and a server identifier.
  • the server 100 that has received the display request generates display information and transmits the display information to the client device 200.
  • a display information generation method a method in which the server 100 generates display information for displaying information desired by the client device 200 with reference to the movement history 166 can be considered.
  • the necessary movement history 166 can be acquired by inquiring each server 100.
  • the client apparatus 200 When the client apparatus 200 receives the display information, the client apparatus 200 displays information related to the movement history in the movement history display area 1010.
  • the load on each server 100 can be reduced by switching the distributed algorithm.
  • the original distributed algorithm can be restored, and a temporary load change can be flexibly dealt with.
  • data rearrangement accompanying switching of distributed algorithms can be limited to necessary data, unnecessary communication between servers 100 can be suppressed.
  • FIG. 21 is a block diagram showing a configuration of a computer system according to the second embodiment of the present invention.
  • the second embodiment is different from the first embodiment in that the client device 200 does not include the configuration information management unit 243 and the configuration information 251.
  • access request issuance processing is different from that in the first embodiment. Specifically, since the client device 200 does not include the configuration information 251, the process of step S502 is omitted. In this case, the client device 200 transmits an access request to one of the servers 100 connected to the network 300. The server 100 that has received the access request executes the processing shown in FIGS. 13 and 16 and transmits the access result.
  • the third embodiment is different in that the server 100 holds slave data of other servers 100. Therefore, the contents of the configuration information 161 are different in the third embodiment. In the third embodiment, access processing and relocation processing are different. Hereinafter, the third embodiment will be described focusing on differences from the first embodiment.
  • FIG. 22 is an explanatory diagram showing an example of the configuration information 161 in the third embodiment of the present invention.
  • the information stored in the management range 1612 is different from the configuration information 161 in the third embodiment.
  • the management range 1612 includes master 1615, slave 1 (1616), and slave 2 (1617) as new management items.
  • the master 1615 stores the value of the management range 400 of the master data managed as the master server 100.
  • the slave 1 (1616) and the slave 2 (1617) store values in the management range 400 of slave data held as the slave server 100.
  • a hash value is stored as the value of the management range 400.
  • Slave 1 (1616) indicates a slave server 100 higher than slave 2 (1617). For example, when a failure occurs in the master server 100 whose server ID 1611 is “server 2”, among the slave servers 100 whose server ID 1611 is “server 1” and “server 4”, the server ID 1611 is “server 1”. A certain slave server 100 takes over as the master server 100.
  • the slave data is stored in the two slave servers 100, but the present invention is not limited to this. In other words, the slave data may be stored in one or three or more slave servers 100.
  • the switching process, the access process, and the rearrangement process are different. Hereinafter, each processing will be described.
  • the update contents of the configuration information 161 in step S204 are different.
  • step S204 the management range 400 of the master data and the management range 400 of the slave data are changed by switching the distributed algorithm.
  • the management range 400 can be changed by appropriately changing the distributed algorithm.
  • the data itself stored in the data store 150 is not changed. This is because the attribute information indicating whether the data is master data or slave data is not given to the data.
  • FIG. 23 is a flowchart for describing access processing executed by the server 100 according to the third embodiment of the present invention.
  • the access process is executed by the data management unit 141.
  • step S700 and step S702 are the same as those in the first embodiment, description thereof is omitted.
  • step S710 and step S720 are the same as those in the first embodiment, the description thereof is omitted.
  • the data management unit 141 identifies the storage location of the master data corresponding to the target data (step S1000). Specifically, the data management unit 141 refers to the master 1615 of the configuration information 161 and determines which master server 100 the management range 400 includes the target data. That is, the master server 100 of the target data is specified.
  • the data management unit 141 determines whether the storage destination of the master data corresponding to the target data is the other server 100 based on the determination result described above (step S1002).
  • the storage destination of the master data corresponding to the data is the server C, and thus the master corresponding to the target data. It is determined that the data storage destination is the other server 100.
  • the data management unit 141 When it is determined that the master data storage location corresponding to the target data is not the other server 100, that is, the master data storage location corresponding to the target data is the local server 100, the data management unit 141 re-sends the data.
  • the data rearrangement processing unit 145 is instructed to execute the arrangement process (step S1004). The data rearrangement process will be described later with reference to FIG.
  • FIG. 24 is a flowchart for explaining data rearrangement processing executed by the server 100 according to the third embodiment of the present invention.
  • the data relocation processing unit 145 determines whether the target data is stored in the data store 150 (step S1100).
  • the third embodiment is different from the first embodiment in that it is determined whether or not target data is stored with reference to master data and slave data stored in the data store 150.
  • the server 100 manages target data that was slave data before switching of the distributed algorithm as master data.
  • FIG. 25 is an explanatory diagram illustrating a modification of the data rearrangement process executed by the server 100 according to the third embodiment of the present invention.
  • the data rearrangement process shown in FIG. 25 is executed after an access request is accepted or after the distributed algorithm is switched.
  • the data rearrangement processing unit 145 refers to the configuration information 161 and identifies the current management range 400 of each server 100 (step 1200).
  • the data rearrangement processing unit 145 refers to the algorithm switching history 164 and identifies the management range 400 of each server 100 before switching the distributed algorithm (step S1202).
  • the management range 400 before the distribution algorithm is switched is also referred to as a past management range 400.
  • the data rearrangement processing unit 145 compares the current management range 400 with the past management range 400 and determines whether or not there is a difference in the management range 400 (step 1204).
  • the difference in the management range 400 will be described by taking the first management range from “1” to “100” as an example.
  • the server 100B manages the first management range as the master server 100 and the server 100C and the server 100D manage as the slave server 100 it is determined that a difference occurs in the management range 400. This is because the server 100D does not hold the data in the first management range before the distributed algorithm is switched, and therefore needs to be acquired from another server 100.
  • the server 100B and the server 100C hold the slave data in the management range 400A, and even if the distributed algorithm is switched, the necessary data is held, so there is no need to obtain it from other servers 100.
  • the server 100B manages data in the first management range as master data.
  • the server 100C manages data in the first management range as slave data.
  • the management range 400 is fixed for simplicity, but the same determination method can be applied even when the management range 400 is different before and after the switching of the distributed algorithm.
  • the data rearrangement processing unit 145 ends the process.
  • the data rearrangement processing unit 145 acquires data so as to eliminate the difference (step S1206), and ends the process.
  • the data relocation processing unit 145 acquires the master data from the other server 100, and when there is no slave data, executes the replication process or the like, Obtain from the server.
  • the distribution algorithm switching method is different from that in the first embodiment.
  • the third embodiment will be described focusing on differences from the first embodiment.
  • FIG. 26 is a block diagram showing a configuration of a computer system according to the fourth embodiment of the present invention.
  • the algorithm switching condition information 170 of the server 100 is different in content from the algorithm switching history 164.
  • switching candidate information 180 is newly included. Since other configurations are the same as those of the first embodiment, description thereof is omitted.
  • FIG. 27 is an explanatory diagram showing an example of the algorithm switching condition information 170 in the fourth embodiment of the present invention.
  • Algorithm switching condition information 170 includes load information 1701 and threshold value 1702.
  • the load information 1701 and the threshold value 1702 are the same as the load information 1652 and the threshold value 1653.
  • the fourth embodiment is different from the first embodiment in that the switching condition and the distributed algorithm are not associated with each other.
  • FIG. 28 is an explanatory diagram showing an example of the switching candidate information 180 in the fourth embodiment of the present invention.
  • the switch candidate information 180 stores switchable distributed algorithm information. Specifically, an ID 1801 and a distribution algorithm 1802 are included.
  • the ID 1801 stores an identifier for identifying the distributed algorithm.
  • the distribution algorithm 1802 stores information regarding the distribution algorithm.
  • the distribution function 1802 stores a hash function, a key range, and the like.
  • FIG. 29 is a flowchart for explaining the details of the distributed algorithm switching processing in the fourth embodiment of the present invention.
  • step S200 determines whether or not switching of the distributed algorithm is necessary.
  • the algorithm management unit 148 determines whether or not the load increase of the server 100 is a cause of switching (step S1300).
  • step S200 processing is executed based on the algorithm switching condition information 170.
  • the algorithm management unit 148 refers to the server load information 162, identifies the server 100 with a low load, and proceeds to step S1304 (step S1302). For example, when the increase in the number of accesses to the server 100 is the cause of switching, the algorithm management unit 148 refers to the server load information 162 and identifies the server 100 with the smallest number of accesses. Note that the specified server 100 does not have to be one, and may be a plurality.
  • the algorithm management unit 148 selects a distributed algorithm with reference to the switching candidate information 180, and switches the selected distributed algorithm (step S1304).
  • the method for selecting the distributed algorithm differs depending on the cause of switching. Hereinafter, a selection method for each switching cause will be described.
  • the algorithm management unit 148 refers to the switching candidate information 180 and selects a distributed algorithm that equalizes the load of each server 100. For example, a method of calculating the management range 400 when the distributed algorithm is switched is conceivable. As another method, the algorithm management unit 148 may identify the distributed algorithm before the load on the server 100 increases with reference to the algorithm switching history 164.
  • the algorithm management unit 148 refers to the switching candidate information 180 and assigns the data in the management range 400 of the server 100 with an increased load to the server 100 with a lower load. Identify a distributed algorithm for For example, a method of calculating the management range 400 when the distributed algorithm is switched is conceivable. The algorithm management unit 148 selects a distributed algorithm whose load is leveled most among the specified distributed algorithms.
  • step S204 and step S206 Since the processing in step S204 and step S206 is the same as that in the first embodiment, description thereof is omitted.
  • the load on a specific server 100 increases, the load on each server 100 can be reduced by switching the distributed algorithm.
  • data rearrangement accompanying switching of distributed algorithms can be limited to necessary data, unnecessary communication between servers 100 can be suppressed. Therefore, the processing cost can be suppressed and the dynamic distributed algorithm can be switched.
  • the various software exemplified in the present embodiment can be stored in various recording media such as electromagnetic, electronic, and optical, and can be downloaded to a computer through a communication network such as the Internet.

Abstract

 システムの負荷に応じて、動的にデータの配置方法を変更してシステムの性能を保証する計算機システムを実現する。 ネットワークを介して複数の計算機が接続され、各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、各計算機には、データを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、計算機システムは、各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、負荷情報に基づいて分散アルゴリズムを切り替えるアルゴリズム管理部と、切り替えられた分散アルゴリズムに基づいて各計算機に格納されるデータを再配置する再配置処理部と、を有する。

Description

計算機システム、データ管理方法及びプログラム
 本発明は、複数の計算機から構成される分散データベースに関する。特に、データの分散配置処理に関する。
 近年、Webを用いたアプリケーションを実行する計算システムにおいてデータ量が爆発的に増大しており、複数の計算機にデータを分散させることによって、データへのアクセス性能を向上させるシステムが様々知られている。例えば、RDBMS(Relational DataBase Management System)では、データを所定の範囲毎に分割し、分割されたデータを複数の計算機に配置することによって、システム全体のアクセス性能を向上させる方法が知られている。
 また、キャッシュサーバ等に用いられるシステムとして、データの識別子であるキーと、データ値(バリュー)とから構成されるキャッシュデータを所定の分散方法にしたがって、複数の計算機システムに配置するKVS(Key Value Store)等のNoSQL(Not only SQL)データベースが知られている。
 KVSでは、データに高速にアクセス可能な揮発性の記憶媒体、例えばメモリに、データを格納する構成、データ格納の永続性に優れる不揮発性の記録媒体、例えばSSD(Sorid State Disk)やHDD等に、データを格納する構成、又は、前述したものを併用する構成等の種々の構成がとられている。
 併用する構成では、高速アクセス性重視や格納性重視等の種々の運用方針によって、複数台の計算機のメモリを統合して構成されるメモリストア及び1台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。
 メモリストア及びディスクストアには、データ(バリュー)と、データの識別子(キー)とをペアとしたデータが格納される。
 また、KVSでは、複数のサーバからクラスタを構成して、そのクラスタに含まれるサーバにデータを分散して配置することによって並列処理を実現している。具体的には、サーバが管理するデータの範囲である管理範囲(例えば、キーレンジ)毎に、各サーバにデータが格納される。各サーバは、担当する管理範囲に含まれるデータのマスタとして処理を実行する。すなわち、所定のキーを含む読み出し要求に対して、そのキーが含まれる管理範囲のデータを担当するサーバが、キーに対応するデータを読み出すこととなる。
 したがって、KVSでは、スケールアウトによって並列処理の性能を向上させることができる。
 KVSでは、データの信頼性を確保するために、クラスタを構成するサーバが他のサーバが管理するデータの複製データを格納する構成を採るものが知られている。すなわち、各サーバは、所定の管理範囲に含まれるデータを管理するマスタであると同時に、他のサーバが管理するデータの複製データを保持するスレーブでもある。これによって、サーバに障害が発生した場合であっても、その障害サーバがマスタとして管理するデータを、スレーブである他のサーバが、自己が保持する複製データをマスタデータとすることによって処理を継続することができる。
 なお、以下、マスタであるサーバをマスタサーバと記載し、スレーブであるサーバをスレーブサーバとも記載する。
 前述したようにKVSを構成するサーバには、管理サーバのような特別なサーバが存在しないため単一点障害が存在しない。すなわち、任意のサーバに障害が発生した場合であっても他のサーバが処理を継続できるため、計算機システムが停止することがない。したがって、KVSは耐障害性も確保される。
 なお、スレーブサーバの台数、すなわち、複製データの格納先となるサーバの台数は、計算機システムによって任意に設定することができる。
 KVSなどで用いられるデータを配置方法としては、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。代表してConsistent Hashing法について説明する。Consistent Hashing法は、まず、キーに対するハッシュ値を算出し、算出したハッシュ値をサーバの台数で除算した余りを算出する。その余りがサーバの識別番号に一致するサーバにデータが配置されるようになっている。
 前述したシステムは、アクセス性能の向上を図るためのシステムである。しかし、特定のデータに対するアクセスが集中すると、特定のデータを管理する計算機に負荷が生じ、システム全体としてアクセス性能が低下するという問題がある。そのため、計算機の追加、システムのスケールイン又はスケールアウト等によって、前述したようなアクセス性能の低下を解決する方法が知られている(例えば、特許文献1参照)。
 特許文献1には、計算機リソースの使用状況やアクセス分布などにしたがってデータベースの分割条件を設定しておき、分割条件にしたがってデータの再配置を行うことが記載されている。
 また、クラスタに新たなサーバを追加することによって、負荷が集中している管理範囲を分割することによって、アクセス性能の低下を抑制する技術も知られている(例えば、特許文献2参照)。
特開平6-259478号公報 特開2011-118525号公報
 しかし、特許文献1及び特許文献2に記載の技術では、一時的にシステムを停止させた後に、分割条件にしたがって再配置させる必要がある。また、特許文献2に記載の方法では、一時的な負荷の変化に柔軟に対応できない。なぜなら、クラスタにサーバを追加するための処理と、当該追加処理の後に管理範囲に含まれるデータの再配置とを行う必要があり、処理コストが高くなることからシステム全体としての性能が低下するためである。また、負荷の減少に伴って、クラスタからサーバを削除する場合も同様に処理コストが高くシステム全体として性能が低下する。
 本発明は、前述した課題に鑑みてなされた発明である。すなわち、計算機システムの負荷に柔軟に対応し、アクセス性能を低下させることなくデータを管理することを目的の一つとする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、前記計算機システムは、前記データベースを構成する各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、前記負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替えるアルゴリズム管理部と、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する再配置処理部と、を有することを特徴とする。
 本発明によれば、データベースを構成するサーバの負荷に応じて、データの分散配置方法を切り替えることができるため、サーバへの負荷を分散することができる。したがって、システム全体の性能を保つことができる。
本発明の概要を示す説明図である。 本発明の第1の実施形態における計算機システムの構成を示すブロック図である。 本発明の第1の実施形態におけるデータストアに格納されるデータの形式を示す説明図である。 本発明の第1の実施形態における構成情報の一例を示す説明図である。 本発明の第1の実施形態におけるサーバ負荷情報の一例を示す説明図である。 本発明の第1の実施形態におけるログ情報の一例を示す説明図である。 本発明の第1の実施形態におけるアルゴリズム切替履歴の一例を示す説明図である。 本発明の第1の実施形態におけるアルゴリズム切替条件情報の一例を示す説明図である。 本発明の第1の実施形態における移動履歴の一例を示す説明図である。 本発明の第1の実施形態におけるサーバが実行する処理の概要を説明するフローチャートである。 本発明の第1の実施形態における分散アルゴリズムの切替処理の詳細を説明するフローチャートである。 本発明の第1の実施形態におけるサーバが実行する切替受付処理を説明するフローチャートである。 本発明の第1の実施形態におけるサーバがアクセス要求を受信した場合に実行する処理の概要を説明するフローチャートである。 本発明の第1の実施形態におけるクライアント装置が実行するアクセス要求の発行処理を説明するフローチャートである。 本発明の第1の実施形態におけるクライアント装置が実行する構成情報の更新処理を説明するフローチャートである。 本発明の第1の実施形態におけるサーバが実行するアクセス処理を説明するフローチャートである。 本発明の第1の実施形態におけるサーバが実行するデータの再配置処理を説明するフローチャートである。 本発明の第1の実施形態におけるサーバが実行する移動履歴の更新処理を説明するフローチャートである。 本発明の第1の実施形態における処理の流れを示す説明図である。 本発明の第1の実施形態における処理の流れを示す説明図である。 本発明の第1の実施形態におけるデータ移動履歴の表示例を示す説明図である。 本発明の第2の実施形態における計算機システムの構成を示すブロック図である。 本発明の第3の実施形態における構成情報の一例を示す説明図である。 本発明の第3の実施形態におけるサーバが実行するアクセス処理を説明するフローチャートである。 本発明の第3の実施形態におけるサーバが実行するデータの再配置処理を説明するフローチャートである。 本発明の第3の実施形態におけるサーバが実行するデータの再配置処理の変形例を説明する説明図である。 本発明の第4の実施形態における計算機システムの構成を示すブロック図である。 本発明の第4の実施形態におけるアルゴリズム切替条件情報の一例を示す説明図である。 本発明の第4の実施形態における切替候補情報の一例を示す説明図である。 本発明の第4の実施形態における分散アルゴリズムの切替処理の詳細を説明するフローチャートである。
 まず、本発明の概要について説明する。
 図1は、本発明の概要を示す説明図である。
 KVS等のNoSQLデータベースでは、データを分散配置する方法として、Consistent Hashing法が用いられる。Consistent Hashing法では、まず、所定の関数を用いて複数のサーバ100のハッシュ値を算出し、ハッシュ値に基づいて各サーバ100を円周上に配置する。そして、各データのキーからハッシュ値を算出し、ハッシュ値に基づいてデータを円周上に配置する。このとき、各サーバ100は、円周の右側のデータを管理することとなる。
 すなわち、Consistent Hashing法では、各サーバ100が円周上に配置されるときにサーバ100の管理範囲400が決定され、管理範囲400毎にデータが分散して配置される。
 なお、データの分散配置方法は、Consistent Hashing法に限定されず、Range法及びList法等の種々の方法も用いられる。何れの方法でも、サーバ100毎に管理範囲400が設定される。
 図1に示す例では、サーバ100Aは管理範囲400Aのデータを管理し、サーバ100Bは管理範囲400Bのデータを管理し、サーバ100Cは管理範囲400Cのデータを管理し、サーバ100Dは管理範囲400Dのデータを管理する。
 ここで、管理範囲400Aはハッシュ値が「1」~「100」までの範囲であり、管理範囲400Bはハッシュ値が「101」~「200」までの範囲であり、管理範囲400Cハッシュ値が「201」~「300」までの範囲であり、管理範囲400Dはハッシュ値が「301」~「400」までの範囲である。
 サーバ100Aへのアクセスが増大した場合、サーバ100Aにおけるアクセス性能が低下し、これに伴ってシステム全体のアクセス性能が低下する。したがって、サーバ100Aへのアクセスを分散させる必要がある。そこで、本発明では、管理範囲400を決定するための分散アルゴリズムを切り替えることによって、サーバ100Aが管理する管理範囲400を変更する。ここで、分散アルゴリズムとは、管理範囲400を決定するためのアルゴリズムである。
 システムの稼働中に分散アルゴリズムを動的に変更することによって、サーバ100Aが管理していた一部のデータが他のサーバ100に配置されるため、システムを停止することなくサーバ100Aの負荷を分散できる。また、本発明では、必要なデータのみに対して再配置処理を実行することによって、システム全体の処理負荷を抑制する。
 以下の説明では、データの分散配置方法として、図1に示すようなConsistent Hashing法を用いるものとして説明する。
 [第1の実施形態]
 図2は、本発明の第1の実施形態における計算機システムの構成を示すブロック図である。
 計算機システムは、複数のサーバ100、クライアント装置200及びネットワーク300から構成される。各サーバ100間又はサーバ100とクライアント装置200との間は、ネットワーク300を介して互いに接続される。
 ネットワーク300は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本発明は、サーバ100及びクライアント装置200が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク300には、複数のネットワーク装置(図示省略)が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。
 本実施形態では、複数のサーバ100からクラスタを構成し、それらサーバ100が備える記憶領域上にNoSQLデータベースが構築される。本実施形態ではNoSQLデータベースとして、KVSを用いるものとする。
 サーバ100は、プロセッサ110、主記憶装置120及び補助記憶装置130を備え、KVSを構成する計算機である。また、図示しないが、サーバ100は、ネットワーク300と接続するためのネットワークインタフェースを備える。サーバ100は、クライアント装置200からの要求にしたがって各種処理を実行する。なお、各サーバ100の構成は同一であるものとする。
 サーバ100は、管理範囲400毎にデータが配置されており、所定の管理範囲400に含まれるデータを管理するマスタサーバとして稼動する。また、サーバ100は、他のサーバ100が管理する管理範囲400に含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。以下では、マスタサーバとして管理するデータをマスタデータと記載し、スレーブサーバとして管理するデータをスレーブデータとも記載する。
 また、本実施形態のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバが存在せず、全てのサーバ100が同等のサーバとして扱われる。これによって、1つのサーバに障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。
 ただし、第1の実施形態では、各サーバ100はスレーブデータを保持しないものとして説明する。すなわち、各サーバ100はマスタデータのみを保持するものとして説明する。
 プロセッサ110は、主記憶装置120に格納されるプログラムを実行する。プロセッサ110がプログラムを実行することによって、サーバ100が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ110によって、プログラムが実行されていることを示すものとする。
 主記憶装置120は、プロセッサ110が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置120は、例えば、メモリ等が考えられる。
 本実施形態の主記憶装置120上には、データ管理部141、アクセス要求受信部142、アクセス要求転送部143、アクセス結果送信部144、データ再配置処理部145、構成情報管理部146、負荷情報管理部147及びアルゴリズム管理部148を実現するためのプログラムが格納される。また、主記憶装置120上には、必要な情報として、構成情報161、サーバ負荷情報162、ログ情報163、アルゴリズム切替履歴164、アルゴリズム切替条件情報165及び移動履歴166が格納される。
 さらに、主記憶装置120上には、KVSを構成するデータベースであるデータストア150が格納される。データストア150には、キーと、バリューとを一組としたデータが格納される。なお、各サーバ100のデータストア150には、管理範囲400に含まれるデータが格納される。
 補助記憶装置130は、各種情報を格納する。補助記憶装置130は、例えば、HDD又はSSD等が考えられる。なお、補助記憶装置130上にKVSを構築するディスクストア(図示省略)が構築されてもよい。
 ここで、主記憶装置120に格納されるプログラム及び情報について説明する。
 データ管理部141は、サーバ100が管理するデータに対する各種処理を制御する。データ管理部141は、クライアント装置200からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。
 アクセス要求受信部142は、クライアント装置200からのアクセス要求を受信し、受信したアクセス要求をデータ管理部141に転送する。アクセス要求転送部143は、他のサーバ100へデータの問い合わせをするために、アクセス要求を他のサーバ100に転送する。アクセス結果送信部144は、受信したアクセス要求に対する処理の結果をクライアント装置200に送信する。
 データ再配置処理部145は、分散アルゴリズムが切り替えられた後に、各管理範囲400に格納されるデータの再配置処理を実行する。構成情報管理部146は、データの格納先を管理する構成情報161を管理する。
 負荷情報管理部147は、各サーバ100の負荷に関する情報を取得し、取得された情報に基づいてサーバ負荷情報162を更新する。アルゴリズム管理部148は、分散アルゴリズムを管理する。
 構成情報161は、データの格納先を示す情報を格納する。すなわち、各サーバ100の管理範囲400を示す情報が格納される。なお、構成情報161の詳細については、図4を用いて後述する。サーバ負荷情報162は、各サーバ100の負荷を示す情報を格納する。サーバ負荷情報162の詳細については、図5を用いて後述する。ログ情報163は、サーバ100における各種ログを格納する。ログ情報163の詳細については、図6を用いて後述する。
 アルゴリズム切替履歴164は、過去に切り替えられた分散アルゴリズムの履歴に関する情報を格納する。アルゴリズム切替履歴164の詳細については、図7を用いて後述する。アルゴリズム切替条件情報165は、分散アルゴリズムを切り替えるか否かを判定するための条件に関する情報を格納する。アルゴリズム切替条件情報165の詳細については、図8を用いて後述する。移動履歴166は、サーバ100間におけるデータの移動履歴を格納する。移動履歴166の詳細については、図9を用いて後述する。
 次に、クライアント装置200について説明する。クライアント装置200は、プロセッサ210、主記憶装置220及び補助記憶装置230を備え、サーバ100に対して各種処理の要求を送信する。また、図示しないが、クライアント装置200は、ネットワーク300と接続するためのネットワークインタフェースを備える。
 プロセッサ210は、主記憶装置220に格納されるプログラムを実行する。プロセッサ210がプログラムを実行することによって、クライアント装置200が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ210によって、プログラムが実行されていることを示す。
 主記憶装置220は、プロセッサ210が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置220は、例えば、メモリ等が考えられる。
 本実施形態の主記憶装置220上には、アクセス要求部241、アクセス結果受信部242及び構成情報管理部243を実現するためのプログラムが格納される。また、主記憶装置220上には、必要な情報として構成情報251が格納される。
 補助記憶装置230は、各種情報を格納する。補助記憶装置130は、例えば、HDD又はSSD等が考えられる。
 ここで、主記憶装置220に格納されるプログラム及び情報について説明する。
 アクセス要求部241は、サーバ100に対してアクセス要求を送信する。アクセス要求は、データの読み出し処理及び書き込み処理等の実行を要求するためのものである。なお、書き込み処理には、データの書き込みとデータの上書きとが含まれるものとする。
 アクセス結果受信部242は、サーバ100から送信されるアクセス要求に対する処理の結果を受信する。構成情報管理部243は、データの格納先を管理する構成情報251を管理する。
 構成情報251は、データの格納先を示す情報を格納する。
 なお、本実施形態では、サーバ100及びクライアント装置200が備える機能を、ソフトウェアを用いて実現しているが、専用のハードウェアを用いて同一の機能を実現してもよい。
 また、計算機システムは、サーバ100とは別に、負荷情報管理部147及びアルゴリズム管理部148等を有する管理計算機を備えていてもよい。これによってサーバ100の構成を削減することができる。
 図3は、本発明の第1の実施形態におけるデータストア150に格納されるデータの形式を示す説明図である。
 本実施形態では、データストア150は、データ管理情報1500を格納する。データ管理情報1500には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。
 データ管理情報1500は、Key1501及びValue1502を含む。Key1501は、データを識別するための識別子(キー)を格納する。Value1502は、実際のデータ(バリュー)を格納する。
 クライアント装置200を操作するユーザは、Key1501を指定してKVSにデータを保存し、また、Key1501を指定してKVSから所望のデータを取得することができる。
 各サーバ100は、所定のKey1501の範囲(管理範囲400)毎にキーバリュー型データを管理する。すなわち、管理範囲400毎にキーバリュー型データが各サーバ100に分散して配置される。サーバ100は、指定された管理範囲400のデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。
 図4は、本発明の第1の実施形態における構成情報161の一例を示す説明図である。
 構成情報161は、各サーバ100の管理範囲400に関する情報を格納する。具体的には、構成情報161は、サーバID1611及び管理範囲1612を含む。
 サーバID1611は、サーバ100を一意に識別するための識別子を格納する。サーバID1611には、サーバ100の識別子、IPアドレス及びMACアドレス等が格納される。
 管理範囲1612は、管理範囲400を示す値の範囲を格納する。管理範囲1612には、各サーバ100のマスタデータの管理範囲の値が格納される。なお、本実施形態では管理範囲400の値として、ハッシュ値が格納される。
 図5は、本発明の第1の実施形態におけるサーバ負荷情報162の一例を示す説明図である。
 サーバ負荷情報162は、各サーバ100における負荷を示す情報を格納する。具体的には、サーバ負荷情報162は、サーバID1621及び負荷情報1622を含む。
 サーバID1621は、サーバ100を一意に識別するための識別子を格納する。サーバID1621は、サーバID1611と同一のものである。
 負荷情報1622は、サーバ100の負荷に関する情報を格納する。本実施形態の負荷情報1622には、スループット1625及びメモリ使用量1626が含まれる。なお、負荷情報1622には、プロセッサの稼働率、データストア150の空き容量、ネットワーク帯域の使用率など、他の負荷情報が格納されてもよい。
 スループット1625は、単位時間当たりのリクエスト数を表すスループット値を格納する。メモリ使用量1626は、メモリの使用率を格納する。
 図6は、本発明の第1の実施形態におけるログ情報163の一例を示す説明図である。
 ログ情報163は、サーバ100の各種ログを格納する。図6に示す例では、ログ情報163は、アクセスログ1631及びメモリ使用量ログ1632を含む。
 アクセスログ1631は、クライアント装置200及び他のサーバ100からのアクセスに関するログを格納する。メモリ使用量ログ1632は、サーバ100が備えるメモリの使用量に関するログを格納する。
 なお、ログ情報163には、レスポンスタイム、キャッシュヒット率、利用頻度、データの参照数及びデータの更新数などその他のログが格納されてもよい。
 図7は、本発明の第1の実施形態におけるアルゴリズム切替履歴164の一例を示す説明図である。
 アルゴリズム切替履歴164は、これまでに切り替えられた分散アルゴリズムの履歴を格納する。具体的には、アルゴリズム切替履歴164は、切替履歴1641及び切替原因1642を含む。
 切替履歴1641は、各サーバ100の管理範囲400を決定するための分散アルゴリズムに関する情報を格納する。例えば、切替履歴1641には、分散アルゴリズムの識別子、ハッシュ関数などが格納される。切替原因1642は、分散アルゴリズムが切り替えられた理由を格納する。
 図8は、本発明の第1の実施形態におけるアルゴリズム切替条件情報165の一例を示す説明図である。
 アルゴリズム切替条件情報165は、分散アルゴリズムを切り替えるための判定基準を格納する。具体的には、アルゴリズム切替条件情報165は、分散アルゴリズム1651、負荷情報1652及び閾値1653を含む。
 分散アルゴリズム1651は、各サーバ100の管理範囲400を決定するための分散アルゴリズムに関する情報を格納する。負荷情報1652は、切替基準となる負荷情報が格納される。なお、負荷情報1652には、負荷情報702に対応する項目が格納される。閾値1653は、負荷情報1622に格納される負荷情報に対する閾値を格納する。
 図8に示す例では、「分散アルゴリズム1」は、サーバ100に負荷がかかっていない場合に使用され、また、負荷が低下した場合に切り替えられる分散アルゴリズムであることを示す。「分散アルゴリズム2」は、サーバ100のアクセスログ1631に基づいて切り替えられる分散アルゴリズムであり、閾値1653としてスループット値が用いられることを示す。「分散アルゴリズム3」は、サーバ100のメモリ使用量ログ1632に基づいて切り替えられる分散アルゴリズムであり、閾値1653としてメモリの使用率が用いられることを示す。
 なお、アルゴリズム切替条件情報165には、スループットログ、レスポンスログ、キャッシュヒット率ログ、データ参照数ログ、データ更新数ログ及びクライアント毎の利用頻度ログなどの負荷情報1652に基づいて判定される分散アルゴリズムが格納されてもよい。
 図9は、本発明の第1の実施形態における移動履歴166の一例を示す説明図である。
 移動履歴166は、データのサーバ100間の移動の履歴を格納する。具体的には、移動履歴166は、Key1661、移動履歴1662、タイムスタンプ1663及び切替原因1664を含む。
 Key1661は、データを識別するための識別子(キー)を格納する。移動履歴1662は、Key1661に対応するデータが移動したサーバ100の識別情報を格納する。
 タイムスタンプ1663は、サーバ100間をデータが移動した時刻を格納する。なお、タイムスタンプ1663には、データがサーバ100間を移動する度にタイムスタンプが1つ蓄積される。
 切替原因1664は、分散アルゴリズムを切り替えた原因を格納する。なお、切替原因1664には、データがサーバ100間を移動する度に切替原因が1つ蓄積される。
 次に、各種処理について説明する。まず、分散アルゴリズムが切り替えられる場合に実行される処理について説明する。
 図10は、本発明の第1の実施形態におけるサーバ100が実行する処理の概要を説明するフローチャートである。
 以下では、サーバ100のうち、処理を統括するサーバ100を統括サーバ100と記載する。統括サーバ100は予め設定してもよいし、KVSの管理者が手動で設定してもよいし、アクセス要求等を最初に受け付けたサーバ100を統括サーバ100として設定してもよい。また、異なる処理毎に統括サーバ100を変更することもできる。なお、統括サーバ100が実行する処理は、どのサーバ100でも実行可能な処理である。
 統括サーバ100は、各サーバ100における負荷の監視処理を実行する(ステップS100)。具体的には、統括サーバ100は、定期的又は不定期的に、各サーバ100から負荷情報を取得して、サーバ負荷情報162を更新する。
 次に、統括サーバ100は、サーバ負荷情報162及びアルゴリズム切替条件情報165を参照して、分散アルゴリズムの切替処理を実行する(ステップS102)。
 なお、統括サーバ100は、図10に示す処理を周期的に実行してもよいし、クライアント装置200からの要求にしたがって処理を実行してもよい。また、負荷監視していた統括サーバ100自身の負荷が高い場合、この統括サーバ100がサーバ負荷情報162を参照して、負荷が低いサーバ100を統括サーバ100に変更するように制御してもよい。この場合、変更後の統括サーバ100が切替処理を実行することとなる。
 図11は、本発明の第1の実施形態におけるサーバ100が実行する分散アルゴリズムの切替処理の詳細を説明するフローチャートである。分散アルゴリズムの切替処理は、統括サーバ100のアルゴリズム管理部148によって実行される。
 アルゴリズム管理部148は、サーバ負荷情報162及びアルゴリズム切替条件情報165を参照して分散アルゴリズムの切り替えが必要であるか否かを判定する(ステップS200)。すなわち、特定のサーバ100の負荷が増大又は減少しているか否かが判定される。具体的には、アルゴリズム管理部148は、負荷情報1622における値と、対応する負荷情報の閾値1653とを比較して、切替条件を満たすか否かを判定する。
 図5に示す例では、スループット1625について判定する場合、サーバ1のスループット1625が「92」であり、対応する負荷情報の閾値1653が「80」であるため、サーバ100への負荷の増大によって分散アルゴリズムを切り替える必要があると判定される。
 なお、複数の切替条件を満たす場合には、上位の切替条件に対応する分散アルゴリズムに切り替えてもよいし、予め切替条件に優先順位を設定しておき、当該優先順に基づいて分散アルゴリズムを切り替えてもよい。
 分散アルゴリズムの切り替えが必要であると判定された場合、アルゴリズム管理部148は、該当する切替条件に一致する分散アルゴリズムに切り替える(ステップS202)。具体的には、該当する切替条件に一致する分散アルゴリズム1651に変更される。
 アルゴリズム管理部148は、構成情報161の更新を指示する(ステップS204)。具体的には、アルゴリズム管理部148は、構成情報管理部146に構成情報161の更新を指示する。指示を受け付けた構成情報管理部146は、切り替えられた分散アルゴリズムに基づいて、構成情報161を更新する。
 これによって、各サーバ100の管理範囲400が変更されるため、サーバ100の負荷を平準化することができる。
 アルゴリズム管理部148は、分散アルゴリズムを切り替えた旨を通知するための切替通知を各サーバ100に送信し、処理を終了する(ステップS206)。なお、切替通知には、切り替えられた分散アルゴリズムの情報及び更新された構成情報161が含まれる。
 図12は、本発明の第1の実施形態におけるサーバ100が実行する切替受付処理を説明するフローチャートである。
 サーバ100は、以下で説明する切替受付処理を周期的に実行するものとする。また、切替受付処理は、サーバ100のアルゴリズム管理部148によって実行される。
 アルゴリズム管理部148は、まず、処理が終了するか否かを判定する(ステップS300)。例えば、サーバ100を停止させる場合に処理が終了すると判定される。
 次に、アルゴリズム管理部148は、統括サーバ100から切替通知を受信したか否かを判定する(ステップS302)。統括サーバ100から切替通知を受信していないと判定された場合、アルゴリズム管理部148は、ステップS300に戻り、切替通知を受信するまで待ち続ける。
 統括サーバ100から切替通知を受信したと判定された場合、アルゴリズム管理部148は、切替通知に含まれる分散アルゴリズムの情報に基づいて、分散アルゴリズムを切り替え(ステップS304)、さらに、アルゴリズム切替履歴164を更新する(ステップS306)。
 アルゴリズム管理部148は、構成情報161の更新を指示する(ステップS308)。具体的には、構成情報管理部146に、受信した切替通知に含まれる構成情報161を、現在格納される構成情報161に上書きする。なお、更新方法は、構成情報161への上書きに限定されず、現在格納される構成情報161を破棄し、受信した切替通知に含まれる構成情報161を格納する方法などが考えられる。
 その後、サーバ100は、ステップS300に戻り同様の処理を実行する(ステップS300~ステップS308)。
 次に、クライアント装置200からのアクセス要求に対する処理について説明する。
 図13は、本発明の第1の実施形態におけるサーバ100がアクセス要求を受信した場合に実行する処理の概要を説明するフローチャートである。
 サーバ100は、クライアント装置200からアクセス要求を受け付けると(ステップS400)、アクセス処理を実行する(ステップS402)。
 サーバ100は、アクセス要求の対象データを取得し、アクセス要求の送信元であるクライアント装置に、取得したデータを含むアクセス結果を送信する(ステップS404)。以下では、アクセス要求の対象データを対象データとも記載する。
 図14は、本発明の第1の実施形態におけるクライアント装置200が実行するアクセス要求の発行処理を説明するフローチャートである。アクセス要求の発行処理は、アクセス要求部241によって実行される。
 アクセス要求部241は、データ操作APIを発行する(ステップS500)。発行されたデータ操作APIに基づいて対象データが決定される。
 アクセス要求部241は、構成情報251を参照して、対象データが格納されるサーバ100を特定する(ステップS502)。ここでは、構成情報251は、後述する構成情報の更新処理によって最新の構成情報251に更新されているものとする。
 なお、構成情報251が最新のものでない場合、アクセス要求を受け付けたサーバ100が、対象データを格納するサーバ100に当該アクセス要求を転送することとなる。
 アクセス要求部241は、対象データの識別情報(キー)を含むアクセス要求を特定されたサーバ100に送信し、処理を終了する(ステップS504)。
 図15は、本発明の第1の実施形態におけるクライアント装置200が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部243によって実行される。本実施形態の構成情報管理部243は、周期的に、以下で説明する処理を実行する。なお、クライアント装置200が、アクセス要求の送信先のサーバ100から新たな構成情報161を含むアクセス結果を受信した場合に処理が実行されてもよい。
 構成情報管理部243は、まず、処理が終了するか否かを判定する(ステップS600)。例えば、クライアント装置200を停止させる場合に処理が終了すると判定される。
 次に、構成情報管理部243は、サーバ100から新しい構成情報161を受信したか否かを判定する(ステップS602)。
 新しい構成情報161を受信していないと判定された場合、構成情報管理部243は、ステップS600に戻り、新しい構成情報161を受信するまで待ち続ける。
 新しい構成情報161を受信したと判定された場合、構成情報管理部243は、現在格納される構成情報251に、新たな構成情報161を上書きすることによって、構成情報251を更新する(ステップS604)。その後、構成情報管理部243は、ステップS600に戻り、同様の処理を実行する。
 図16は、本発明の第1の実施形態におけるサーバ100が実行するアクセス処理を説明するフローチャートである。アクセス処理は、データ管理部141によって実行される。
 データ管理部141は、まず、処理が終了するか否かを判定する(ステップS700)。例えば、サーバ100を停止させる場合に処理が終了すると判定される。
 次に、データ管理部141は、アクセス要求を受信したか否かを判定する(ステップS702)。なお、アクセス要求は、クライアント装置200又は他のサーバ100から送信されたものである。
 アクセス要求を受信していないと判定された場合、データ管理部141は、ステップS700に戻り、アクセス要求を受信するまで待ち続ける。
 アクセス要求を受信したと判定された場合、データ管理部141は、対象データの格納先を特定する(ステップS704)。具体的には、データ管理部141は、構成情報161を参照して、どのサーバ100の管理範囲400に対象データが含まれるかを判定する。なお、第1の実施形態では、管理範囲1612のマスタに記載された管理範囲400のみに着目して判定される。すなわち、対象データのマスタサーバ100が特定される。
 データ管理部141は、前述した判定の結果に基づいて、対象データの格納先が他のサーバ100であるか否かを判定する(ステップS706)。
 図4に示す例では、ハッシュ値が「350」であるデータに対するアクセス要求をサーバAが受信した場合、当該データの格納先はサーバCであるため、対象データの格納先が他のサーバ100であると判定される。
 対象データの格納先が他のサーバ100でない、すなわち、対象データの格納先が自サーバ100であると判定された場合、データ管理部141は、データの再配置処理の実行をデータ再配置処理部145に指示する(ステップS708)。なお、データの再配置処理については、図17を用いて後述する。
 データ管理部141は、対象データを取得して、取得された対象データを含むアクセス結果の送信をアクセス結果送信部144に指示する(ステップS710)。当該指示を受けたアクセス結果送信部144は、アクセス要求の送信元のクライアント装置200にアクセス結果を送信する。その後、データ管理部141は、ステップS700に戻り同様の処理を実行する。
 ステップS706において、対象データの格納先が他のサーバ100であると判定された場合、データ管理部141は、対象データを格納する他のサーバ100にアクセス要求を転送する(ステップS720)。当該アクセス要求を受信した、他のサーバ100では、図16に示す処理が実行されることとなる。その後、データ管理部141は、ステップS700に戻り同様の処理を実行する。
 図17は、本発明の第1の実施形態におけるサーバ100が実行するデータの再配置処理を説明するフローチャートである。
 データ再配置処理部145は、データストア150に対象データが格納されているか否かを判定する(ステップS800)。
 データストア150に対象データが格納されていると判定された場合、データ再配置処理部145は、対象データをデータストア150に再配置する必要がないため処理を終了する。
 データストア150に対象データが格納されていないと判定された場合、データ再配置処理部145は、アルゴリズム切替履歴164を参照して、対象データの格納先を特定する(ステップS802)。具体的には、以下のような処理が実行される。
 まず、データ再配置処理部145は、アルゴリズム切替履歴164を参照して、現在使用されている分散アルゴリズムの一つ前の分散アルゴリズムを特定する。データ再配置処理部145は、一つ前の分散アルゴリズムから各サーバ100の管理範囲400を算出し、対象データを管理していたサーバ100を特定する。
 データ再配置処理部145は、特定されたサーバ100に対して対象データを問い合わせる。当該問い合わせの結果、特定されたサーバ100が対象データを格納していない場合、データ再配置処理部145は、さらに一つ前の分散アルゴリズムを用いて同様の処理を実行する。以上がステップS802の処理である。
 次に、データ再配置処理部145は、特定されたサーバ100から対象データを取得する(ステップS804)。取得方法としては、特定されたサーバ100に格納される対象データをコピーする方法、又は、特定されたサーバ100に格納される対象データを移動する方法などが考えられる。ここで、データのコピーは、他のサーバ100に格納される対象データの複製データを自サーバ100に格納することを示す。また、データの移動は、自サーバ100に対象データを格納し、他のサーバ100から対象データを削除することを示す。
 データ再配置処理部145は、移動履歴166の更新処理を実行して、処理を終了する(ステップS806)。なお、移動履歴166の更新処理の詳細は、図18を用いて後述する。
 以上のように、本実施形態では、分散アルゴリズムが切り替えられても、クライアント装置200からアクセスされたデータについてのみ再配置処理が実行される。これによって、不要なデータの再配置処理が実行されることを回避でき、サーバ100の負荷増大を抑制することができる。
 図18は、本発明の第1の実施形態におけるサーバ100が実行する移動履歴166の更新処理を説明するフローチャートである。
 データ再配置処理部145は、対象データの識別情報(キー)を取得して、移動履歴166に対象データのエントリが存在するか否かを判定する(ステップS900)。なお、対象データの識別情報は、アクセス要求から取得することができる。
 移動履歴166に対象データのエントリが存在すると判定された場合ステップS904に進む。
 移動履歴166に対象データのエントリが存在しないと判定された場合、データ再配置処理部145は、移動履歴166にエントリを生成する(ステップS902)。このとき、データ再配置処理部145は、生成されたエントリのKey1661に対象データの識別子(キー)を格納する。
 データ再配置処理部145は、ステップS802において特定されたサーバ100の識別子を取得し、さらに、自サーバ100の識別子を取得して、移動履歴1662に格納する(ステップS904)。なお、サーバ100間の移動順が分かるように情報が格納される。図9に示す例では、移動順にサーバ100の識別子が格納される。
 データ再配置処理部145は、データを移動した時刻を取得して、タイムスタンプ1663に格納する(ステップS906)。データを移動した時刻としては、データ再配置処理部145が、ステップS804においてデータを取得した時刻が考えられる。
 さらに、データ再配置処理部145は、アルゴリズム切替履歴164の切替原因1642を参照して分散アルゴリズムを切り替えた原因を特定し、切替原因1664を更新して、処理を終了する(ステップS908)。
 図19A及び図19Bは、本発明の第1の実施形態における処理の流れを示す説明図である。
 図19Aに示すようにサーバ100Aのアクセス数が増大すると、分散アルゴリズムの切り替えが必要であると判定される(ステップS200)。ここでは、分散アルゴリズム1から分散アルゴリズム2に切り替えられるものとする。
 図19Aに示す例では、分散アルゴリズムが切り替えられることによって、管理範囲400A、管理範囲400B及び管理範囲400Dが変更される。すなわち、管理範囲400Aは「1」~「80」に、管理範囲400Bは「91」~「200」に、管理範囲400Dは「71」~「90」及び「301」~「400」に変更される。また、データ500Aはハッシュ値が「75」のデータ、データ500Bはハッシュ値が「93」のデータとする。
 分散アルゴリズムが切り替えられた後、クライアント装置200は、データ500Aへアクセスする場合、データ500Aを管理するサーバ100Dに対してアクセス要求を送信する(ステップS504)。
 サーバ100Dは、クライアント装置200からアクセス要求を受信すると、データ500Aの格納先は自サーバであると判定し、データ再配置処理を実行する(ステップS706、ステップS708)。すなわち、サーバ100Dは、サーバ100Aからデータ500Aを取得し、データストア150にデータ500Aを格納する(ステップS804)。
 一方、データ500Bは、クライアント装置200からのアクセス要求がないため、サーバ100Bに再配置されない。これによって、必要なデータのみ配置を変更することによって、サーバ100間の不要な通信を抑制することができる。したがって、システム全体の負荷を低減できる。
 また、分散アルゴリズムの切り替えによって管理範囲400が変更されるため、サーバ100Aへのアクセス数が減少し、サーバ100Aの負荷が低減できる。したがって、システム全体としての負荷が低減できる。
 サーバ100は、クライアント装置200からの要求に応じて、図20に示すようなデータの移動状態を確認するための情報を生成することができる。
 図20は、本発明の第1の実施形態におけるデータ移動履歴の表示例を示す説明図である。
 データ移動履歴の表示画面1000は、移動履歴表示領域1010及びデータ指定領域1020を含む。
 移動履歴表示領域1010には、データの移動履歴に関する情報が表示される。図20に示す例では、Key1011、移動履歴1012、タイムスタンプ1013及び切替原因1014を含む。Key1011、移動履歴1012、タイムスタンプ1013及び切替原因1014は、それぞれ、Key1661、移動履歴1662、タイムスタンプ1663及び切替原因1664と同一のものであるため説明を省略する。
 なお、移動履歴表示領域1010に表示される情報は、図20に示すようなものに限定されない。
 データ指定領域1020は、クライアント装置200を操作する管理者が所望するデータを指定するための情報を入力する領域である。図20に示す例では、所定のキーレンジが入力される。なお、データ指定領域1020には、個々のキーが入力されてもよいし、キー以外の情報、例えば、タイムスタンプ及びサーバの識別子などを入力してもよい。
 表示画面1000の表示処理としては以下のような処理が考えられる。
 クライアント装置200は、データ指定領域2020を操作して、表示画面2000の表示要求を送信する。表示要求には、キー情報、タイムスタンプ、サーバ識別子など任意の情報が含まれる。
 表示要求を受信したサーバ100は表示情報を生成して、クライアント装置200に表示情報を送信する。表示情報の生成方法としては、サーバ100が、移動履歴166を参照して、クライアント装置200が所望する情報を表示するための表示情報を生成する方法が考えられる。なお、他のサーバ100の移動履歴166が必要な場合には、各サーバ100に問い合わせることによって必要な移動履歴166を取得することができる。
 クライアント装置200は、表示情報を受信すると、移動履歴表示領域1010に移動履歴に関する情報を表示する。
 第1の実施形態によれば、特定のサーバ100に対する負荷が増大した場合に、分散アルゴリズムを切り替えることによって、各サーバ100に対する負荷を減少させることができる。また、負荷が低下した場合には、元の分散アルゴリズムに戻すことができ、一時的な負荷の変化に柔軟に対応することもできる。さらに、分散アルゴリズムの切り替えに伴うデータの再配置も必要なデータに限定できるため、サーバ100間の不要な通信を抑制できる。
 [第2の実施形態]
 図21は、本発明の第2の実施形態における計算機システムの構成を示すブロック図である。第2の実施形態では、クライアント装置200が構成情報管理部243及び構成情報251を含まない点が第1の実施形態と異なる。
 したがって、第2の実施形態ではアクセス要求の発行処理が第1の実施形態と異なる。具体的には、クライアント装置200は、構成情報251を含まないため、ステップS502の処理が省略される。この場合、クライアント装置200は、ネットワーク300に接続されるいずれかのサーバ100にアクセス要求を送信する。アクセス要求を受信したサーバ100は、図13及び図16に示す処理を実行して、アクセス結果を送信することとなる。
 なお、その他の構成及び処理は、第1の実施形態と同一であるため説明を省略する。
 [第3の実施形態]
 第3の実施形態では、サーバ100が他のサーバ100のスレーブデータを保持する点が異なる。したがって、第3の実施形態では、構成情報161の内容が異なる。また第3の実施形態では、アクセス処理及び再配置処理が異なる。以下、第1の実施形態との差異を中心に第3の実施形態について説明する。
 計算機システムの構成は、構成情報161を除き、第1の実施形態と同一であるため説明を省略する。
 図22は、本発明の第3の実施形態における構成情報161の一例を示す説明図である。
 第3の実施形態における構成情報161は、管理範囲1612に格納される情報が異なる。管理範囲1612には、新たな管理項目として、マスタ1615、スレーブ1(1616)及びスレーブ2(1617)が含まれる。
 マスタ1615は、マスタサーバ100として管理するマスタデータの管理範囲400の値を格納する。スレーブ1(1616)及びスレーブ2(1617)は、スレーブサーバ100として保持するスレーブデータの管理範囲400の値を格納する。なお、本実施形態では管理範囲400の値として、ハッシュ値の値が格納される。
 スレーブ1(1616)はスレーブ2(1617)より上位のスレーブサーバ100であることを示す。例えば、サーバID1611が「サーバ2」であるマスタサーバ100に障害が発生した場合に、サーバID1611が「サーバ1」及び「サーバ4」であるスレーブサーバ100のうち、サーバID1611が「サーバ1」であるスレーブサーバ100がマスタサーバ100として処理を引き継ぐこととなる。
 なお、本実施形態では、2つのスレーブサーバ100にスレーブデータを格納する構成を採っているが本発明はこれに限定されない。すなわち、1つ又は3つ以上のスレーブサーバ100にスレーブデータを格納する構成でもよい。
 次に、第3の実施形態における各種処理について説明する。
 第3の実施形態の統括サーバ100の処理は、第1の実施形態と同一であるため説明を省略する。切替受付処理、アクセス要求受信時の処理は、第1の実施形態と同一であるため説明を省略する。また、アクセス要求の発行処理、構成情報の更新処理及び移動履歴の更新処理は、第1の実施形態と同一であるため説明を省略する。
 第3の実施形態では、切替処理、アクセス処理及び再配置処理が異なる。以下、それぞれの処理について説明する。
 分散アルゴリズムの切替処理では、ステップS204における構成情報161の更新内容が異なる。
 ステップS204では、分散アルゴリズムの切り替えによって、マスタデータの管理範囲400とスレーブデータの管理範囲400とが変更される。ただし、マスタデータの管理範囲400だけを変更してもよい。管理範囲400の変更は、分散アルゴリズムを適宜変更することによって実現できる。ここでは、マスタデータの管理範囲400及びスレーブデータの管理範囲400の両方が変更されるものとする。
 構成情報161が変更された場合に、データストア150に格納されるデータそのものは変更されない。これは、データに、マスタデータ又はスレーブデータのいずれであるかを示す属性情報などが付与されていないためである。
 その他の処理は第1の実施形態と同一であるため説明を省略する。
 図23は、本発明の第3の実施形態におけるサーバ100が実行するアクセス処理を説明するフローチャートである。アクセス処理は、データ管理部141によって実行される。
 ステップS700及びステップS702の処理は、第1の実施形態と同一であるため説明を省略する。また、ステップS710及びステップS720の処理も、第1の実施形態と同一であるため説明を省略する。
 ステップS702の判定結果がYesの場合、データ管理部141は、対象データに対応するマスタデータの格納先を特定する(ステップS1000)。具体的には、データ管理部141は、構成情報161のマスタ1615を参照して、どのマスタサーバ100の管理範囲400に対象データが含まれるかを判定する。すなわち、対象データのマスタサーバ100が特定される。
 データ管理部141は、前述した判定の結果に基づいて、対象データに対応するマスタデータの格納先が他のサーバ100であるか否かを判定する(ステップS1002)。
 図4に示す例では、ハッシュ値が「350」であるデータに対するアクセス要求をサーバAが受信した場合、当該データに対応するマスタデータの格納先はサーバCであるため、対象データに対応するマスタデータの格納先が他のサーバ100であると判定される。
 対象データに対応するマスタデータの格納先が他のサーバ100でない、すなわち、対象データに対応するマスタデータの格納先が自サーバ100であると判定された場合、データ管理部141は、データの再配置処理の実行をデータ再配置処理部145に指示する(ステップS1004)。なお、データの再配置処理については、図24を用いて後述する。
 図24は、本発明の第3の実施形態におけるサーバ100が実行するデータの再配置処理を説明するフローチャートである。
 データ再配置処理部145は、データストア150に対象データが格納されているか否かを判定する(ステップS1100)。第3の実施形態では、データストア150に格納されるマスタデータ及びスレーブデータを参照して、対象データが格納されるか否かが判定される点が第1の実施形態と異なる。
 このように、スレーブデータとして管理していたデータに対象データが含まれる場合には、対象データを取得する必要がなく、サーバ100間の通信を抑制することができる。この場合、サーバ100は、分散アルゴリズムの切り替え前はスレーブデータであった対象データを、マスタデータとして管理することとなる。
 その他の処理は第1の実施形態と同一であるため説明を省略する。
 [変形例]
 図25は、本発明の第3の実施形態におけるサーバ100が実行するデータの再配置処理の変形例を説明する説明図である。
 図25に示すデータの再配置処理は、アクセス要求を受け付けた後、又は、分散アルゴリズムが切り替えられた後に実行される。
 データ再配置処理部145は、構成情報161を参照して、各サーバ100の現在の管理範囲400を特定する(ステップ1200)。
 データ再配置処理部145は、アルゴリズム切替履歴164を参照して、分散アルゴリズムの切り替え前における、各サーバ100の管理範囲400を特定する(ステップS1202)。以下では、分散アルゴリズムが切り替えられる前の管理範囲400を過去の管理範囲400とも記載する。
 データ再配置処理部145は、現在の管理範囲400と、過去の管理範囲400とを比較して、管理範囲400に差分が生じているか否かを判定する(ステップ1204)。ここで、「1」~「100」までの第1の管理範囲を例に、管理範囲400に差分について説明する。
 例えば、分散アルゴリズムが切り替えられる前の第1の管理範囲を、サーバ100Aがマスタサーバ100として管理し、サーバ100B及びサーバ100Cがスレーブサーバ100として管理していた場合に、分散アルゴリズムが切り替えられた後の第1管理範囲を、サーバ100Bがマスタサーバ100として管理し、サーバ100C及びサーバ100Dがスレーブサーバ100として管理している場合には、管理範囲400に差分が生じていると判定される。なぜなら、サーバ100Dは、分散アルゴリズムが切り替えられる前は、第1の管理範囲のデータを保持していないため他のサーバ100から取得する必要があるためである。
 一方、サーバ100B及びサーバ100Cは、管理範囲400Aのスレーブデータを保持しており、分散アルゴリズムが切り替えられても必要なデータを保持しているため他のサーバ100から取得する必要がない。このとき、サーバ100Bは、第1の管理範囲のデータをマスタデータとして管理することとなる。また、サーバ100Cは、第1の管理範囲のデータをスレーブデータとして管理する。
 なお、上記説明では、簡単のため管理範囲400を固定していたが、分散アルゴリズムの切り替え前後で管理範囲400が異なっている場合でも同様の判定方法を適用できる。
 すなわち、分散アルゴリズムが切り替えられた後に、データを取得する必要なあるサーバ100が存在する場合に、管理範囲400に差分が生じていると判定される。
 管理範囲400に差分が生じていないと判定された場合、データ再配置処理部145は、処理を終了する。
 管理範囲400に差分が生じていると判定された場合、データ再配置処理部145は、当該差分を解消するようにデータを取得し(ステップS1206)、処理を終了する。
 例えば、データ再配置処理部145は、マスタデータがない場合には、マスタデータを他のサーバ100から取得し、スレーブデータがない場合には、レプリケーション処理等を実行して、スレーブデータを他のサーバから取得する。
 [第4の実施形態]
 第4の実施形態では、分散アルゴリズムの切り替え方が第1の実施形態と異なる。以下、第1の実施形態との差異を中心に第3の実施形態について説明する。
 図26は、本発明の第4の実施形態における計算機システムの構成を示すブロック図である。
 第4の実施形態では、サーバ100のアルゴリズム切替条件情報170は、アルゴリズム切替履歴164と内容が異なる。また、第4の実施形態では、新たに切替候補情報180を含む。その他の構成は第1の実施形態と同一であるため説明を省略する。
 図27は、本発明の第4の実施形態におけるアルゴリズム切替条件情報170の一例を示す説明図である。
 アルゴリズム切替条件情報170は、負荷情報1701及び閾値1702を含む。負荷情報1701及び閾値1702は、負荷情報1652及び閾値1653と同一のものである。図27に示すように、第4の実施形態では、切替条件と分散アルゴリズムとが対応づけられていない点が第1の実施形態と異なる。
 図28は、本発明の第4の実施形態における切替候補情報180の一例を示す説明図である。
 切替候補情報180は、切り替え可能な分散アルゴリズムの情報を格納する。具体的には、ID1801及び分散アルゴリズム1802を含む。
 ID1801は、分散アルゴリズムを識別するための識別子を格納する。分散アルゴリズム1802は、分散アルゴリズムに関する情報を格納する。例えば、分散アルゴリズム1802には、ハッシュ関数及びキーレンジなどが格納される。
 図29は、本発明の第4の実施形態における分散アルゴリズムの切替処理の詳細を説明するフローチャートである。
 ステップS200において、分散アルゴリズムの切り替えが必要であると判定された場合、アルゴリズム管理部148は、サーバ100の負荷増大が切替原因であるか否かを判定する(ステップS1300)。
 具体的には、ステップS200の判定処理において、どの切替条件に一致したかを確認することによって判定できる。なお、ステップS200では、アルゴリズム切替条件情報170に基づいて処理が実行される。
 サーバ100の負荷増大が切替原因でないと判定された場合、アルゴリズム管理部148は、ステップS1304に進む。
 サーバ100の負荷増大が切替原因であると判定された場合、アルゴリズム管理部148は、サーバ負荷情報162を参照して、負荷の低いサーバ100を特定し、ステップS1304に進む(ステップS1302)。例えば、サーバ100へのアクセス数の増大が切替原因である場合、アルゴリズム管理部148は、サーバ負荷情報162を参照して、アクセス数が最小であるサーバ100を特定する。なお、特定されるサーバ100は1台である必要は無く、複数台であってもよい。
 アルゴリズム管理部148は、切替候補情報180を参照して分散アルゴリズムを選択し、選択された分散アルゴリズムを切り替える(ステップS1304)。分散アルゴリズムの選択方法は、切替原因によって異なる。以下、切替原因ごとの選択方法について説明する。
 切替原因がサーバ100の負荷減少である場合、アルゴリズム管理部148は、切替候補情報180を参照して、各サーバ100の負荷が平準化されるような分散アルゴリズムを選択する。例えば、分散アルゴリズムを切り替えた場合の管理範囲400を算出する方法が考えられる。また、他の方法としては、アルゴリズム管理部148が、アルゴリズム切替履歴164を参照して、サーバ100の負荷が増大する前の分散アルゴリズムを特定してもよい。
 切替原因がサーバ100の負荷増大である場合、アルゴリズム管理部148は、切替候補情報180を参照して、負荷が増大しているサーバ100の管理範囲400のデータを、負荷が小さいサーバ100に割り当てるための分散アルゴリズムを特定する。例えば、分散アルゴリズムを切り替えた場合の管理範囲400を算出する方法が考えられる。アルゴリズム管理部148は、特定された分散アルゴリズムの中から、最も負荷が平準化される分散アルゴリズムを選択する。
 以上がステップS1304の処理である。
 ステップS204及びステップS206の処理は、第1の実施形態と同一であるため説明を省略する。
 以上説明したように、本発明によれば、特定のサーバ100に対する負荷が増大した場合に、分散アルゴリズムを切り替えることによって、各サーバ100に対する負荷を低減できる。また、分散アルゴリズムの切り替えに伴うデータの再配置も必要なデータに限定できるため、不要なサーバ100間の通信を抑制できる。したがって、処理コストを抑え、かつ、動的な分散アルゴリズムの切り替えを実現することができる。
 なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
 さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (20)

  1.  ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、
     前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
     前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
     前記計算機システムは、
     前記データベースを構成する各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、
     前記負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替えるアルゴリズム管理部と、
     切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する再配置処理部と、を有することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記データベースには、キー及びデータ値から構成される前記データが格納され、
     前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、
     前記再配置処理部は、
     前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定し、
     前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定し、
     前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得することを特徴とする計算機システム。
  3.  請求項1又は請求項2に記載の計算機システムであって、
     前記アルゴリズム管理部は、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とする計算機システム。
  4.  請求項2又は請求項3に記載の計算機システムであって、
     前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記アルゴリズム管理部は、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えることを特徴とする計算機システム。
  5.  請求項3又は請求項4に記載の計算機システムであって、
     前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とする計算機システム。
  6.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記再配置処理部は、
     前記第1データの複製データを取得し、
     前記取得された第1データの複製データを前記第1計算機に格納することによって前記データを再配置することを特徴とする計算機システム。
  7.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記再配置処理部は、
     前記第1データを取得し、
     前記取得された第1データを前記第1計算機に格納し、
     前記第1データを格納する他の前記計算機から前記第1データを削除することによって前記データを再配置することを特徴とする計算機システム。
  8.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
     前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
     前記再配置処理部は、
     前記第1計算機が前記第1データの前記複製データを保持するか否かを判定し、
     前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1データを前記第1計算機に再配置することを特徴とする計算機システム。
  9.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記アルゴリズム管理部は、
     前記データベースを構成する計算機のうち、負荷が低い計算機を特定し、
     前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択し、
     前記選択された分散アルゴリズムに切り替えることを特徴とする計算機システム。
  10.  請求項2から請求項4のいずれか一つに記載の計算機システムであって、
     前記再配置処理部は、前記再配置されたデータの識別子、前記再配置前に前記データが格納されていた前記計算機の識別子、前記再配置後に前記データが格納された前記計算機の識別子及び前記データが再配置された時刻を含む履歴表示情報を生成することを特徴とする計算機システム。
  11.  ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムにおけるデータ管理方法であって、
     前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
     前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
     前記方法は、
     前記計算機が、前記データベースを構成する各計算機における負荷に関する負荷情報を取得する第1のステップと、
     前記計算機が、前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える第2のステップと、
     前記計算機が、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する第3のステップと、を備えることを特徴とするデータ管理方法。
  12.  請求項11に記載のデータ管理方法であって、
     前記データベースには、キー及びデータ値から構成される前記データが格納され、
     前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、
     前記第3のステップは、
     前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定するステップと、
     前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定するステップと、
     前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得するステップと、を含むことを特徴とするデータ管理方法。
  13.  請求項11又は請求項12に記載のデータ管理方法であって、
     前記前記第3のステップでは、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とするデータ管理方法。
  14.  請求項12又は請求項13に記載のデータ管理方法であって、
     前記方法は、さらに、
     前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記計算機が、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えるステップを含むことを特徴とするデータ管理方法。
  15.  請求項13又は請求項14に記載のデータ管理方法であって、
     前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とするデータ管理方法。
  16.  請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
     前記第3のステップは、
     前記第1データの複製データを取得するステップと、
     前記取得された第1データの複製データを前記第1計算機に格納するステップと、を含むことを特徴とするデータ管理方法。
  17.  請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
     前記第3のステップは、
     前記第1データを取得するステップと、
     前記取得された第1データを前記第1計算機に格納するステップと、
     前記第1データを格納する他の前記計算機から前記第1データを削除するステップと、を含むことを特徴とするデータ管理方法。
  18.  請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
     前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
     前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
     前記第3のステップは、
     前記第1計算機が前記第1データの前記複製データを保持するか否かを判定するステップと、
     前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1計算機に再配置するステップと、を含むことを特徴とするデータ管理方法。
  19.  請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
     前記第2のステップは、
     前記データベースを構成する計算機のうち、負荷が低い計算機を特定するステップと、
     前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択するステップと、
     前記選択された分散アルゴリズムに切り替えるステップと、を含むことを特徴とするデータ管理方法。
  20.  ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムに含まれる前記計算機が実行するプログラムであって、
     前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
     前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
     前記プログラムは、
     前記データベースを構成する各計算機における負荷に関する負荷情報を取得する手順と、
     前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える手順と、
     切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する手順と、を前記計算機に実行させることを特徴とするプログラム。
PCT/JP2011/076398 2011-11-16 2011-11-16 計算機システム、データ管理方法及びプログラム WO2013073020A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/358,715 US9489429B2 (en) 2011-11-16 2011-11-16 Computer system, data management method, and program
PCT/JP2011/076398 WO2013073020A1 (ja) 2011-11-16 2011-11-16 計算機システム、データ管理方法及びプログラム
JP2013544031A JP5701398B2 (ja) 2011-11-16 2011-11-16 計算機システム、データ管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/076398 WO2013073020A1 (ja) 2011-11-16 2011-11-16 計算機システム、データ管理方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2013073020A1 true WO2013073020A1 (ja) 2013-05-23

Family

ID=48429132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/076398 WO2013073020A1 (ja) 2011-11-16 2011-11-16 計算機システム、データ管理方法及びプログラム

Country Status (3)

Country Link
US (1) US9489429B2 (ja)
JP (1) JP5701398B2 (ja)
WO (1) WO2013073020A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5668151B2 (ja) * 2012-01-05 2015-02-12 株式会社日立製作所 計算機システムの管理装置及び管理方法
US20150127658A1 (en) * 2013-11-06 2015-05-07 International Business Machines Corporation Key_value data storage system
JP2017062541A (ja) * 2015-09-24 2017-03-30 日本電気株式会社 データ管理装置、データ管理方法およびプログラム
JP2021535468A (ja) * 2018-08-29 2021-12-16 アリババ グループ ホウルディング リミテッド データ書き込みのための方法及び装置
USRE49334E1 (en) 2005-10-04 2022-12-13 Hoffberg Family Trust 2 Multifactorial optimization system and method

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
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
RU2746446C2 (ru) 2016-11-10 2021-04-14 Свирлдз, Инк. Способы и устройство для распределенной базы данных, содержащей анонимные входные данные
CN110140116B (zh) 2016-12-19 2023-08-11 海德拉哈希图有限责任公司 用于启用事件删除的分布式数据库的方法和设备
AU2018300147B2 (en) * 2017-07-11 2020-07-16 Hedera Hashgraph, Llc Methods and apparatus for efficiently implementing a distributed database within a network
AU2018359417B2 (en) 2017-11-01 2020-04-16 Hedera Hashgraph, Llc Methods and apparatus for efficiently implementing a fast-copyable database
CA3134691A1 (en) 2019-05-22 2020-11-26 Swirlds, Inc. Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139119A (ja) * 1992-10-28 1994-05-20 Hitachi Ltd データベース管理システムおよびデータベース管理方法
JPH09146812A (ja) * 1995-11-27 1997-06-06 Sanyo Electric Co Ltd データベース装置
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
JP2008065486A (ja) * 2006-09-05 2008-03-21 Hitachi Ltd ストレージシステムおよびそのデータ移行方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259478A (ja) 1993-03-02 1994-09-16 Toshiba Corp 分散データベースのデータ再配置方式
US7739381B2 (en) * 1998-03-11 2010-06-15 Commvault Systems, Inc. System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services
US20060265445A1 (en) * 2005-05-20 2006-11-23 International Business Machines Corporation Method and structure for improving processing efficiency in parallel processing machines for rectangular and triangular matrix routines
US7930720B2 (en) * 2005-07-08 2011-04-19 International Business Machines Corporation Distribution system and method
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
CN102341791B (zh) * 2009-03-06 2015-03-04 日本电气株式会社 信息处理系统和方法
WO2010138898A2 (en) * 2009-05-29 2010-12-02 Wiredless Networks, Inc. Secure storage and accelerated transmission of information over communication networks
JP2011118525A (ja) 2009-12-01 2011-06-16 Hitachi Ltd サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
US9112812B2 (en) * 2011-09-22 2015-08-18 Embrane, Inc. Distributed virtual appliance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139119A (ja) * 1992-10-28 1994-05-20 Hitachi Ltd データベース管理システムおよびデータベース管理方法
JPH09146812A (ja) * 1995-11-27 1997-06-06 Sanyo Electric Co Ltd データベース装置
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
JP2008065486A (ja) * 2006-09-05 2008-03-21 Hitachi Ltd ストレージシステムおよびそのデータ移行方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAZUO MASAI ET AL.: "Koshin Shori o Heiretsu Jikko suru UNIX Muke DBMS o Kaihatsu", NIKKEI ELECTRONICS, 27 February 1995 (1995-02-27), pages 101 - 114 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49334E1 (en) 2005-10-04 2022-12-13 Hoffberg Family Trust 2 Multifactorial optimization system and method
JP5668151B2 (ja) * 2012-01-05 2015-02-12 株式会社日立製作所 計算機システムの管理装置及び管理方法
US20150127658A1 (en) * 2013-11-06 2015-05-07 International Business Machines Corporation Key_value data storage system
JP2015090615A (ja) * 2013-11-06 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データを管理するシステムおよび方法
US10740308B2 (en) 2013-11-06 2020-08-11 International Business Machines Corporation Key_Value data storage system
JP2017062541A (ja) * 2015-09-24 2017-03-30 日本電気株式会社 データ管理装置、データ管理方法およびプログラム
JP2021535468A (ja) * 2018-08-29 2021-12-16 アリババ グループ ホウルディング リミテッド データ書き込みのための方法及び装置
JP7371087B2 (ja) 2018-08-29 2023-10-30 アリババ グループ ホウルディング リミテッド データ書き込みのための方法及び装置

Also Published As

Publication number Publication date
US20140324905A1 (en) 2014-10-30
US9489429B2 (en) 2016-11-08
JPWO2013073020A1 (ja) 2015-04-02
JP5701398B2 (ja) 2015-04-15

Similar Documents

Publication Publication Date Title
JP5701398B2 (ja) 計算機システム、データ管理方法及びプログラム
US6792503B2 (en) Disk storage accessing system and method for changing access path to storage devices
US8255420B2 (en) Distributed storage
US9659038B2 (en) Efficient snapshot read of a database in a distributed storage system
CN106844399B (zh) 分布式数据库系统及其自适应方法
US8661055B2 (en) File server system and storage control method
US10579597B1 (en) Data-tiering service with multiple cold tier quality of service levels
JP6835968B2 (ja) スタビングによるコンテンツ記憶の最適化
KR20110027688A (ko) 로컬 호스팅된 캐시 및 암호 해시 함수를 사용하여 네트워크 트래픽을 감소시키는 방법 및 시스템
US10019503B2 (en) Database transfers using constraint free data
US20180107404A1 (en) Garbage collection system and process
US10909143B1 (en) Shared pages for database copies
US11216421B2 (en) Extensible streams for operations on external systems
US9898518B2 (en) Computer system, data allocation management method, and program
US20220391411A1 (en) Dynamic adaptive partition splitting
JP5792325B2 (ja) 計算機システム、データ管理方法及びプログラム
US11886419B2 (en) Background job based refresh fulfillment for managed account objects
EP4187402A1 (en) Replication of account security features in multiple deployment database
US11593345B1 (en) Accelerating change data capture determination using row bitsets
WO2012046585A1 (ja) 分散ストレージシステム、その制御方法、およびプログラム
JP6007340B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
US11734301B1 (en) Selective table replication to enable stream replication
US11550793B1 (en) Systems and methods for spilling data for hash joins

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: 11875785

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013544031

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14358715

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11875785

Country of ref document: EP

Kind code of ref document: A1