WO2014102997A1 - 計算機、計算機システムの制御装置及び記録媒体 - Google Patents

計算機、計算機システムの制御装置及び記録媒体 Download PDF

Info

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
Application number
PCT/JP2012/084020
Other languages
English (en)
French (fr)
Inventor
洋祐 和田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to EP12890841.5A priority Critical patent/EP2940587A4/en
Priority to US14/424,375 priority patent/US9805109B2/en
Priority to JP2014553988A priority patent/JP5853109B2/ja
Priority to PCT/JP2012/084020 priority patent/WO2014102997A1/ja
Publication of WO2014102997A1 publication Critical patent/WO2014102997A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed 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

 データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、他の計算機の記憶領域に配置される計算機であって、計算機は、計算機の各々の記憶領域の容量を保持し、容量に応じて、第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する第1のデータレンジを決定し、第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる第2のデータレンジを決定して、データを計算機の各々の記憶領域に配置する。

Description

計算機、計算機システムの制御装置及び記録媒体
 本発明は、複数の計算機にデータが分散して配置されるシステムに関し、特にマスタデータとレプリカデータを分散配置するシステムに関する。
 近年、Webを用いたアプリケーションを実行する計算機システムでは、データ量が爆発的に増大しており、複数の計算機にデータを分散させることによって、データへのアクセス性能を向上させるシステムが様々知られている。例えば、RDBMS(Relational DataBase Management System)では、データを所定のレンジ毎に分割し、分割されたデータを複数の計算機に配置することによって、システム全体のアクセス性能を向上させる方法が知られている。
 また、キャッシュサーバ等に用いられるシステムとして、データの識別子(キー)と、データ値(バリュー)とから構成されるキャッシュデータを所定の分散方法にしたがって、複数の計算機システムに配置するKVS(Key Value Store)等のNoSQL(Not only SQL)データベースが知られている。
 KVSでは、データに高速にアクセス可能な揮発性の記憶媒体、例えばメインメモリに、データを格納する構成、データ格納の永続性に優れる不揮発性の記録媒体、例えばSSD(Solid State Drive)やHDD等に、データを格納する構成又は前述したものを併用する構成等の種々の構成がとられている。
 併用する構成では、高速アクセス性重視や格納性重視等の種々の運用方針によって、複数台の計算機のメモリを統合して構成されるメモリストア及び1台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。
 メモリストア及びディスクストアには、データの識別子(キー)と、データ値(バリュー)とをペアにしたデータが格納される。
 また、KVSでは、複数のサーバからクラスタが構成され、各サーバにデータを分散して配置することによって並列処理を実現している。具体的には、サーバが管理するデータ管理範囲(以下、「データレンジ」という。)毎に、各サーバにデータが格納される。各サーバは、担当するデータレンジに含まれるデータ(以下、「マスタデータ」という。また、マスタデータのデータレンジを、以下、「マスタデータレンジ」という。)の処理を実行する。即ち所定のキーを含む読み出し要求に対して、そのキーが含まれるデータレンジのデータを担当するサーバが、キーに対応するデータを読み出すこととなる。これにより、KVSでは、スケールアウトによって並列処理の性能を向上させることができる。
 KVSでは、データの信頼性を確保するために、クラスタを構成するサーバが他のサーバが管理するデータの複製データ(以下、「レプリカデータ」という。また、レプリカデータのデータレンジを、以下、「レプリカデータレンジ」という。)を格納する構成をとるものが知られている。即ち各サーバは、所定のデータレンジに含まれるデータを管理するマスタであると同時に、他のサーバが管理するデータのレプリカデータを保持するスレーブでもある。これによって、サーバに障害が発生した場合であっても、その障害サーバがマスタとして管理するデータをレプリカデータとして保持する他のサーバが、処理を継続することができ、耐障害性を確保している。
 特許文献1には、上記で説明したKVSにおいてサーバにマスタデータを保持させる方法として、特定のサーバのマスタデータレンジを分割し、分割したマスタデータを隣接するサーバに保持させることで単一のサーバに対する負荷増大を防ぐ技術が開示されている。
