WO2014102997A1 - 計算機、計算機システムの制御装置及び記録媒体 - Google Patents
計算機、計算機システムの制御装置及び記録媒体 Download PDFInfo
- Publication number
- WO2014102997A1 WO2014102997A1 PCT/JP2012/084020 JP2012084020W WO2014102997A1 WO 2014102997 A1 WO2014102997 A1 WO 2014102997A1 JP 2012084020 W JP2012084020 W JP 2012084020W WO 2014102997 A1 WO2014102997 A1 WO 2014102997A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- computer
- range
- computers
- storage area
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Definitions
- the present invention relates to a system in which data is distributed and arranged in a plurality of computers, and more particularly to a system in which master data and replica data are distributed and arranged.
- 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 in which data is stored in a main memory, a non-volatile recording medium with excellent data storage durability, such as an SSD (Solid State Drive), an HDD, etc.
- various configurations such as a configuration for storing data or a configuration for using the above-described configuration in combination 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 emphasis. Various balances of disk stores can be changed.
- a cluster is composed of a plurality of servers, and parallel processing is realized by distributing and arranging data on each server.
- data is stored in each server for each data management range (hereinafter referred to as “data range”) managed by the server.
- Each server executes processing of data (hereinafter referred to as “master data”.
- master data range The data range of master data is hereinafter referred to as “master data range”). That is, in response to a read request including a predetermined key, the server in charge of data in the data range including the key reads the data corresponding to the key.
- replica data In KVS, in order to ensure the reliability of data, the servers constituting the cluster are replicated data of data managed by other servers (hereinafter referred to as “replica data”.
- the data range of replica data is also referred to as “ What is known as a “replica data range”) is known. That is, each server is a master that manages data included in a predetermined data range, and at the same time is a slave that holds replica data of data managed by other servers. As a result, even if a server failure occurs, other servers that hold the data managed by the failed server as a master can continue processing, ensuring fault tolerance. Yes.
- Patent Document 1 as a method of causing a server to hold master data in the KVS described above, a single server is obtained by dividing a master data range of a specific server and holding the divided master data in an adjacent server. A technique for preventing an increase in the load on the network is disclosed.
- the second data that is a copy of the first data that is communicably connected to a plurality of computers having a storage area for storing data and is arranged in the storage area of the own computer is provided.
- a computer arranged in a storage area of another computer A capacity of each storage area of the computer is held, and a first data range is determined in accordance with the capacity, and the first data range in which the first data is arranged in the storage areas of the own computer and a plurality of other computers is determined.
- the second data range is determined by determining the second data range having the maximum data range or the maximum capacity starting from a data range different from the data range having the maximum data range or the maximum capacity. It is arranged in the storage area of its own computer and other computers, and data is arranged in each storage area of the computer according to the first and second data ranges.
- FIG. 8A It is a figure which shows an example of the structure information of the master data and replica data corresponding to FIG. 8A in the computer system of this embodiment. It is a flowchart which shows the data block determination process which input the distribution information which the machine information management part in the computer system of this embodiment performs. It is a figure which shows an example of the block determination which input the distribution information in the computer system of this embodiment. It is a figure which shows an example of the structure information of block ID corresponding to FIG. 10A in the computer system of this embodiment. It is a flowchart of the block determination process which input the density information which the machine information management part in the computer system of this embodiment performs. It is an image figure of the data block determination process which input the density information in the computer system of this embodiment. It is a figure which shows the example of a display of the user operation screen in the computer system of this embodiment. It is a figure which shows the example of a display of the user setting screen in the computer system of this embodiment.
- FIG. 1 is a diagram showing the relationship between each computer of a computer system that is an embodiment to which the present invention is applied and the data range managed by each computer.
- computer B manages data of “400 to 700” as the master data range and data of “1401 to 1500” and “1 to 200” as the replica data range. It shows that.
- As a method for distributing data to each computer various methods such as a consistent hashing method, a range method, and a list method are used.
- FIG. 2 is a diagram simply illustrating an outline of processing according to an embodiment to which the present invention is applied.
- the master data range of each server is determined from the entire data range.
- the master data range is determined based on the memory capacity ratio of each server.
- the data range having the maximum data range (hereinafter referred to as “maximum data range”) is specified from the master data range held by each server.
- the replica data range held by each server is determined based on the maximum data range. In an embodiment to which the present invention is applied, the replica data range is determined based on the data position or the data amount.
- FIG. 3 shows the overall configuration of a computer system that is an embodiment to which the present invention is applied.
- the computer system includes a plurality of servers 301, client devices 302, and a network 303.
- the servers 301 and the server 301 and the client device 302 are connected to each other via a network 303.
- the network 303 may have various wired and wireless configurations such as LAN, WAN, and SAN. In this embodiment, any network may be used as long as the server 301 and the client device 302 can communicate with each other.
- the network 303 includes a plurality of network devices.
- the network device includes, for example, a switch or a gateway.
- the server 301 includes a processor 304, a main storage device 305, and an auxiliary storage device 306, and is a computer constituting the KVS. Although not shown in the present embodiment, a network interface for connecting to the network 303 is provided.
- the server 301 executes data read processing and write processing in accordance with a request from the client device 302, and returns a processing result to the client. It is assumed that the configuration of each server 301 is the same.
- the processor 304 executes a program stored in the main storage device 305.
- the function provided in the server 301 can be realized by the processor 304 executing the program.
- the main storage device 305 stores a program executed by the processor 304 and information necessary for executing the program.
- a program for realizing a data management unit 307, a distribution control unit 308, a data range management unit 310, a configuration information holding unit 311, a machine information management unit 312 and a statistical information management unit 313 Is stored.
- the main storage device 305 holds configuration information 314 and server load information 315.
- a data store 316 that is a database constituting the KVS is stored on the main storage device 305.
- the data store 316 stores data including a key and a value as a set.
- the data management unit 307 controls various processes for data managed by the server 301.
- the data management unit 307 receives a request from the client device 302 and controls processing such as data reading and writing based on the request.
- the distribution control unit 308 controls changes of various setting items such as data multiplicity, the number of data blocks, a memory threshold, and a data block determination method. The control is performed by, for example, a user setting screen shown in FIG.
- the data range management unit 310 manages the storage destination of the master data and replica data stored in each server.
- the configuration information holding unit 311 manages the configuration information 314.
- the machine information management unit 312 executes a data range determination process for replica data.
- the statistical information management unit 313 acquires information regarding the load on each server 301 and updates the server load information 315 based on the acquired information.
- the client device 302 transmits a processing request to the server via the network.
- a management terminal 309 is connected to the client device 302, and a processing request may be transmitted from the management terminal 309.
- the processor 317 executes a program stored in the main storage device 318.
- the main storage device 318 includes a data management unit 307, a distribution control unit 308, a data range management unit 310, a configuration information management unit 311, a machine information management unit 312, and a statistical information management unit 313 in cooperation with the CPU and the program. Composed.
- the processor 317 indicates that the program is being executed.
- FIG. 4 is a schematic diagram showing an example of configuration information 314 and server load information 315 managed as a table in the computer system.
- the configuration information 314 stores information related to the data range managed by each server.
- Each server may store the configuration information 314 shown in FIGS. 4A and 4B, or may store only one of the configuration information 314.
- the configuration information 314 in FIG. 4A includes a server ID 401, a master data range 402, and a replica data range 403.
- the server ID 401 stores an identifier for uniquely identifying the server.
- the master data range 402 stores a value indicating the data range of the master data of each server.
- the replica data range 403 stores a value indicating the data range of the replica data of each server.
- the configuration information 314 in FIG. 4B is configuration information used when data is managed as a single data set (hereinafter referred to as “block”) by combining a plurality of data.
- the configuration information 314 in FIG. 4B includes a server ID 410, a master data block ID 411, a data range 412 corresponding to the block ID 411, and a replica data block ID 413.
- the data range 412 of the server ID 410, master data, and replica data is the same as in FIG. 4B.
- the block IDs 411 and 413 are identifiers for managing a plurality of data in combination. For example, data whose block ID 411 is “1” indicates that it is composed of data “1 to 150” from the master data range 412.
- the server load information 315 in FIG. 4C is a diagram illustrating an example of load information of servers configuring the system.
- the server load information 315 includes a server ID 420, a memory size 423, and a data size 425.
- information such as a server CPU usage rate and a network usage rate may be included.
- the server ID 420 stores an identifier for uniquely identifying the server.
- the memory size 423 indicates the memory capacity of each server.
- the data size 425 indicates the amount of data stored in each server.
- FIG. 5 is a flowchart showing the entire process of determining the replica data range. Note that the master data range is determined in advance based on the memory capacity ratio of each server. In the present embodiment, there are a data-based data range determination process and a block-based data range determination process as data range determination processing methods.
- step S501 the data range management unit determines whether server load information is stored. When server load information is stored (S501: Yes), the process proceeds to S503. If not stored (S501: No), the process proceeds to S507. By determining whether or not server load information is stored, it is grasped whether the system is operating or not.
- step S503 the data range management unit determines whether an estimate of the amount of data to be processed by each server is set. When the estimation of the data amount is set (S503: Yes), the process proceeds to S507. If not set (S503: No), the process proceeds to S505. Estimating the amount of data refers to an estimated value of the amount of data stored in the system.
- the data range management unit executes a data range determination process based on the data position.
- the data range determination process based on the data range will be described in detail with reference to FIG.
- the data range management unit executes block determination processing.
- the block determination process a block determination process using distribution information as an input or a block determination process using density information as an input is performed. The block determination process will be described in detail with reference to FIGS.
- step S509 the data range management unit executes block-based data range determination processing.
- the block-based data range determination process will be described in detail with reference to FIG.
- the data range management unit shares the configuration information of all the machines in the system.
- the block-based data range determination process can optimize the system even when the amount of data existing at a predetermined data position is uncertain, the amount of data stored mainly in the server before the system is operated, etc. Suitable for unpredictable situations.
- the block-based data range determination process can be optimized in real time according to the server load information 315, and is therefore suitable when the amount of data can be estimated mainly during system operation.
- FIG. 6 is a diagram illustrating a data range reference data range determination process.
- FIG. 6A shows a flow of the data position reference data range determination process (S505 in FIG. 5).
- the machine information management unit 312 calculates the ratio of the memory amount of each server. The ratio of the memory amount is indicated by the memory capacity occupied by the own server among the memory capacity of all servers.
- the machine information management unit 312 determines whether there is a server having a memory ratio exceeding 1 / multiplicity N.
- the multiplicity N is an index indicating how many replica data are retained in the system in order to improve data reliability and fault tolerance.
- the memory amount is corrected so that the memory amount ratio becomes 1 / N or less in S605.
- the machine information management unit 312 changes the ratio of the server in which the memory amount ratio exceeds 1 / multiplicity N to 1 / multiplicity N, and transfers the data for the insufficient memory amount to another server. Allocate to When it does not exist (S603: No), it progresses to S606.
- the data range management unit 312 determines the master data range of each server according to the memory amount ratio.
- the data range management unit 312 refers to the master data range 612 of the configuration information 314, and identifies the server ID that holds the maximum data range and the maximum data range among all the servers.
- the data range management unit assigns the top data of the maximum data range as the top data of the replica data range to the server of the server ID next to the server ID having the maximum data range.
- the data width “500” from the master data range 612 to the master data range “701 to 1200” is specified as the maximum data range.
- the server ID 610 having the maximum data range is specified as “C”.
- the master data “701” that is the first data in the maximum data range is assigned to the first data in the replica data range to the server ID “D” that is the next server ID of the server ID “C” having the maximum data range.
- the server IDs are managed in descending order, but may be managed in ascending order.
- FIG. 7 shows a flow of block-based data range determination processing.
- the machine information management unit 312 calculates the ratio of the memory amount of each server. The ratio of the memory amount is indicated by the memory capacity occupied by the own server among the memory capacity of all servers.
- the machine information management unit 312 determines whether there is a server having a memory amount ratio exceeding 1 / multiplicity N. If there is a server whose memory amount ratio exceeds 1 / multiplicity N (S703: Yes), the machine information management unit 312 causes the memory amount ratio to be 1 / multiplicity N or less in S705. Correct the amount of memory.
- the memory amount is corrected by allocating data so that the ratio of servers whose memory amount ratio exceeds 1 / multiplicity N is changed. When it does not exist (S703: No), it progresses to S707.
- the data range management unit allocates a block to each server according to the memory amount ratio, and determines a master data range.
- the block determination process will be described in detail with reference to FIG. 9 (block determination method using distribution information as an input) and FIG. 11 (block determination method using density information as an input).
- the data range management unit 312 identifies the server having the largest data capacity among all the servers in the system, and identifies the number of blocks held by the server (hereinafter referred to as “maximum number of blocks”). .
- the data range management unit 312 shifts the master data range of each server by the maximum number of blocks.
- the data range management unit 312 calculates the data range of the allocated block. In the data range, the start point of the allocated first block is the start point of the data range, and the end point of the last block is the end point of the data range.
- FIG. 8 shows the relationship between the data storage destination that has performed the block-based data range determination process and the data to be stored.
- FIG. 8A shows a diagram in which a replica data range is determined by block-based data range determination processing.
- blocks having the same data amount are determined from the entire data range, a plurality of blocks are allocated to each server in accordance with the memory amount ratio, and the master data range is determined (S707 in FIG. 7).
- the server C in FIG. 8A illustrates that data of block IDs 8 to 12 are stored as master data. Then, the server C having the largest data capacity is identified from all the servers, and the maximum number of blocks held by the server C is identified as “5” (S709 in FIG. 7). Next, the number of blocks in the replica data range is shifted by “5” blocks, which is the maximum number of blocks, from the master data range of each server. In the server C, data of block IDs 3 to 7 are stored as replica data. In the same procedure, the data range of the replica data 2 is determined and multiplexing is realized.
- FIG. 8B shows the configuration information 314 of the master data and replica data held by each server corresponding to FIG. 8A. Hereinafter, the block determination method will be described.
- FIG. 9 is a flowchart showing data block determination processing using distribution information as an input.
- the machine information management unit 312 calculates a cumulative value of the system data amount from the server load information 315.
- the machine information management unit 312 calculates a data position that equally divides the data amount by the number of blocks X designated by the user, from the calculated cumulative value of the data amount. The number of data blocks can be arbitrarily set by the user.
- the machine information management unit 312 determines a data range for each block.
- FIG. 10 is an image diagram of block determination processing using distribution information as an input.
- the relationship between the data position and the data amount is represented by a bar graph, and the accumulated value of the data amount in the system is represented by a line graph.
- FIG. 10A shows a state in which a data block having the same data amount is generated as “15”, so that the block is determined by dividing the accumulated data into 15 equal parts.
- FIG. 10B is a table showing the correspondence between the blocks shown in FIG. 10A and the data ranges. In this way, in block determination processing using distribution information as input, blocks are determined from the cumulative value of the data amount in the system, so the actual data amount in the system can be grasped or the amount of data can be estimated This is a particularly effective block determination method.
- FIG. 11 shows a flow of block determination processing using density information as an input.
- FIG. 12 illustrates an image of data block determination processing using density information as an input.
- the machine information management unit calculates the data density p of all servers. The data density p is calculated from “master data amount of each server / master data range of each server”. The density p of the server A in FIG. 12 is 1 GB / 400.
- the machine information management unit 312 calculates the data amount per block.
- the number of data blocks can be arbitrarily set by the user. When the data is divided into “15” blocks in the system of FIG. 12, the total data amount is 4.5 GB / 15 blocks, and the data amount per partition is determined to be 0.3 GB.
- the machine information management unit 312 determines the data range width of each server. The data block determination process using the data density information is particularly suitable when the data is uniformly arranged in the server and the data amount per data is almost constant.
- FIG. 13 is an explanatory diagram illustrating a display example of the user operation screen according to the present embodiment.
- the user operation screen includes a table showing server load information in the system and a schematic diagram showing data managed by each server as master data or replica data.
- the table indicating the server load status includes the memory capacity and data amount of each server in the system.
- the replica data range is determined on the basis of the data position, the data range is illustrated as shown in FIG.
- the location of the master data and replica data of each server is indicated in units of data blocks as shown in (B).
- FIG. 14 is an explanatory diagram illustrating a display example of the user setting screen according to the present embodiment.
- the user setting screen includes data multiplicity, the number of data blocks, a memory threshold, a data block determination method, and the number of divided data.
- the data multiplicity a multiplicity for holding data in the system is set.
- the number of blocks of data designates the number of blocks when the data range determination process of replica data is performed on the basis of the blocks.
- the memory threshold is an index for performing data rebalance according to the memory load of the server during system operation.
- a block determination method using at least data distribution information as an input or a block determination method using data density information as an input can be selected as the block determination method.
- the replica data range can be determined according to the load status of the server with the master data range as a reference. Therefore, even if a cluster is configured with servers having different performance, it is possible to prevent a server with low performance from becoming a bottleneck of the system. In addition, since the multiplexing in which the master data range and the replica data range do not overlap can be realized, the reliability of the system can be ensured. Furthermore, by determining the data block by inputting the distribution information and density information of the system, the replica data range can be determined according to the load status of the server, so that the memory can be used efficiently.
- the various software exemplified in this embodiment can be stored in various (non-temporary) recording media such as electromagnetic, electronic and optical, and can be downloaded to a computer through a communication network such as the Internet. It is. Furthermore, in the present embodiment, an example using control by software has been described, but a part thereof can be realized by hardware.
- Server 302 Client device 303 Network 304, 317 Processor 305, 318 Main memory 306, 319 Auxiliary storage device 307 Data management unit 308 Distribution control unit 309 Management terminal 310 Data range management unit 311 Configuration information holding unit 312 Machine information management unit 313 Statistics Information management unit 314 Configuration information 315 Server load information 316 Data store
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
計算機の各々の記憶領域の容量を保持し、容量に応じて、第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する第1のデータレンジを決定し、第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる第2のデータレンジを決定することで、第2のデータを自計算機及び他の計算機の記憶領域に配置し、第1及び第2のデータレンジに従って、データを計算機の各々の記憶領域に配置することを特徴とする。
例えば、計算機A~Eから構成されるシステムにおいて、計算機Bは、マスタデータレンジとして「400~700」のデータを、レプリカデータレンジとして「1401~1500」、「1~200」のデータを管理していることを示している。各計算機にデータを分散させる方法は、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。
次に、S102で、各サーバが保持するマスタデータレンジから、データレンジが最大であるデータレンジ(以下、「最大データレンジ」という。)を特定する。
さらに、S103で、最大データレンジに基づいて、各サーバが保持するレプリカデータレンジを決定する。本発明を適用した一実施形態では、データ位置あるいはデータ量を基準としてレプリカデータレンジを決定する。
計算機システムは、複数のサーバ301、クライアント装置302及びネットワーク303から構成される。各サーバ301間及びサーバ301とクライアント装置302との間は、ネットワーク303を介して互いに接続される。
ネットワーク303は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本実施形態では、サーバ301及びクライアント装置302が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク303には、複数のネットワーク装置が含まれる。ネットワーク装置は、例えばスイッチあるいはゲートウェイ等が含まれる。
さらに、主記憶装置305上には、KVSを構成するデータベースであるデータストア316が格納される。データストア316には、キーと、バリューとを一組としたデータが格納される。
分散制御部308は、データ多重度、データのブロック数、メモリ閾値及びデータブロックの決定方法等、各種設定項目の変更を制御する。制御は、例えば図14に示すユーザ設定画面により行う。
サーバID401は、サーバを一意に識別するための識別子を格納する。マスタデータレンジ402には、各サーバのマスタデータのデータレンジを示す値が格納される。レプリカデータレンジ403には、各サーバのレプリカデータのデータレンジを示す値が格納される。
サーバID410、マスタデータ及びレプリカデータのデータレンジ412は、図4Bと同様である。ブロックID411及び413は、複数のデータを組み合わせて管理するための識別子である。例えば、ブロックID411が「1」のデータは、マスタデータレンジ412から「1~150」のデータで構成されていることを示す。
サーバID420は、サーバを一意に識別するための識別子を格納する。メモリサイズ423は、各サーバが有するメモリ容量を示す。
データサイズ425は、各サーバが格納するデータ量を示す。
S503で、データレンジ管理部が、各サーバで処理されるデータ量の見積もりが設定されているかを判定する。データ量の見積もりが設定されている場合(S503:Yes)、S507に進む。設定されていない場合(S503:No)、S505に進む。データ量の見積もりとは、システム内に格納されるデータ量の推定値をいう。
S507で、データレンジ管理部が、ブロック決定処理を実行する。本実施形態では、ブロック決定処理として、分布情報を入力としたブロック決定処理あるいは密度情報を入力としたブロック決定処理を行う。ブロック決定処理については、図9及び図11を用いて詳細に説明する。
S511で、データレンジ管理部が、システム内の全マシンの構成情報を共有する。
S601で、マシン情報管理部312が、各サーバのメモリ量の比率を算出する。メモリ量の比率とは、全サーバのメモリ容量のうち自サーバの占めるメモリ容量で示される。
S603で、マシン情報管理部312が、メモリ量の比率が1/多重度Nを超えているサーバが存在するか否かを判定する。多重度Nは、データの信頼性及び耐障害性を向上させるため、レプリカデータをシステム内にいくつ保持させるかを示す指標である。メモリ量の比率を1/多重度Nに制限することで、サーバ間のメモリ性能差が大きい場合でも、同一サーバで、マスタデータと、そのマスタのレプリカデータのデータレンジが重複しない多重化を実現することができる。
S607で、データレンジ管理部312が、構成情報314のマスタデータレンジ612を参照し、全サーバの中から最大データレンジ及び最大データレンジを保持するサーバIDを特定する。
S609で、データレンジ管理部が、最大データレンジをもつサーバIDの次のサーバIDのサーバに、レプリカデータレンジの先頭のデータとして最大データレンジの先頭のデータを割り当てる。
S701で、マシン情報管理部312が、各サーバのメモリ量の比率を算出する。メモリ量の比率とは、全サーバのメモリ容量のうち自サーバの占めるメモリ容量で示される。
S703で、マシン情報管理部312が、メモリ量の比率が1/多重度Nを超えているサーバが存在するか否かを判定する。メモリ量の比率が1/多重度Nを超えているサーバが存在する場合(S703:Yes)、S705で、マシン情報管理部312が、メモリ量の比率が1/多重度N以下になるようにメモリ量を補正する。メモリ量の補正は、データ位置基準のデータレンジ決定処理と同様に、メモリ量の比率が1/多重度Nを超過したサーバの比率を変更するようにデータを割り振ることで実現する。存在しない場合(S703:No)、S707に進む。
S709で、データレンジ管理部312が、システム内の全サーバの中からデータ容量が最大であるサーバを特定し、当該サーバが保持するブロック数(以下、「最大ブロック数」という。)を特定する。
S711で、データレンジ管理部312が、各サーバのマスタデータレンジを最大ブロック数分ずらす。
S713で、データレンジ管理部312が、割り当てたブロックのデータレンジを算出する。データレンジは、割り当てられた先頭のブロックの始点をデータレンジの開始点とし、後尾のブロックの終点をデータレンジの終了点とする。
図9は、分布情報を入力としたデータブロック決定処理を示すフローである。
S901で、マシン情報管理部312が、サーバ負荷情報315からシステムのデータ量の累積値を算出する。
S903で、マシン情報管理部312が、算出したデータ量の累積値から、ユーザ指定のブロック数Xでデータ量を等分するデータ位置を算出する。なお、データのブロック数は、ユーザが任意に設定できる。
S905で、マシン情報管理部312が、ブロック毎のデータレンジを決定する。
図10Aに示すように、データ位置とデータ量の関係を棒グラフで表現し、システム内のデータ量の累積値を線グラフで表現する。図10Aはデータ量が同一のデータブロックを「15」生成するため、データの累積値を15等分しブロックを決定した様子を描いている。
図10Bは、図10Aに示すブロックとデータレンジとの対応を示す表である。
このように、分布情報を入力とするブロック決定処理では、システム内のデータ量の累積値からブロックを決定するため、システム内の実データ量が把握できる場合や、データ量の見積もりが可能な場合に特に有効なブロック決定方法である。
S1101で、マシン情報管理部が、全サーバのデータ密度pを算出する。データ密度pは、「各サーバのマスタデータ量/各サーバのマスタデータレンジ」から算出する。図12のサーバAの密度pは、1GB/400となる。
S1103で、マシン情報管理部312が、システム内に存在するサーバの全データ量の合計値を算出する。図12に示すシステムでは、サーバA~Eが格納する全データ量は、いま1GB+1GB+1.5GB+0.5GB+0.5GB=4.5GBと求められる。
S1105で、マシン情報管理部312が、ブロック毎のデータレンジを決定する。データレンジは、各サーバのデータ密度p及び1ブロックあたりのデータ量とから算出する。例えば、サーバAのデータ密度pが1GB/400であり、1ブロックあたりのデータ量を0.3GBとするとき、データレンジは「0.3GB/(1GB/400)=120」と算出される。
S1107で、マシン情報管理部312が、各サーバのデータレンジ幅を決定する。
データ密度情報を用いたデータブロック決定処理は、データがサーバ内に均一に配置されかつ1データあたりのデータ量がほぼ一定であるような場合、特に適する。
サーバ負荷状況を示すテーブルには、システム内の各サーバのメモリ容量及びデータ量が含まれる。
データ模式図は、データ位置基準でレプリカデータレンジを決定した場合には、(A)のようにデータレンジが図示される。また、データブロック基準でレプリカデータレンジを決定した場合には、(B)のようにデータブロック単位で各サーバのマスタデータ及びレプリカデータの所在が示される。
データ多重度には、システム内でデータを保持させる多重度を設定する。データのブロック数は、ブロックを基準としてレプリカデータのデータレンジ決定処理をするときのブロック数を指定するものである。
メモリ閾値は、システム稼動中にサーバのメモリ負荷に応じてデータのリバランスを行う指標になる。
本実施形態では、少なくともデータの分布情報を入力としたブロック決定方法あるいはデータの密度情報を入力としたブロック決定方法をブロック決定方法として選択することができる。
また、マスタデータレンジとレプリカデータレンジとが重複しない多重化を実現できるため、システムの信頼性を確保することができる。
さらに、システムの分布情報や密度情報を入力としてデータのブロックを決定することで、サーバの負荷状況に応じてレプリカデータレンジを決定することができるため、効率的にメモリを使用することができる。
さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
302 クライアント装置
303 ネットワーク
304、317 プロセッサ
305、318 主記憶
306、319 補助記憶装置
307 データ管理部
308 分散制御部
309 管理端末
310 データレンジ管理部
311 構成情報保持部
312 マシン情報管理部
313 統計情報管理部
314 構成情報
315 サーバ負荷情報
316 データストア
Claims (15)
- データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、他の計算機の記憶領域に配置される計算機であって、
前記計算機は、
前記計算機の各々の前記記憶領域の容量を保持し、前記容量に応じて、前記第1のデータを自計算機及び前記複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定し、
前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び前記他の計算機の記憶領域に配置するための第2のデータレンジを決定し、
前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置する
ことを特徴とする計算機。 - 請求項1に記載の計算機であって、
前記自計算機は、
前記自計算機及び他の計算機の計算機IDを管理し、
前記容量に応じて、前記計算機IDの順序に従って前記データを前記計算機の各々に配置するための第1のデータレンジを決定し、
前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジから、前記計算機IDの順序に従って前記第2のデータを前記計算機の各々に配置する前記第2のデータレンジを決定する
ことを特徴とする計算機。 - 請求項2に記載の計算機であって、
前記計算機は、
前記最大のデータレンジあるいは前記最大のリソース量を有する第1の計算機に配置されるデータレンジの先頭が、前記計算機IDの順序に従って前記第1の計算機の次の計算機に割り当てられるデータのデータレンジの先頭となる前記第2のデータレンジを決定する
ことを特徴とする計算機。 - 請求項3に記載の計算機であって、
前記計算機は、
前記データを複数組み合わせてデータブロックを生成し、
前記計算機の各々の記憶領域の容量に応じて、前記計算機の各々に前記データブロックを割り当て、
前記割り当てたデータブロックの数により最大データサイズを決定する
ことを特徴とする計算機。 - 請求項4に記載の計算機であって、
前記計算機は、
前記データ一つあたりのデータサイズと、前記データの数とから、全ての計算機が保持するデータの全データサイズを算出し、
前記全データサイズと、データブロックの数とから、等しいデータサイズのデータブロックを生成する
ことを特徴とする計算機。 - 請求項4に記載の計算機であって、
前記計算機は、
前記計算機の各々の前記容量と、前記第1のデータレンジとから前記各計算機のデータ密度を算出し、
前記データ一つあたりのデータサイズと前記データの数から、全ての計算機が保持するデータの全データサイズを算出して、
前記全データサイズと前記データ密度とから、データブロック一つあたりのデータサイズを決定してデータブロックを生成する
ことを特徴とする計算機。 - 請求項3に記載の計算機であって、
前記計算機は、
キー・バリュー型のデータを前記記憶領域に配置することを特徴とする計算機。 - データを格納する記憶領域を有する複数の計算機が通信可能に接続され、第1のデータが配置される前記記憶領域と、前記第1のデータの複製データである第2のデータが配置される前記記憶領域とが互いに異なる計算機に含まれる計算機システムの制御装置であって、
前記制御装置が、
前記複数の計算機の前記記憶領域の容量を保持し、前記容量に応じて前記各第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定し、
前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び他の計算機の記憶領域に配置するための第2のデータレンジを決定し、
前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置する
ことを特徴とする制御装置。 - 請求項8に記載の制御装置であって、
前記制御装置は、
前記計算機の計算機IDを管理し、
前記容量に応じて、前記計算機IDの順序に従って前記データを前記計算機の各々に配置するための第1のデータレンジを決定し、
前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジから、前記計算機IDの順序に従って前記第2のデータを前記計算機の各々に配置する前記第2のデータレンジを決定する
ことを特徴とする制御装置。 - 請求項9に記載の制御装置であって、
前記制御装置が、
前記最大のデータレンジあるいは前記最大のリソース量を有する第1の計算機に配置されるデータレンジの先頭が、前記計算機IDの順序に従って前記第1の計算機の次の計算機に割り当てられるデータのデータレンジの先頭となる前記第2のデータレンジを決定する
ことを特徴とする制御装置。 - 請求項10に記載の制御装置であって、
前記制御装置が、
前記データを複数組み合わせてデータブロックを生成し、
前記計算機の各々の記憶領域の容量に応じて、前記計算機の各々に前記データブロックを割り当て、
前記割り当てたデータブロックの数により最大データサイズを決定する
ことを特徴とする制御装置。 - 請求項11に記載の制御装置であって、
前記制御装置が、
前記データ一つあたりのデータサイズと前記データの数とから、全ての計算機が保持するデータの全データサイズを算出し、
前記全データサイズと、データブロックの数とから、等しいデータサイズのデータブロックを生成する
ことを特徴とする制御装置。 - 請求項11に記載の制御装置であって、
前記制御装置が、
前記計算機の各々の前記容量と前記第1のデータレンジとから前記計算機の各々のデータ密度を算出し、
前記データ一つあたりのデータサイズと前記データの数から、全ての計算機が保持するデータの全データサイズを算出して、
前記全データサイズと前記データ密度とから、データブロック一つあたりのデータサイズを決定してデータブロックを生成する
ことを特徴とする制御装置。 - 請求項10に記載の制御装置であって、
前記制御装置が、
キー・バリュー型のデータを前記記憶領域に配置することを特徴とする制御装置。 - データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、前記他の計算機の記憶領域に配置される計算機に、
前記計算機の各々の前記記憶領域の容量を保持させ、前記容量に応じて、前記第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定させるステップと、
前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び他の計算機の記憶領域に配置するための第2のデータレンジを決定させるステップと、
前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置させるステップと
を実行させるプログラムを格納するコンピュータ読取可能な非一時的な記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12890841.5A EP2940587A4 (en) | 2012-12-28 | 2012-12-28 | COMPUTER, CONTROL DEVICE FOR COMPUTER SYSTEM AND RECORDING MEDIUM |
JP2014553988A JP5853109B2 (ja) | 2012-12-28 | 2012-12-28 | 計算機、計算機システムの制御装置及び記録媒体 |
PCT/JP2012/084020 WO2014102997A1 (ja) | 2012-12-28 | 2012-12-28 | 計算機、計算機システムの制御装置及び記録媒体 |
US14/424,375 US9805109B2 (en) | 2012-12-28 | 2012-12-28 | Computer, control device for computer system, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/084020 WO2014102997A1 (ja) | 2012-12-28 | 2012-12-28 | 計算機、計算機システムの制御装置及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014102997A1 true WO2014102997A1 (ja) | 2014-07-03 |
Family
ID=51020148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/084020 WO2014102997A1 (ja) | 2012-12-28 | 2012-12-28 | 計算機、計算機システムの制御装置及び記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9805109B2 (ja) |
EP (1) | EP2940587A4 (ja) |
JP (1) | JP5853109B2 (ja) |
WO (1) | WO2014102997A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5956064B2 (ja) * | 2013-04-01 | 2016-07-20 | 株式会社日立製作所 | 計算機システム、データ管理方法、及び計算機 |
US20160306810A1 (en) * | 2015-04-15 | 2016-10-20 | Futurewei Technologies, Inc. | Big data statistics at data-block level |
US11030218B2 (en) | 2017-08-10 | 2021-06-08 | Hitachi, Ltd. | Computer system and data processing method |
US11176264B2 (en) | 2019-08-20 | 2021-11-16 | Bank Of America Corporation | Data access control using data block level decryption |
US11741248B2 (en) | 2019-08-20 | 2023-08-29 | Bank Of America Corporation | Data access control using data block level encryption |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048424A (ja) | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | 識別子割当て方法及びプログラム |
WO2012140957A1 (ja) * | 2011-04-13 | 2012-10-18 | 株式会社日立製作所 | 情報記憶システム及びそのデータ複製方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000268507A (ja) * | 1999-03-19 | 2000-09-29 | Hitachi Ltd | データ記録装置 |
EP1162537B1 (en) * | 2000-06-09 | 2007-09-26 | Hewlett-Packard Company, A Delaware Corporation | Utilization of unused disk space on networked computers |
JP4124348B2 (ja) * | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | 記憶システム |
JP4715286B2 (ja) * | 2004-05-11 | 2011-07-06 | 株式会社日立製作所 | 計算機システムおよび計算機システムの制御方法 |
US20050257014A1 (en) * | 2004-05-11 | 2005-11-17 | Nobuhiro Maki | Computer system and a management method of a computer system |
JP4849960B2 (ja) * | 2006-05-31 | 2012-01-11 | 株式会社日立製作所 | レプリケーションボリュームの容量拡張方法 |
TW200828923A (en) * | 2006-12-25 | 2008-07-01 | Inst Information Industry | Wireless network scheduling control system and method thereof and computer readable recording media |
CN101316321B (zh) * | 2007-05-30 | 2010-04-07 | 展讯通信(上海)有限公司 | 一种基于中值滤波器的图像噪声去除方法和装置 |
JP4990066B2 (ja) * | 2007-08-21 | 2012-08-01 | 株式会社日立製作所 | 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム |
JP5156310B2 (ja) * | 2007-09-19 | 2013-03-06 | 株式会社日立製作所 | バックアップ構成の構築を支援する方法及び計算機 |
US8094813B2 (en) * | 2008-09-02 | 2012-01-10 | Apple Inc. | System and method for modulus obfuscation |
CN100581169C (zh) * | 2008-08-21 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于单播会话密钥的组播密钥分发方法及其更新方法 |
KR101323457B1 (ko) * | 2008-12-10 | 2013-10-29 | 엘지디스플레이 주식회사 | 평판표시장치의 표시결함 보상방법 및 장치 |
US8437870B2 (en) * | 2009-06-05 | 2013-05-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | System and method for implementing a virtual metrology advanced process control platform |
US20120323108A1 (en) * | 2011-06-17 | 2012-12-20 | Carroll Robert G | Methods and apparatus for assessing activity of an organ and uses thereof |
-
2012
- 2012-12-28 JP JP2014553988A patent/JP5853109B2/ja active Active
- 2012-12-28 WO PCT/JP2012/084020 patent/WO2014102997A1/ja active Application Filing
- 2012-12-28 EP EP12890841.5A patent/EP2940587A4/en not_active Withdrawn
- 2012-12-28 US US14/424,375 patent/US9805109B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048424A (ja) | 2010-08-25 | 2012-03-08 | Nippon Telegr & Teleph Corp <Ntt> | 識別子割当て方法及びプログラム |
WO2012140957A1 (ja) * | 2011-04-13 | 2012-10-18 | 株式会社日立製作所 | 情報記憶システム及びそのデータ複製方法 |
Non-Patent Citations (3)
Title |
---|
HOUSSEM-EDDINE CHIHOUB: "Harmony: Towards Automated Self-Adaptive Consistency in Cloud Storage", 2012 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING, 28 September 2012 (2012-09-28), pages 293 - 301, XP032266174 * |
See also references of EP2940587A4 * |
SHUNSUKE SHIINA: "Cloud Jidai no Data Store Cassandra kara Nozoku NoSQL no Sekai", BIG DATA O SEISU CLOUD NO GIJUTSU HADOOP & NOSQL, 25 April 2011 (2011-04-25), pages 90 - 97, XP008176678 * |
Also Published As
Publication number | Publication date |
---|---|
US20150220612A1 (en) | 2015-08-06 |
JP5853109B2 (ja) | 2016-02-09 |
JPWO2014102997A1 (ja) | 2017-01-12 |
US9805109B2 (en) | 2017-10-31 |
EP2940587A1 (en) | 2015-11-04 |
EP2940587A4 (en) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520720B1 (en) | Weighted resource allocation for workload scheduling | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US10437486B2 (en) | Method and apparatus for tenant-aware storage sharing platform | |
US9525731B2 (en) | Robust tenant placement and migration in database-as-a-service environments | |
JP5124551B2 (ja) | ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法 | |
US10346075B2 (en) | Distributed storage system and control method for distributed storage system | |
US11847098B2 (en) | Metadata control in a load-balanced distributed storage system | |
JP6434131B2 (ja) | 分散処理システム、タスク処理方法、記憶媒体 | |
JP5853109B2 (ja) | 計算機、計算機システムの制御装置及び記録媒体 | |
US10061781B2 (en) | Shared data storage leveraging dispersed storage devices | |
CN105027068A (zh) | 在存储***中执行复制 | |
US20180067975A1 (en) | Computer system and data processing method | |
JP6017032B2 (ja) | ストレージシステム及びストレージ制御方法 | |
US9984139B1 (en) | Publish session framework for datastore operation records | |
JP2008084053A (ja) | 仮想化システム及び領域割当て制御方法 | |
JP2020154587A (ja) | 計算機システム及びデータ管理方法 | |
WO2018120939A1 (zh) | 一种存储***扩容后数据迁移的方法、存储*** | |
US20170206027A1 (en) | Management system and management method of computer system | |
JP5964950B2 (ja) | 計算機システム、データ配置管理方法及びプログラム | |
JPWO2013118270A1 (ja) | 計算機システム、データ管理方法及びプログラム | |
WO2021187194A1 (ja) | 分散処理システム、分散処理システムの制御方法、及び、分散処理システムの制御装置 | |
Fazul et al. | PRBP: A prioritized replica balancing policy for HDFS balancer | |
JP6172294B2 (ja) | トランザクション分散処理装置、方法、システム、および、記憶媒体 | |
US11861423B1 (en) | Accelerating artificial intelligence (‘AI’) workflows | |
JP6773755B2 (ja) | ストレージ装置及びストレージ装置における構成管理リクエストの処理方法 |
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: 12890841 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014553988 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14424375 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012890841 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |