WO2013073020A1 - 計算機システム、データ管理方法及びプログラム - Google Patents
計算機システム、データ管理方法及びプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols 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
Claims (20)
- ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、
前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
前記計算機システムは、
前記データベースを構成する各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、
前記負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替えるアルゴリズム管理部と、
切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する再配置処理部と、を有することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記データベースには、キー及びデータ値から構成される前記データが格納され、
前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、
前記再配置処理部は、
前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定し、
前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定し、
前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得することを特徴とする計算機システム。 - 請求項1又は請求項2に記載の計算機システムであって、
前記アルゴリズム管理部は、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とする計算機システム。 - 請求項2又は請求項3に記載の計算機システムであって、
前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記アルゴリズム管理部は、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えることを特徴とする計算機システム。 - 請求項3又は請求項4に記載の計算機システムであって、
前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とする計算機システム。 - 請求項2から請求項4のいずれか一つに記載の計算機システムであって、
前記再配置処理部は、
前記第1データの複製データを取得し、
前記取得された第1データの複製データを前記第1計算機に格納することによって前記データを再配置することを特徴とする計算機システム。 - 請求項2から請求項4のいずれか一つに記載の計算機システムであって、
前記再配置処理部は、
前記第1データを取得し、
前記取得された第1データを前記第1計算機に格納し、
前記第1データを格納する他の前記計算機から前記第1データを削除することによって前記データを再配置することを特徴とする計算機システム。 - 請求項2から請求項4のいずれか一つに記載の計算機システムであって、
前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
前記再配置処理部は、
前記第1計算機が前記第1データの前記複製データを保持するか否かを判定し、
前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1データを前記第1計算機に再配置することを特徴とする計算機システム。 - 請求項2から請求項4のいずれか一つに記載の計算機システムであって、
前記アルゴリズム管理部は、
前記データベースを構成する計算機のうち、負荷が低い計算機を特定し、
前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択し、
前記選択された分散アルゴリズムに切り替えることを特徴とする計算機システム。 - 請求項2から請求項4のいずれか一つに記載の計算機システムであって、
前記再配置処理部は、前記再配置されたデータの識別子、前記再配置前に前記データが格納されていた前記計算機の識別子、前記再配置後に前記データが格納された前記計算機の識別子及び前記データが再配置された時刻を含む履歴表示情報を生成することを特徴とする計算機システム。 - ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムにおけるデータ管理方法であって、
前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
前記方法は、
前記計算機が、前記データベースを構成する各計算機における負荷に関する負荷情報を取得する第1のステップと、
前記計算機が、前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える第2のステップと、
前記計算機が、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する第3のステップと、を備えることを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、
前記データベースには、キー及びデータ値から構成される前記データが格納され、
前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、
前記第3のステップは、
前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定するステップと、
前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定するステップと、
前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得するステップと、を含むことを特徴とするデータ管理方法。 - 請求項11又は請求項12に記載のデータ管理方法であって、
前記前記第3のステップでは、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とするデータ管理方法。 - 請求項12又は請求項13に記載のデータ管理方法であって、
前記方法は、さらに、
前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記計算機が、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えるステップを含むことを特徴とするデータ管理方法。 - 請求項13又は請求項14に記載のデータ管理方法であって、
前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とするデータ管理方法。 - 請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
前記第3のステップは、
前記第1データの複製データを取得するステップと、
前記取得された第1データの複製データを前記第1計算機に格納するステップと、を含むことを特徴とするデータ管理方法。 - 請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
前記第3のステップは、
前記第1データを取得するステップと、
前記取得された第1データを前記第1計算機に格納するステップと、
前記第1データを格納する他の前記計算機から前記第1データを削除するステップと、を含むことを特徴とするデータ管理方法。 - 請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、
前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、
前記第3のステップは、
前記第1計算機が前記第1データの前記複製データを保持するか否かを判定するステップと、
前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1計算機に再配置するステップと、を含むことを特徴とするデータ管理方法。 - 請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、
前記第2のステップは、
前記データベースを構成する計算機のうち、負荷が低い計算機を特定するステップと、
前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択するステップと、
前記選択された分散アルゴリズムに切り替えるステップと、を含むことを特徴とするデータ管理方法。 - ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムに含まれる前記計算機が実行するプログラムであって、
前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、
前記プログラムは、
前記データベースを構成する各計算機における負荷に関する負荷情報を取得する手順と、
前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える手順と、
切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する手順と、を前記計算機に実行させることを特徴とするプログラム。
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)
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)
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)
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)
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 |
-
2011
- 2011-11-16 WO PCT/JP2011/076398 patent/WO2013073020A1/ja active Application Filing
- 2011-11-16 JP JP2013544031A patent/JP5701398B2/ja not_active Expired - Fee Related
- 2011-11-16 US US14/358,715 patent/US9489429B2/en not_active Expired - Fee Related
Patent Citations (4)
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)
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)
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 |