特開2012-48424号公報
 しかし、特許文献1に記載の技術では、サーバのメモリ容量を効率的に利用するマスタデータ及びレプリカデータのデータレンジを決定することについては記載がない。例えば、マスタデータのデータ量が大きいサーバのレプリカデータを、空きのメモリ容量が小さいサーバに保持させる場合、ページアウトが発生し、ディスクに格納されたデータにアクセスしなければならないため、データアクセスの速度性能が低下する。反対に、マスタデータのデータ量が小さいサーバのレプリカデータを、空きのメモリ容量が大きいサーバに保持させる場合、使用されないメモリ領域が増え、メモリの使用効率が低下する。さらに、サーバの利用状況に応じて各サーバに格納するデータ量が変動するような場合、データ量の変動に応じて効率的にメモリを使用することはできない。
 本発明の代表的な一形態は、データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、他の計算機の記憶領域に配置される計算機であって、計算機は、
計算機の各々の記憶領域の容量を保持し、容量に応じて、第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する第1のデータレンジを決定し、第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる第2のデータレンジを決定することで、第2のデータを自計算機及び他の計算機の記憶領域に配置し、第1及び第2のデータレンジに従って、データを計算機の各々の記憶領域に配置することを特徴とする。
 本発明によれば、耐障害性を維持しながら、システムの速度性能及びメモリ使用効率を高めることができる。
本願発明を適用する計算機システムの前提技術として各計算機と各計算機が管理するデータレンジの関係とを示す図である。 本願発明を適用した一実施形態の計算機システムの処理の概要を示す図である。 本実施形態の計算機システムにおける計算機システムの全体構成を示す図である。 本実施形態の計算機システムにおける構成情報の一例を示す図である。 本実施形態の計算機システムにおけるブロック単位でデータ管理する場合の構成情報の一例を示す図である。 本実施形態の計算機システムにおけるサーバ負荷情報の一例を示す図である。 本実施形態の計算機システムにおけるデータレンジ管理部が実行するデータレンジ決定処理の流れを示すフローチャートである。 本実施形態の計算機システムにおけるマシン情報管理部が実行するデータ位置基準のデータレンジ決定処理の流れを示すフローチャートである。 本実施形態の計算機システムにおけるデータ位置基準のデータレンジ決定処理を実行し、レプリカデータのデータレンジを決定した一例を示す図である。 本実施形態の計算機システムにおけるマシン情報管理部が実行するブロック基準のデータレンジ決定処理の流れを示すフローチャートである。 本実施形態の計算機システムにおけるブロック基準のデータレンジ決定処理を実行し、レプリカデータのデータレンジを決定した一例を示す図である。 本実施形態の計算機システムにおける図8Aに対応するマスタデータ及びレプリカデータの構成情報の一例を示す図である。 本実施形態の計算機システムにおけるマシン情報管理部が実行する分布情報を入力としたデータブロック決定処理を示すフローチャートである。 本実施形態の計算機システムにおける分布情報を入力としたブロック決定の一例を示す図である。 本実施形態の計算機システムにおける図10Aに対応するブロックIDの構成情報の一例を示す図である。 本実施形態の計算機システムにおけるマシン情報管理部が行う密度情報を入力としたブロック決定処理のフローチャートである。 本実施形態の計算機システムにおける密度情報を入力としたデータブロック決定処理のイメージ図である。 本実施形態の計算機システムにおけるユーザ操作画面の表示例を示す図である。 本実施形態の計算機システムにおけるユーザ設定画面の表示例を示す図である。
 図1は、本発明を適用する一実施形態である計算機システムの各計算機と各計算機が管理するデータレンジの関係とを示す図である。
  例えば、計算機A~Eから構成されるシステムにおいて、計算機Bは、マスタデータレンジとして「400~700」のデータを、レプリカデータレンジとして「1401~1500」、「1~200」のデータを管理していることを示している。各計算機にデータを分散させる方法は、Consistent Hashing法、Range法及びList法等の種々の方法が用いられる。
 図2は、本発明を適用した一実施形態の処理の概要を簡単に説明した図である。  まず、S101で、全データレンジから各サーバのマスタデータレンジを決定する。マスタデータレンジは、各サーバのメモリ容量比に基づいて決定される。
  次に、S102で、各サーバが保持するマスタデータレンジから、データレンジが最大であるデータレンジ(以下、「最大データレンジ」という。)を特定する。
  さらに、S103で、最大データレンジに基づいて、各サーバが保持するレプリカデータレンジを決定する。本発明を適用した一実施形態では、データ位置あるいはデータ量を基準としてレプリカデータレンジを決定する。
 図3は、本発明を適用した実施形態である計算機システムの全体構成を示す。
  計算機システムは、複数のサーバ301、クライアント装置302及びネットワーク303から構成される。各サーバ301間及びサーバ301とクライアント装置302との間は、ネットワーク303を介して互いに接続される。
  ネットワーク303は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本実施形態では、サーバ301及びクライアント装置302が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク303には、複数のネットワーク装置が含まれる。ネットワーク装置は、例えばスイッチあるいはゲートウェイ等が含まれる。
 サーバ301は、プロセッサ304、主記憶装置305及び補助記憶装置306を備え、KVSを構成する計算機である。本実施形態では図示していないが、ネットワーク303と接続するためのネットワークインタフェースを備える。サーバ301は、クライアント装置302からの要求にしたがってデータの読出処理や書込処理を実行し、クライアントに処理結果を返す。なお、各サーバ301の構成は同一であるものとする。
 プロセッサ304は、主記憶装置305に格納されるプログラムを実行する。プロセッサ304が、プログラムを実行することによって、サーバ301が備える機能を実現することができる。
 主記憶装置305は、プロセッサ304が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。
 本実施形態の主記憶装置305には、データ管理部307、分散制御部308、データレンジ管理部310、構成情報保持部311、マシン情報管理部312及び統計情報管理部313を実現するためのプログラムが格納される。また、主記憶装置305には、構成情報314及びサーバ負荷情報315が保持される。
  さらに、主記憶装置305上には、KVSを構成するデータベースであるデータストア316が格納される。データストア316には、キーと、バリューとを一組としたデータが格納される。
 データ管理部307は、サーバ301が管理するデータに対する各種処理を制御する。データ管理部307は、クライアント装置302からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。
  分散制御部308は、データ多重度、データのブロック数、メモリ閾値及びデータブロックの決定方法等、各種設定項目の変更を制御する。制御は、例えば図14に示すユーザ設定画面により行う。
 データレンジ管理部310は、各サーバが格納するマスタデータ及びレプリカデータの格納先を管理する。構成情報保持部311は、構成情報314を管理する。マシン情報管理部312は、レプリカデータのデータレンジ決定処理を実行する。統計情報管理部313は、各サーバ301の負荷に関する情報を取得し、取得された情報に基づいてサーバ負荷情報315を更新する。
 クライアント装置302は、ネットワークを介してサーバに対し処理要求を送信する。なお、クライアント装置302には、管理端末309が接続され、管理端末309から処理要求が送信されることもある。
 プロセッサ317は、主記憶装置318に格納されるプログラムを実行する。主記憶装置318には、CPUとプログラムとの協働により、データ管理部307、分散制御部308、データレンジ管理部310、構成情報管理部311、マシン情報管理部312、統計情報管理部313が構成される。以下、プログラムを主語に処理を説明する場合には、プロセッサ317によって、プログラムが実行されていることを示す。
 図4は、計算機システムにおいてテーブルとして管理する構成情報314及びサーバ負荷情報315の一例を示す模式図である。構成情報314は、各サーバが管理するデータレンジに関する情報を格納する。各サーバは、図4A及び図4Bに示す構成情報314を格納してもよいし、いずれか一方の構成情報314のみを格納するのでもよい。
 図4Aの構成情報314は、サーバID401、マスタデータレンジ402及びレプリカデータレンジ403を含む。
  サーバID401は、サーバを一意に識別するための識別子を格納する。マスタデータレンジ402には、各サーバのマスタデータのデータレンジを示す値が格納される。レプリカデータレンジ403には、各サーバのレプリカデータのデータレンジを示す値が格納される。
 図4Bの構成情報314は、複数のデータを組み合わせて一つのデータセット(以下、「ブロック」という。)としてデータを管理する場合に用いられる構成情報である。図4Bの構成情報314は、サーバID410、マスタデータのブロックID411、ブロックID411に対応するデータレンジ412及びレプリカデータのブロックID413を含む。
  サーバID410、マスタデータ及びレプリカデータのデータレンジ412は、図4Bと同様である。ブロックID411及び413は、複数のデータを組み合わせて管理するための識別子である。例えば、ブロックID411が「1」のデータは、マスタデータレンジ412から「1~150」のデータで構成されていることを示す。
 図4Cのサーバ負荷情報315は、システムを構成するサーバの負荷情報の一例を示す図である。サーバ負荷情報315は、サーバID420、メモリサイズ423及びデータサイズ425を含む。その他、サーバのCPU使用率やネットワーク使用率等の情報を有してもよい。
  サーバID420は、サーバを一意に識別するための識別子を格納する。メモリサイズ423は、各サーバが有するメモリ容量を示す。
  データサイズ425は、各サーバが格納するデータ量を示す。
 図5は、レプリカデータレンジ決定の全体処理を示すフローである。なお、マスタデータレンジは、各サーバのメモリ容量比に基づいて予め決定されているものとする。本実施形態には、データレンジ決定処理の方法として、データ基準のデータレンジ決定処理及びブロック基準のデータレンジ決定処理がある。
 S501で、データレンジ管理部が、サーバの負荷情報を格納しているかを判定する。サーバの負荷情報を格納している場合(S501:Yes)、S503に進む。格納していない場合(S501:No)、S507に進む。サーバの負荷情報を格納しているか否かを判定することで、システム稼動前あるいは稼動中かを把握する。
  S503で、データレンジ管理部が、各サーバで処理されるデータ量の見積もりが設定されているかを判定する。データ量の見積もりが設定されている場合(S503:Yes)、S507に進む。設定されていない場合(S503:No)、S505に進む。データ量の見積もりとは、システム内に格納されるデータ量の推定値をいう。
 S505で、データレンジ管理部が、データ位置基準のデータレンジ決定処理を実行する。データレンジ基準のデータレンジ決定処理については、図6を用いて詳細に説明する。
  S507で、データレンジ管理部が、ブロック決定処理を実行する。本実施形態では、ブロック決定処理として、分布情報を入力としたブロック決定処理あるいは密度情報を入力としたブロック決定処理を行う。ブロック決定処理については、図9及び図11を用いて詳細に説明する。
 S509で、データレンジ管理部が、ブロック基準のデータレンジ決定処理を実行する。ブロック基準のデータレンジ決定処理については、図7を用いて詳細に説明する。
  S511で、データレンジ管理部が、システム内の全マシンの構成情報を共有する。
 データ基準のデータレンジ決定処理は、所定のデータ位置に存在するデータ量が不確定な場合にもシステム最適化を図ることができるため、主にシステム稼動前等のサーバに格納されるデータ量が予測不能な場合に適している。ブロック基準のデータレンジ決定処理は、サーバ負荷情報315に応じてリアルタイムにシステムの最適化を図ることができるため、主にシステム稼動中でデータ量を見積もることができる場合に適している。
 図6は、データ位置基準のデータレンジ決定処理を示す図である。図6Aは、データ位置基準のデータレンジ決定処理(図5のS505)のフローを示す。
  S601で、マシン情報管理部312が、各サーバのメモリ量の比率を算出する。メモリ量の比率とは、全サーバのメモリ容量のうち自サーバの占めるメモリ容量で示される。
  S603で、マシン情報管理部312が、メモリ量の比率が1/多重度Nを超えているサーバが存在するか否かを判定する。多重度Nは、データの信頼性及び耐障害性を向上させるため、レプリカデータをシステム内にいくつ保持させるかを示す指標である。メモリ量の比率を1/多重度Nに制限することで、サーバ間のメモリ性能差が大きい場合でも、同一サーバで、マスタデータと、そのマスタのレプリカデータのデータレンジが重複しない多重化を実現することができる。
 メモリ量の比率が1/多重度Nを超えているサーバが存在する場合(S603:Yes)、S605でメモリ量の比率が1/N以下になるようにメモリ量を補正する。メモリ量の補正は、マシン情報管理部312が、メモリ量の比率が1/多重度Nを超過したサーバの比率を1/多重度Nに変更し、不足するメモリ量分のデータを他のサーバに割り振る。存在しない場合(S603:No)、S606に進む。
 S606で、データレンジ管理部312が、メモリ量の比率に応じて、各サーバのマスタデータレンジを決定する。
  S607で、データレンジ管理部312が、構成情報314のマスタデータレンジ612を参照し、全サーバの中から最大データレンジ及び最大データレンジを保持するサーバIDを特定する。
  S609で、データレンジ管理部が、最大データレンジをもつサーバIDの次のサーバIDのサーバに、レプリカデータレンジの先頭のデータとして最大データレンジの先頭のデータを割り当てる。
 例えば、図6Bに示すように、サーバA~Eが格納するマスタデータのデータレンジのうち、マスタデータレンジ612からマスタデータレンジ「701~1200」のデータ幅「500」を最大データレンジとして特定する。また、最大データレンジをもつサーバID610を「C」として特定する。次いで、最大データレンジをもつサーバID「C」の次のサーバIDとなるサーバID「D」に、最大データレンジの先頭のデータであるマスタデータ「701」をレプリカデータレンジの先頭のデータに割り当てる。なお、本実施形態では、サーバIDを降順に管理しているが、昇順に管理するのでも良い。
 図7は、ブロック基準のデータレンジ決定処理のフローを示す。
  S701で、マシン情報管理部312が、各サーバのメモリ量の比率を算出する。メモリ量の比率とは、全サーバのメモリ容量のうち自サーバの占めるメモリ容量で示される。
  S703で、マシン情報管理部312が、メモリ量の比率が1/多重度Nを超えているサーバが存在するか否かを判定する。メモリ量の比率が1/多重度Nを超えているサーバが存在する場合(S703:Yes)、S705で、マシン情報管理部312が、メモリ量の比率が1/多重度N以下になるようにメモリ量を補正する。メモリ量の補正は、データ位置基準のデータレンジ決定処理と同様に、メモリ量の比率が1/多重度Nを超過したサーバの比率を変更するようにデータを割り振ることで実現する。存在しない場合(S703:No)、S707に進む。
 S707で、データレンジ管理部が、メモリ量の比率に応じ、各サーバにブロックを割り当て、マスタデータレンジを決定する。なお、ブロック決定処理については、図9(分布情報を入力としたブロック決定方法)及び図11(密度情報を入力としたブロック決定方法)を用いて詳細に説明する。
  S709で、データレンジ管理部312が、システム内の全サーバの中からデータ容量が最大であるサーバを特定し、当該サーバが保持するブロック数(以下、「最大ブロック数」という。)を特定する。
  S711で、データレンジ管理部312が、各サーバのマスタデータレンジを最大ブロック数分ずらす。
  S713で、データレンジ管理部312が、割り当てたブロックのデータレンジを算出する。データレンジは、割り当てられた先頭のブロックの始点をデータレンジの開始点とし、後尾のブロックの終点をデータレンジの終了点とする。
 図8は、ブロック基準のデータレンジ決定処理を行ったデータ格納先と格納するデータの関係を示す。図8Aは、ブロック基準のデータレンジ決定処理により、レプリカデータレンジを決定した図を示す。本実施形態では、全データレンジから同一のデータ量となるブロックを決定し、メモリ量の比率に応じて各サーバに複数のブロックを割り当て、マスタデータレンジを決定する(図7のS707)。
 例えば、図8AのサーバCには、ブロックID8~12のデータがマスタデータとして格納されていることを例示している。そして、全サーバの中から、データ容量が最大であるサーバCを特定し、サーバCが保持する最大ブロック数を「5」と特定する(図7のS709)。次いで、各サーバのマスタデータレンジから、最大ブロック数である「5」ブロック分、レプリカデータレンジのブロック数をずらす。サーバCには、ブロックID3~7のデータがレプリカデータとして格納される。同様の手順で、レプリカデータ2のデータレンジを決定し多重化を実現する。図8Bは、図8Aに対応する各サーバが保有するマスタデータ及びレプリカデータの構成情報314を示す。 以降では、ブロック決定方法について説明する。
  図9は、分布情報を入力としたデータブロック決定処理を示すフローである。
  S901で、マシン情報管理部312が、サーバ負荷情報315からシステムのデータ量の累積値を算出する。
  S903で、マシン情報管理部312が、算出したデータ量の累積値から、ユーザ指定のブロック数Xでデータ量を等分するデータ位置を算出する。なお、データのブロック数は、ユーザが任意に設定できる。
  S905で、マシン情報管理部312が、ブロック毎のデータレンジを決定する。
 図10は、分布情報を入力とするブロック決定処理のイメージ図である。
  図10Aに示すように、データ位置とデータ量の関係を棒グラフで表現し、システム内のデータ量の累積値を線グラフで表現する。図10Aはデータ量が同一のデータブロックを「15」生成するため、データの累積値を15等分しブロックを決定した様子を描いている。
  図10Bは、図10Aに示すブロックとデータレンジとの対応を示す表である。
  このように、分布情報を入力とするブロック決定処理では、システム内のデータ量の累積値からブロックを決定するため、システム内の実データ量が把握できる場合や、データ量の見積もりが可能な場合に特に有効なブロック決定方法である。
 図11は、密度情報を入力としたブロック決定処理のフローを示す。図12は、密度情報を入力としたデータブロック決定処理のイメージを図示したものである。
  S1101で、マシン情報管理部が、全サーバのデータ密度pを算出する。データ密度pは、「各サーバのマスタデータ量/各サーバのマスタデータレンジ」から算出する。図12のサーバAの密度pは、1GB/400となる。
  S1103で、マシン情報管理部312が、システム内に存在するサーバの全データ量の合計値を算出する。図12に示すシステムでは、サーバA~Eが格納する全データ量は、いま1GB+1GB+1.5GB+0.5GB+0.5GB=4.5GBと求められる。
 S1103で、マシン情報管理部312が、1ブロックあたりのデータ量を算出する。データのブロック数は、ユーザが任意に設定できる。図12のシステムにおいてデータを「15」のブロックに分割するとき、全体のデータ量4.5GB/15ブロックより1区画あたりのデータ量は0.3GBと求められる。
  S1105で、マシン情報管理部312が、ブロック毎のデータレンジを決定する。データレンジは、各サーバのデータ密度p及び1ブロックあたりのデータ量とから算出する。例えば、サーバAのデータ密度pが1GB/400であり、1ブロックあたりのデータ量を0.3GBとするとき、データレンジは「0.3GB/(1GB/400)=120」と算出される。
  S1107で、マシン情報管理部312が、各サーバのデータレンジ幅を決定する。
  データ密度情報を用いたデータブロック決定処理は、データがサーバ内に均一に配置されかつ1データあたりのデータ量がほぼ一定であるような場合、特に適する。
 図13は、本実施形態のユーザ操作画面の表示例を示す説明図である。ユーザ操作画面は、システム内のサーバ負荷情報を示すテーブル及び各サーバがマスタデータあるいはレプリカデータとして管理するデータを示す模式図を含む。
  サーバ負荷状況を示すテーブルには、システム内の各サーバのメモリ容量及びデータ量が含まれる。
  データ模式図は、データ位置基準でレプリカデータレンジを決定した場合には、(A)のようにデータレンジが図示される。また、データブロック基準でレプリカデータレンジを決定した場合には、(B)のようにデータブロック単位で各サーバのマスタデータ及びレプリカデータの所在が示される。
 図14は、本実施形態のユーザ設定画面の表示例を示す説明図である。ユーザ設定画面は、データ多重度、データのブロック数、メモリ閾値、データブロックの決定方法及び分割データ数を含む。
  データ多重度には、システム内でデータを保持させる多重度を設定する。データのブロック数は、ブロックを基準としてレプリカデータのデータレンジ決定処理をするときのブロック数を指定するものである。
  メモリ閾値は、システム稼動中にサーバのメモリ負荷に応じてデータのリバランスを行う指標になる。
  本実施形態では、少なくともデータの分布情報を入力としたブロック決定方法あるいはデータの密度情報を入力としたブロック決定方法をブロック決定方法として選択することができる。
 以上説明したように、本発明の一実施形態によれば、マスタデータレンジを基準として、サーバの負荷状況に応じてレプリカデータレンジを決定することができる。そのため、クラスタが性能差のあるサーバから構成されていても、性能の低いサーバがシステムのボトルネックになることを防ぐことができる。
  また、マスタデータレンジとレプリカデータレンジとが重複しない多重化を実現できるため、システムの信頼性を確保することができる。
  さらに、システムの分布情報や密度情報を入力としてデータのブロックを決定することで、サーバの負荷状況に応じてレプリカデータレンジを決定することができるため、効率的にメモリを使用することができる。
 なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の(非一時的な)記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
  さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
 以上、図面を用いて計算機システムを詳細に説明したが、本発明は上述の種々の例に限定されるものではなく、その趣旨を逸脱しない範囲で、種々の変更が可能であることはいうまでもない。
301 サーバ
302 クライアント装置
303 ネットワーク
304、317 プロセッサ
305、318 主記憶
306、319 補助記憶装置
307 データ管理部
308 分散制御部
309 管理端末
310 データレンジ管理部
311 構成情報保持部
312 マシン情報管理部
313 統計情報管理部
314 構成情報
315 サーバ負荷情報
316 データストア

Claims (15)

  1.  データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、他の計算機の記憶領域に配置される計算機であって、
     前記計算機は、
     前記計算機の各々の前記記憶領域の容量を保持し、前記容量に応じて、前記第1のデータを自計算機及び前記複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定し、
     前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び前記他の計算機の記憶領域に配置するための第2のデータレンジを決定し、
     前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置する
     ことを特徴とする計算機。
  2.  請求項1に記載の計算機であって、
     前記自計算機は、
     前記自計算機及び他の計算機の計算機IDを管理し、
     前記容量に応じて、前記計算機IDの順序に従って前記データを前記計算機の各々に配置するための第1のデータレンジを決定し、
     前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジから、前記計算機IDの順序に従って前記第2のデータを前記計算機の各々に配置する前記第2のデータレンジを決定する
     ことを特徴とする計算機。
  3.  請求項2に記載の計算機であって、
     前記計算機は、
     前記最大のデータレンジあるいは前記最大のリソース量を有する第1の計算機に配置されるデータレンジの先頭が、前記計算機IDの順序に従って前記第1の計算機の次の計算機に割り当てられるデータのデータレンジの先頭となる前記第2のデータレンジを決定する
     ことを特徴とする計算機。
  4.  請求項3に記載の計算機であって、
     前記計算機は、
     前記データを複数組み合わせてデータブロックを生成し、
     前記計算機の各々の記憶領域の容量に応じて、前記計算機の各々に前記データブロックを割り当て、
     前記割り当てたデータブロックの数により最大データサイズを決定する
     ことを特徴とする計算機。
  5.  請求項4に記載の計算機であって、
     前記計算機は、
     前記データ一つあたりのデータサイズと、前記データの数とから、全ての計算機が保持するデータの全データサイズを算出し、
     前記全データサイズと、データブロックの数とから、等しいデータサイズのデータブロックを生成する
     ことを特徴とする計算機。
  6.  請求項4に記載の計算機であって、
     前記計算機は、
     前記計算機の各々の前記容量と、前記第1のデータレンジとから前記各計算機のデータ密度を算出し、
     前記データ一つあたりのデータサイズと前記データの数から、全ての計算機が保持するデータの全データサイズを算出して、
     前記全データサイズと前記データ密度とから、データブロック一つあたりのデータサイズを決定してデータブロックを生成する
     ことを特徴とする計算機。
  7.  請求項3に記載の計算機であって、
     前記計算機は、
     キー・バリュー型のデータを前記記憶領域に配置することを特徴とする計算機。
  8.  データを格納する記憶領域を有する複数の計算機が通信可能に接続され、第1のデータが配置される前記記憶領域と、前記第1のデータの複製データである第2のデータが配置される前記記憶領域とが互いに異なる計算機に含まれる計算機システムの制御装置であって、
     前記制御装置が、
     前記複数の計算機の前記記憶領域の容量を保持し、前記容量に応じて前記各第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定し、
     前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び他の計算機の記憶領域に配置するための第2のデータレンジを決定し、
     前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置する
     ことを特徴とする制御装置。
  9.  請求項8に記載の制御装置であって、
     前記制御装置は、
     前記計算機の計算機IDを管理し、
     前記容量に応じて、前記計算機IDの順序に従って前記データを前記計算機の各々に配置するための第1のデータレンジを決定し、
     前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジから、前記計算機IDの順序に従って前記第2のデータを前記計算機の各々に配置する前記第2のデータレンジを決定する
     ことを特徴とする制御装置。
  10.  請求項9に記載の制御装置であって、
     前記制御装置が、
     前記最大のデータレンジあるいは前記最大のリソース量を有する第1の計算機に配置されるデータレンジの先頭が、前記計算機IDの順序に従って前記第1の計算機の次の計算機に割り当てられるデータのデータレンジの先頭となる前記第2のデータレンジを決定する
     ことを特徴とする制御装置。
  11.  請求項10に記載の制御装置であって、
     前記制御装置が、
     前記データを複数組み合わせてデータブロックを生成し、
     前記計算機の各々の記憶領域の容量に応じて、前記計算機の各々に前記データブロックを割り当て、
     前記割り当てたデータブロックの数により最大データサイズを決定する
     ことを特徴とする制御装置。
  12.  請求項11に記載の制御装置であって、
     前記制御装置が、
     前記データ一つあたりのデータサイズと前記データの数とから、全ての計算機が保持するデータの全データサイズを算出し、
     前記全データサイズと、データブロックの数とから、等しいデータサイズのデータブロックを生成する
     ことを特徴とする制御装置。
  13.  請求項11に記載の制御装置であって、
    前記制御装置が、
     前記計算機の各々の前記容量と前記第1のデータレンジとから前記計算機の各々のデータ密度を算出し、
     前記データ一つあたりのデータサイズと前記データの数から、全ての計算機が保持するデータの全データサイズを算出して、
     前記全データサイズと前記データ密度とから、データブロック一つあたりのデータサイズを決定してデータブロックを生成する
     ことを特徴とする制御装置。
  14.  請求項10に記載の制御装置であって、
     前記制御装置が、
     キー・バリュー型のデータを前記記憶領域に配置することを特徴とする制御装置。
  15.  データを格納する記憶領域を有する複数の計算機と通信可能に接続され、自計算機の記憶領域に配置される第1のデータの複製である第2のデータが、前記他の計算機の記憶領域に配置される計算機に、
     前記計算機の各々の前記記憶領域の容量を保持させ、前記容量に応じて、前記第1のデータを自計算機及び複数の他の計算機の記憶領域に配置する前記第1のデータレンジを決定させるステップと、
     前記第1のデータレンジのうち、最大のデータレンジあるいは最大の容量となるデータレンジとは異なるデータレンジを起点に、最大のデータレンジあるいは最大の容量となる前記第2のデータのデータレンジを決定することで、前記第2のデータを自計算機及び他の計算機の記憶領域に配置するための第2のデータレンジを決定させるステップと、
     前記第1及び前記第2のデータレンジに従って、前記データを前記計算機の各々の記憶領域に配置させるステップと
     を実行させるプログラムを格納するコンピュータ読取可能な非一時的な記録媒体。
PCT/JP2012/084020 2012-12-28 2012-12-28 計算機、計算機システムの制御装置及び記録媒体 WO2014102997A1 (ja)

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
US14/424,375 US9805109B2 (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 計算機、計算機システムの制御装置及び記録媒体

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014162397A1 (ja) * 2013-04-01 2014-10-09 株式会社日立製作所 計算機システム、データ管理方法、及び計算機
US20160306810A1 (en) * 2015-04-15 2016-10-20 Futurewei Technologies, Inc. Big data statistics at data-block level
WO2019030883A1 (ja) 2017-08-10 2019-02-14 株式会社日立製作所 計算機システムおよびデータ処理方法
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP2740073B1 (en) * 2011-06-17 2017-01-18 Quantitative Imaging, Inc. Methods and apparatus for assessing activity of an organ and uses thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP2940587A4 (en) 2016-08-24
US20150220612A1 (en) 2015-08-06
JPWO2014102997A1 (ja) 2017-01-12
EP2940587A1 (en) 2015-11-04
US9805109B2 (en) 2017-10-31
JP5853109B2 (ja) 2016-02-09

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) 一种存储系统扩容后数据迁移的方法、存储系统
JPWO2013118270A1 (ja) 計算機システム、データ管理方法及びプログラム
WO2021187194A1 (ja) 分散処理システム、分散処理システムの制御方法、及び、分散処理システムの制御装置
US20150088826A1 (en) Enhanced Performance for Data Duplication
Fazul et al. PRBP: A prioritized replica balancing policy for HDFS balancer
JP6172294B2 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体
US11861423B1 (en) Accelerating artificial intelligence (‘AI’) workflows
JP6773755B2 (ja) ストレージ装置及びストレージ装置における構成管理リクエストの処理方法
JP6287427B2 (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