JP6197872B2 - Data processing system, data processing method, and data processing program - Google Patents
Data processing system, data processing method, and data processing program Download PDFInfo
- Publication number
- JP6197872B2 JP6197872B2 JP2015536443A JP2015536443A JP6197872B2 JP 6197872 B2 JP6197872 B2 JP 6197872B2 JP 2015536443 A JP2015536443 A JP 2015536443A JP 2015536443 A JP2015536443 A JP 2015536443A JP 6197872 B2 JP6197872 B2 JP 6197872B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- value pair
- data
- group
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、データ処理システム、データ処理方法およびプログラム記録媒体に関する。特に、分散キーバリュ−ストアに用いるデータ処理システム、データ処理方法およびデータ処理プログラムを記録するプログラム記録媒体に関する。 The present invention relates to a data processing system, a data processing method, and a program recording medium. In particular, the present invention relates to a data processing system, a data processing method, and a program recording medium for recording a data processing program used for a distributed key value store.
膨大な量のデータを高速処理する手法として、分散キーバリュ−ストア(以下、分散KVS)という方式が用いられている(KVS:KEY−VALUE Store)。分散KVSでは、保存したい任意のデータ(値:VALUE)に対して一意の標識となるキー(KEY)を設定し、KEYとVALUEとのペア(KVペア)でデータを保存する(KV:KEY−VALUE)。分散KVSでは、KEYを指定して対応するVALUEを取得することによって、データを取得することができる。 As a technique for processing a huge amount of data at high speed, a system called distributed key value store (hereinafter referred to as distributed KVS) is used (KVS: KEY-VALUE Store). In distributed KVS, a key (KEY) serving as a unique indicator is set for arbitrary data (value: VALUE) to be stored, and the data is stored as a pair of KEY and VALUE (KV pair) (KV: KEY− VALUE). In distributed KVS, data can be acquired by specifying KEY and acquiring the corresponding VALUE.
ところで、データのバックアップとしては、フルバックアップや増分バックアップ、差分バックアップなどの方法を挙げることができる。フルバックアップと比較すると、増分バックアップや差分バックアップにおいては、バックアップ容量が小さく、処理時間も短いという利点がある。バックアップされるデータは、世代毎にデータベースなどの記憶手段に格納される。そのため、膨大な量のデータのバックアップを行う際には、フルバックアップよりも、バックアップ容量が小さくて済む増分バックアップや差分バックアップの方が適している。 By the way, examples of data backup include full backup, incremental backup, and differential backup. Compared to full backup, incremental backup and differential backup have the advantages of small backup capacity and short processing time. Data to be backed up is stored in a storage means such as a database for each generation. Therefore, when backing up a huge amount of data, incremental backup and differential backup that require a smaller backup capacity are more suitable than full backup.
特許文献1には、データの位置やタイプに関わらずに複数のデータに対して容易にアクセスできるデータ管理サーバを設け、異種ストレージ環境においてデータをリストアする技法について開示されている。
また、分散KVSでは、システムとしての耐障害性を確保するために、複数のサーバに同じデータを書き込むレプリケーションという機能が装備される。レプリケーションを行う方法としては、サーバ側でレプリケーション先サーバを決めて実行するサーバルーティング方式と、クライアント側でレプリケーション先サーバを決めて実行するクライアントルーティング方式がある。 In addition, the distributed KVS is equipped with a function called replication that writes the same data to a plurality of servers in order to ensure fault tolerance as a system. As a method of performing replication, there are a server routing method in which a replication destination server is determined and executed on the server side, and a client routing method in which a replication destination server is determined and executed on the client side.
図18には、一般的なクライアントルーティング方式を説明するための図を示した。図18のクライアントルーティング方式において、クライアント90(90−1〜4)は、取得したキーバリューデータ(KVペア)をレプリケーションし、レプリケーションされたKVペアをルーティング処理によってサーバ91(91−1〜6)に送信する。いずれのクライアント90(90−1〜4)がKVペアを挿入しても、全てのKVペアの送信先となるサーバ91(91−1〜6)はキーによって決定される。 FIG. 18 is a diagram for explaining a general client routing method. In the client routing method of FIG. 18, the clients 90 (90-1 to 4) replicate the acquired key value data (KV pairs), and the replicated KV pairs are server 91 (91-1 to 6) by routing processing. Send to. Regardless of which client 90 (90-1 to 4) inserts a KV pair, the servers 91 (91-1 to 6) serving as transmission destinations of all KV pairs are determined by keys.
特許文献2には、分散型データベースシステムを構成するデータベースノードにストアされているデータを処理する方法が開示されている。特許文献2においては、分散されたデータベースノードに振り分けられたキー情報と値のペア(KVペア)を処理する際に、クライアントノードは、それぞれのデータベースノードにプログラム情報を送信する。そして、それぞれのデータベースノード内でデータの処理が実行されると、クライアントノードは、それぞれのデータベースノード内における処理の結果のみを取得する。そのため、一回の通信でやり取りするデータ量を小さくすることができる。
また、特許文献2では、データ処理を効率化するために、一つの処理に必要なデータを特定のデータベースノードに存在する可能性を高める。そのため、特許文献2によれば、分散された大量のデータに対して処理を実行する際に、通信回数を減らすことができる。
Moreover, in
一般に、データのリストアでは、バックアップを行ったサーバ構成を対象としており、異なるサーバ構成に対するリストアが考慮されていない。各サーバで採取したバックアップは、採取時と同じ構成のシステムにリストアする必要がある。そのため、異なるサーバ構成に対するリストアが必要となる分散KVSなどのスケールアウト型システムのバックアップとして、差分バックアップや増分バックアップを適用することは必ずしも有用とはいえない。 In general, data restoration targets a server configuration that has been backed up, and restoration for a different server configuration is not considered. The backup collected on each server must be restored to a system with the same configuration as when it was collected. Therefore, it is not always useful to apply differential backup or incremental backup as a backup of a scale-out system such as a distributed KVS that requires restoration for different server configurations.
特許文献1の技法によれば、リストア前後におけるサーバ構成によらずにバックアップデータをリストアすることが可能となる。しかしながら、特許文献1の技法によると、データ管理サーバを通じて異なる複数のデータを処理するため、一度の処理で大量のデータを扱う際に処理時間が増大するという課題がある。
According to the technique of
特許文献2の方法によれば、データ処理における通信回数を減らすことはできる。しかしながら、複数のデータベースノードに分散されたデータの処理は、各データベースノードのデータ量や性能に依存することになる。そのため、データベースノードによって処理時間が異なってしまい、一回の処理が完了するまでの時間は必ずしも短縮されない。また、特定のデータベースノードにデータが偏ることにつながるため、サーバ構成を再構築しにくいという問題点もある。
According to the method of
本発明の目的は、分散KVS環境の多世代にわたるバックアップデータを、分散KVSのサーバ構成に依存せず、一度の処理で任意のサーバ構成の分散KVSにリストアするデータ処理システムを提供することである。 An object of the present invention is to provide a data processing system that restores backup data for multiple generations in a distributed KVS environment to a distributed KVS having an arbitrary server configuration in a single process without depending on the server configuration of the distributed KVS. .
本発明のデータ処理システムは、分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理システムであって、第1データベースサーバ群を構成する少なくとも一つのサーバに格納されたデータの値と、データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップするバックアップ手段と、世代毎にバックアップされたキーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つのキーバリューペアをキーで集約することによって第1のキーバリューペア群を形成させ、第1のキーバリューペア群から最新の更新情報を持つキーバリューペアを一つ選択し、選択された最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製されたキーバリューペアを所定のノード識別子に従って出力する出力手段と、を備える。 The data processing system of the present invention is a data processing system for restoring data having update information for determining an update order backed up in a distributed key-value store environment, and at least one of the first database server group. A backup means that backs up a key-value pair that contains the value of data stored in one server and a key that distinguishes the data in pairs, and at least one key-value pair backed up for each generation is read and read. A first key-value pair group is formed by aggregating at least one key-value pair issued with a key, and one key-value pair having the latest update information is selected from the first key-value pair group; Depending on the number of replications, the key-value pair with the latest update information selected Replicate Te, and an output means for outputting in accordance with the duplicated key-value pairs the predetermined node identifier.
本発明のデータ処理方法は、分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理方法であって、第1データベースサーバ群を構成する少なくとも一つのサーバに格納されたデータの値と、データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップし、世代毎にバックアップされたキーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つのキーバリューペアをキーで集約することによって第1のキーバリューペア群を形成させ、第1のキーバリューペア群から最新の更新情報を持つキーバリューペアを一つ選択し、選択された最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製されたキーバリューペアを所定のノード識別子に従って出力する。 The data processing method of the present invention is a data processing method for restoring data having update information for determining an update order backed up in a distributed key-value store environment, and is at least one of the first database server group. A key-value pair containing a pair of a data value stored in one server and a key that distinguishes the data is backed up for each generation, and at least one key-value pair backed up for each generation is read and read The first key-value pair group is formed by aggregating at least one key-value pair with the key, and one key-value pair having the latest update information is selected from the first key-value pair group and selected. The key value pair with the latest update information is replicated according to the number of replications, and the replicated key And it outputs the Yupea according to a predetermined node identifier.
本発明のプログラム記録媒体は、分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理プログラムを記録するプログラム記録媒体であって、第1データベースサーバ群を構成する少なくとも一つのサーバに格納されたデータの値と、データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップする処理と、世代毎にバックアップされたキーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つのキーバリューペアをキーで集約することによって第1のキーバリューペア群を形成させ、第1のキーバリューペア群から最新の更新情報を持つキーバリューペアを一つ選択し、選択された最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製されたキーバリューペアを所定のノード識別子に従って出力する処理とをコンピュータに実行させるデータ処理プログラムを記録する。 The program recording medium of the present invention is a program recording medium for recording a data processing program for restoring data having update information for determining an update order backed up in a distributed key-value store environment, and the first database server A process for backing up each generation of a key-value pair including a pair of a data value stored in at least one server constituting the group and a key for distinguishing the data, and at least a key-value pair backed up for each generation The first key-value pair group is formed by aggregating at least one read-out key-value pair with a key, and a key-value pair having the latest update information from the first key-value pair group. Select one and replies the key-value pair with the latest update information selected Replicated according to the application number, and records the data processing program for executing a process of outputting to the computer a duplicated key-value pairs in accordance with a predetermined node identifier.
本発明によれば、分散KVS環境の多世代にわたるバックアップデータを、分散KVSのサーバ構成に依存せず、一度の処理で任意のサーバ構成の分散KVSにリストアすることが可能となる。 According to the present invention, backup data over multiple generations in a distributed KVS environment can be restored to a distributed KVS having an arbitrary server configuration in a single process without depending on the server configuration of the distributed KVS.
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。 EMBODIMENT OF THE INVENTION Below, the form for implementing this invention is demonstrated using drawing. However, the preferred embodiments described below are technically preferable for carrying out the present invention, but the scope of the invention is not limited to the following.
(第1の実施形態)
図1は、本発明の第1の実施形態に係る分散型データ処理システム1の機能構成を示すブロック図である。本実施形態に係る分散型データ処理システム1は、分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理システムである。(First embodiment)
FIG. 1 is a block diagram showing a functional configuration of a distributed
本発明の第1の実施形態に係る分散型データ処理システム1は、第1データベースサーバ群10と、バックアップ手段20と、データリストア装置30と、第2データベースサーバ群70とを備えている。
The distributed
また、本発明の第1の実施形態に係るデータリストア装置30は、部分リストア手段40と、第1処理手段50と、第2処理手段60と、を有している。データリストア装置30は、第1データベースサーバ群10を構成する複数のサーバのバックアップデータをサーバ毎にリストアし、2段構成のマップリデュース処理(以下、MapReduce処理)を実行して出力する出力手段である。なお、本発明の第1の実施形態においては、差分バックアップ又は増分バックアップによってバックアップデータを取得することを想定する。ただし、バックアップ方法は、差分バックアップ又は増分バックアップに限らず、フルバックアップ以外のバックアップ方法でありさえすればよい。
The data restore
本発明の第1の実施形態に係る分散型データ処理システム1は、例えばコンピュータやサーバマシンといった情報処理装置や、メモリやストレージなどの記憶装置を組み合わせて構成される。
The distributed
図2は、本発明の第1の実施形態に係る分散型データ処理システム1に用いられる情報処理装置のハードウェア構成の一例を示す概念図である。例えば、情報処理装置は、図2のように、中央演算処理装置5(図2ではCPUと記載)を有する(CPU:Central Processing Unit)構成とすることができる。また、情報処理装置は、図2のように、ROM6やRAM7を有する構成とすることができる(ROM:Read Only Memory、RAM:Random Access Memory)。さらに、情報処理装置は、図2のように、記憶装置8(図2ではHDDと記載)や入出力装置9(図2ではI/Oと記載)を有する構成とすることができる(HDD:Hard Disk Drive、I/O:Input/Output)。すなわち、本実施形態に係る分散型データ処理システム1に用いられる情報処理装置は、上述の中央演算処理装置5、ROM6、RAM7、記憶装置8、入出力装置9がデータバスによって接続された構成とすることによって実現される。なお、本発明の第1の実施形態に係る分散型データ処理システム1に用いられる情報処理装置は、図2の構成に限定されず、図2の構成に種々の装置・機能を追加・削除した構成とすることができる。
FIG. 2 is a conceptual diagram showing an example of the hardware configuration of the information processing apparatus used in the distributed
続いて、本発明の第1の実施形態に係るデータ処理システム1の構成要素について詳細に説明する。
Subsequently, components of the
(第1データベースサーバ群)
図3に示した第1データベースサーバ群10は、第1サーバ11−1、第2サーバ11−2、・・・、第mサーバ11−mを含む複数のサーバから構成される(mは2以上の整数)。なお、図3には、一例として4つのサーバを示しているが、サーバ11の数は4つに限定されない。第1データベースサーバ群10を構成するサーバ11の数は、少なくとも二つ以上であればよい。(First database server group)
The first
本実施形態に係るデータベースサーバ群10はスケールアウトが可能であり、第1データベースサーバ群10を構成する複数のサーバ11(11−1〜m)に任意で別のサーバを追加することができる。すなわち、本実施形態に係るデータベースサーバ群10は、データのバックアップタイミング毎に異なる構成となっていてもよい。
The
分散型データ処理システム1は分散KVS環境を形成する。分散KVS環境においては、データを格納するサーバ11は複数存在し、そのデータバックアップは各サーバ11単位で行われる(KVS:KEY−VALUE Store)。
The distributed
分散型データ処理システム1においては、格納する値(VALUE)にキー(KEY)と呼ばれる数値を割り当てたKVペアの形態でデータを格納する。分散型データ処理システム1に格納されるデータには、KVペアが更新された更新順序に関する情報(更新情報)が含まれる。更新情報としては、更新時間(更新時刻とも呼ぶ)やベクタークロック(Vector Clock)などのKVペアを更新した順序が明確になる情報を用いる。本実施形態においては、更新情報として、更新時間(Time)を用いた場合について説明する。なお、更新情報として、バックアップを実行したタイミング(時刻・順序)に関する情報を用いてもよい。バックアップを実行したタイミングは、例えば、KVペアの更新時間(Time)の替わりとしてデータに含めてもよいし、更新時間とは別にデータに含めてもよい。
In the distributed
図4に示すように、本発明の第1の実施形態に係るデータ処理システム1で扱われるKVペアは、キー情報(Key)を含むキー(KEY)と、更新情報(Time)と値(Value)とを含むバリュー(VALUE)の組合せである。なお、本発明の第1の実施形態に係るデータ処理システム1で扱われるKVペアは、キー情報以外の情報をキーとしてもよく、また、更新情報とデータ以外の情報をバリューとして含んでいてもよい。バックアップタイミングをデータに含める場合、例えば図4の更新時間(Time)をバックアップタイミング(Tn)で置換してもよいし、図5のようにTimeとは別にバックアップタイミング(Tn)をデータに付加してもよい。
As shown in FIG. 4, the KV pair handled in the
第1データベースサーバ群10に含まれる各サーバ11は、互いに異なるサーバマシンやストレージなどの情報処理装置として構成される。ただし、単一の装置内部に複数のサーバを構成させることができるのであれば、同一の装置内に異なる複数のサーバを構成させることができる。
Each
また、図3などでは、第1データベースサーバ群10と、バックアップ手段20とを別の構成として示しているが、第1データベース群10がバックアップ手段20を含む構成であってもよい。
In FIG. 3 and the like, the first
本実施形態に係るデータ処理システム1は、所定のタイミングにおいて、バックアップ手段20にデータをバックアップする。データをバックアップする際、バックアップ手段20は、各サーバ11のバックアップタイミング毎に、各サーバ11のバックアップデータを格納する。
The
例えば、本実施形態に係るデータ処理システム1においては、所定のタイミングにおいて更新されたデータを、差分バックアップや増分バックアップによってバックアップする。ただし、初めのデータバックアップ時においては、フルバックアップによってデータをバックアップしておく。
For example, in the
なお、第1データベースサーバ群10と第2データベースサーバ群70とは、別のサーバ群として同時存在している必要はなく、第1データベースサーバ群10を構成するサーバ11が、第2データベースサーバ群70を構成するサーバとなってもよい。
Note that the first
(バックアップ手段)
図3のように、本発明の第1の実施形態に係るバックアップ手段20は、第1バックアップ部21−1、第2バックアップ部21−2、・・・、第nバックアップ部21−nを含む複数のバックアップ部21を有する(nは2以上の整数)。各バックアップ部21は、バックアップタイミングがT1〜Tnであるバックアップデータを、世代毎に格納する。図3においては、世代毎に、第1データベースサーバ群10に含まれる第1〜nサーバ11−1〜nのデータをバックアップデータとして各バックアップ部21に格納するように図示している。なお、本発明の第1の実施形態に係る分散型データ処理システム1においては、各世代において、第1データベースサーバ群10を構成する複数のサーバ11のサーバ構成が互いに異なっていてもよい。バックアップ部21にバックアップされるデータは、異なるサーバ11毎に分別できるように格納される。(Backup method)
As shown in FIG. 3, the backup means 20 according to the first embodiment of the present invention includes a first backup unit 21-1, a second backup unit 21-2, ..., an nth backup unit 21-n. It has a plurality of backup units 21 (n is an integer of 2 or more). Each
バックアップ手段20にバックアップされたデータをリストアする際、バックアップ手段20は、部分リストア手段40にバックアップデータを送信する。
When restoring the data backed up by the
(部分リストア手段)
部分リストア手段40は、各バックアップ部21に格納されたバックアップタイミングが異なる何世代かのバックアップデータをサーバ11毎に個別にリストアする。このようなリストアを部分リストアと呼ぶ。(Partial restore method)
The partial restore means 40 individually restores several generations of backup data with different backup timings stored in each
部分リストア手段40は、例えばサーバ11毎のバックアップデータを世代毎に個別にリストアする部分サーバの組合せによって構成することができる。部分サーバは、各世代における各サーバのバックアップデータを部分リストア(ロード)して保持するサーバである。一般に、バックアップデータの形式は分散KVS毎に固有であるため、後続の分散処理フレームワークで直接読み出すことが難しいことが想定される。部分サーバは、分散処理部分がバックアップデータの形式に依存しないように、世代毎にバックアップされたデータのKVペアを取得する目的で配置される。
The partial restore means 40 can be configured by, for example, a combination of partial servers that individually restore backup data for each
図6は、第1バックアップ部21−1と、第2バックアップ部21−2とに格納された複数のバックアップデータを部分リストア手段40で部分リストアする例を示す。なお、図6のバックアップ手段20には、2つの世代(T1とT2)の例を挙げているが、実際には何世代にもわたるバックアップデータが格納されている。また、図6の各バックアップ部21にはサーバ4つ分のバックアップデータしか図示していないが、各バックアップ部21には、世代毎にバックアップが実行されたサーバ11の数だけバックアップデータが含まれる。
FIG. 6 shows an example in which a plurality of backup data stored in the first backup unit 21-1 and the second backup unit 21-2 are partially restored by the partial restore
図6において、時刻T1にバックアップされたバックアップデータを格納する第1バックアップ部21−1には、時刻T1にバックアップされた第1〜mサーバ11−1〜mのバックアップデータが含まれる。時刻T1にバックアップされた第1〜mサーバ11−1〜mのバックアップデータは、それぞれ第1〜4部分サーバ41−1〜4において部分リストアされる。 In FIG. 6, the first backup unit 21-1 for storing backup data backed up at time T1 includes backup data of the first to m servers 11-1 to 11-m backed up at time T1. The backup data of the first to m servers 11-1 to 11-m backed up at time T1 is partially restored in the first to fourth partial servers 41-1 to 41-4, respectively.
また、図6において、時刻T2にバックアップされたバックアップデータを格納する第2バックアップ部21−2には、時刻T2にバックアップされた第1〜mサーバ11−1〜mのバックアップデータが含まれる。時刻T2にバックアップされた第1〜mサーバ11−1〜mのバックアップデータは、それぞれ第5〜8部分サーバ41−5〜8において部分リストアされる。 In FIG. 6, the second backup unit 21-2 that stores backup data backed up at time T2 includes backup data of the first to m servers 11-1 to 11-m backed up at time T2. The backup data of the first to m servers 11-1 to 11-m backed up at time T2 is partially restored in the fifth to eighth partial servers 41-5 to 8, respectively.
なお、図6には、m個のサーバ11のバックアップデータを4つの部分サーバ41に部分リストアする例を図示しているが、実際には、m個の各サーバ11に対応するようにm個の部分サーバ41を配置することが好ましい。また、m個のサーバ11のバックアップデータを、任意の数の部分サーバ41に振り分けるように構成することも可能である。
FIG. 6 illustrates an example in which backup data of
部分サーバ41は、第1データベースサーバ群10に含まれる各サーバ11の内部構成としてもよいし、各サーバ11とは異なる情報処理装置に含まれる構成としてもよい。また、部分サーバ41は、情報処理装置内部のプログラムとして構成してもよい。
The partial server 41 may have an internal configuration of each
部分リストア手段40においては、異なる部分サーバ41毎にバックアップデータをリストアするため、異なるデータ構造で格納されたバックアップデータを並列してリストアすることが可能となる。 Since the partial restore means 40 restores backup data for each different partial server 41, it is possible to restore backup data stored in different data structures in parallel.
部分リストア手段40によってリストアされたデータは、後段の第1処理手段50、第2処理手段60に送信され、2段構成のMapReduce処理が施される。第1処理手段50による1段目のMapReduce処理は、あるキー(KEY)において更新時間(Time)が最新であるKVペアを選択するための処理である。第2処理手段60による2段目のMapReduce処理は、リストアすべき第2データベースサーバ群70のサーバ構成に応じて、レプリケーションを考慮して第2データベースサーバ群70を構成するサーバ単位でKVペアを集約するための処理である。
The data restored by the partial restoration means 40 is transmitted to the first processing means 50 and the second processing means 60 in the subsequent stage, and subjected to the two-stage MapReduce process. The first-stage MapReduce process by the
(第1処理手段)
2段構成のMapReduce処理の1段目を実行する第1処理手段50について、図7を用いて説明する。(First processing means)
The first processing means 50 for executing the first stage of the two-stage MapReduce process will be described with reference to FIG.
第1処理手段50は、第1Map処理部51(以下、第1マップ処理部51)と、第1Shuffle処理部53(以下、第1シャッフル処理部53)と、第1Reduce処理部55(以下、第1リデュース処理部55)と、を有する。第1処理手段50は、MapReduceをフレームワークとする並列分散処理を実行する。第1処理手段50は、部分リストア手段40から取得したバックアップデータをキー(KEY)でソートし、キー毎に集約したKVペア群として出力する。 The first processing means 50 includes a first Map processing unit 51 (hereinafter referred to as a first map processing unit 51), a first Shuffle processing unit 53 (hereinafter referred to as a first shuffle processing unit 53), and a first Reduce processing unit 55 (hereinafter referred to as a first processing unit). 1 reduction processing unit 55). The first processing means 50 executes parallel distributed processing using MapReduce as a framework. The first processing means 50 sorts the backup data acquired from the partial restore means 40 by the key (KEY), and outputs it as a KV pair group aggregated for each key.
第1マップ処理部51は、各部分サーバ41から取得したKVペアを並列に読み出すマップ処理(Map処理)を実行する。第1マップ処理部51は、読み出した複数のKVペアを第1シャッフル処理部53に出力する。
The first
第1シャッフル処理部53は、第1マップ処理部51から取得した複数のKVペアを、KVペアのキー(KEY)であるキー情報(Key)でソートし、KVペアをキー毎にまとめてKVペア群(第1のキーバリューペア群とも呼ぶ)とする。第1シャッフル処理部53は、キー毎にまとめたKVペア群(第1のキーバリューペア群)を第1リデュース処理部55に出力する。
The first
第1リデュース処理部55は、第1シャッフル処理部53から取得したキー毎にまとめられたKVペア群(第1のキーバリューペア群)を構成するKVペアの中から、更新時間(Time)が最新であるKVペアを一つ選択する。通常、データは複数のサーバに分別されてバックアップされており、同じキー及び値を持つデータが複数存在することになる。そのため、第1リデュース部は、更新時間が最新である複数のKVペアのうち一つを任意に選択する。
The first
そして、第1リデュース処理部55は、各KVペア群(第1のキーバリューペア群)において選択された最新の更新時間(Time)を持つKVペアを、レプリケーション数に従ってレプリケーション(複製)する。例えば、レプリケーション数が3であれば、同じキー(KEY)とバリュー(VALUE)を持つ3つのKVペアを複製する。
Then, the first
さらに、第1リデュース処理部55は、レプリケーションしたKVペアのリストア先となるサーバの装置ID(ノードIDやノード識別子ともよぶ)を、レプリケーションした全てのKVペアに付与して一時的KVペアを作成する。KVペアの格納先となるサーバのノードID(NodeID)が決定すると、図9で示される一時的KVペアを新規に作成する。通常、分散KVSはレプリケーションを行うため、最新KVペア1つに対して、格納先が異なるレプリケーション数分のKVペアが作成されることになる。なお、レプリケーションとノードIDの付与については、ノードIDを付与してからレプリケーションを実行する順番としてもよい。
Further, the first
ところで、KVペア毎に格納(リストア)すべきサーバは、第2データベースサーバ群70のサーバ構成に応じて、適宜決まるものとする。リストアすべきサーバには、装置IDなどの一連の番号が割り振られているものとする。例えば、分散KVSに固有のKVペアの格納先サーバ決定アルゴリズムにより、そのKVペアの格納先サーバが決定されればよい。なお、KVペアと格納先サーバの対応関係は、第1処理手段50の第1リデュース処理部55で理解できるものとする。例えば、第1リデュース処理部55に、どのサーバにKVペアを振り分けるのかを決定するアルゴリズム又は対応表をリデュース処理として実装すればよい。
By the way, the server to be stored (restored) for each KV pair is appropriately determined according to the server configuration of the second
第1リデュース処理部55は、ノードIDが同一となる一時的KVペアを一時的KVペア群(第1の一時的キーバリューペア群)として集約し、第2処理手段60に出力する。
The first
(第2処理手段)
続いて、2段構成のMapReduce処理の2段目を実行する第2処理手段60について、図8を用いて説明する。(Second processing means)
Next, the second processing means 60 that executes the second stage of the MapReduce process having a two-stage configuration will be described with reference to FIG.
第2処理手段60は、第2Map処理部61(以下、第2マップ処理部61)と、第2Shuffle処理部63(以下、第2シャッフル処理部63)と、第2Reduce処理部65(以下、第2リデュース処理部65)と、を有する。第2処理手段60は、MapReduceをフレームワークとする並列分散処理を実行する。 The second processing means 60 includes a second Map processing unit 61 (hereinafter referred to as a second map processing unit 61), a second Shuffle processing unit 63 (hereinafter referred to as a second shuffle processing unit 63), and a second Reduce processing unit 65 (hereinafter referred to as a second processing unit). 2 reduction processing unit 65). The second processing means 60 executes parallel distributed processing using MapReduce as a framework.
まず、第2処理手段60は、第1処理手段50によってキー毎に集約された一時的KVペア群を取得する。そして、第2処理手段60は、一時的KVペア群を構成する一時的KVペアを、特定の条件・規則に従って第2データベースサーバ群70を構成するサーバ毎のKVペア群として再構成し、再構築したKVペア群を出力する。
First, the second processing means 60 acquires a temporary KV pair group aggregated for each key by the first processing means 50. Then, the second processing means 60 reconfigures the temporary KV pairs constituting the temporary KV pair group as KV pair groups for each server constituting the second
第2マップ処理部61は、第1処理手段50の第1リデュース処理部55から取得した複数の一時的KVペアを並列に読み出すマップ処理(Map処理)を実行する。第2マップ処理部61は、読み出した複数の一時的KVペアを第2シャッフル処理部63に出力する。
The second
第2シャッフル処理部63は、第2マップ処理部61から取得した複数の一時的KVペアを、一時的KVペアのキー(KEY)となるノードID(NodeID)でソートする。そして、第2シャッフル処理部63は、一時的KVペアをノードID毎にまとめた一時的KVペア群(第2の一時的キーバリューペア群)とする。第2シャッフル処理部63は、ノードID毎にまとめた一時的KVペア群(第2の一時的キーバリューペア群)を第2リデュース処理部65に出力する。
The second
なお、ノードID(NodeID)は、KVペアの格納先サーバ番号を意味するため、第2リデュース処理部65には、格納先が同じKVペアが集約されることになる。
Since the node ID (NodeID) means the storage destination server number of the KV pair, the second
第2リデュース処理部65は、第2シャッフル処理部63から取得したノードID毎にまとめられた一時的KVペア群(第2の一時的キーバリューペア群)において、一時的KVペアに付与されていたノードIDを削除し、通常のKVペアに変換する。
The second
そして、第2リデュース処理部65は、通常のデータ構造を持つKVペアを、ノードID毎にまとめられたKVペア群(第2のキーバリューペア群)として集約し、KVペア群(第2のキーバリューペア群)をノードIDによって指定されたサーバに向けて出力する。
Then, the second
第2リデュース処理部65は、同じノードIDをキー(KEY)とする一時的KVペアを集め、一時的KVペアのバリュー(VALUE)から本来格納すべきKVペアを取り出す。そして、第2リデュース処理部65は、取り出したKVペアのまとまりをKVペア群(第2のキーバリューペア群)という塊として格納先サーバに送信する。その結果、単一のKVペアよりも大きなサイズのKVペア群(第2のキーバリューペア群)を転送することによって、ネットワークの使用効率を向上することができる。
The second
(第2データベースサーバ群)
第2データベースサーバ群70は、第2処理手段60の第2リデュース処理部65から取得したKVペアを格納する。第2データベースサーバ群70は、第1データベースサーバ群10と同様に、分散KVS型のサーバ構成を取る。本発明の第1の実施形態に係る第2データベースサーバ群70は、第1データベースサーバ群10とは異なるサーバ構成とすることが可能である。また、第2データベースサーバ群70は、第1データベースサーバ群10と同じサーバ構成であっても構わない。(Second database server group)
The second
以上が、本発明の第1の実施形態に係る分散型データ処理システムの構成に関する説明である。なお、本発明の第1の実施形態に係る分散型データ処理システムの構成は、上述の構成に限定されず、必要に応じて種々の追加・削除等の変更を施してもよい。 This completes the description of the configuration of the distributed data processing system according to the first embodiment of the present invention. The configuration of the distributed data processing system according to the first embodiment of the present invention is not limited to the above-described configuration, and various additions / deletions and the like may be made as necessary.
(動作)
次に、本発明の第1の実施形態に係る分散型データ処理システム1の動作について説明する。特に、本発明の特徴部分となるデータリストア装置30における部分リストア処理、2段のMapReduce処理について、図10のフローチャートを用いて順序立てて説明する。(Operation)
Next, the operation of the distributed
(部分リストア処理)
まず、図10の部分リストア処理において、部分リストア手段40に含まれる複数の部分サーバ41は、バックアップ手段20がデータをバックアップするバックアップタイミング毎に各サーバのバックアップデータを取得する。そして、各部分サーバ41は、取得したバックアップデータをリストアする(ステップS10)。(Partial restore processing)
First, in the partial restore process of FIG. 10, the plurality of partial servers 41 included in the partial restore
なお、部分リストア処理において、各部分サーバ41は、差分バックアップデータ(増分バックアップデータ)のKVデータのみを保持する。また、部分リストア処理においては、差分バックアップ(増分バックアップ)の世代を問わず、バックアップ手段20に格納された全てのバックアップデータが各部分サーバ41に個別にリストア(部分リストア)される。
In the partial restore process, each partial server 41 holds only KV data of differential backup data (incremental backup data). In the partial restore process, all backup data stored in the
(第1処理手段におけるMapReduce処理)
続いて、第1処理手段50において、分散処理フレームワークであるMapReduce処理が、以下のステップS20〜S40を通じて実行される。(MapReduce process in the first processing means)
Subsequently, in the first processing means 50, MapReduce processing, which is a distributed processing framework, is executed through the following steps S20 to S40.
図10の第1マップ処理において、第1処理手段50の第1マップ処理部51は、部分リストア手段40に含まれる複数の部分サーバ41によってリストアされた複数のKVペアを並列に読み出すMap処理が実行される(ステップS20)。
In the first map processing of FIG. 10, the first
なお、第1マップ処理においては、各部分サーバ41が保持するデータの世代を考慮する必要はない。 In the first map process, it is not necessary to consider the generation of data held by each partial server 41.
第1シャッフル処理において、第1処理手段50の第1シャッフル処理部53は、第1マップ処理部51によってMap処理された複数のKVペアのうち同じキー(KEY)を持つものをKVペア群(第1のキーバリューペア群)としてまとめる(ステップS30)。
In the first shuffle processing, the first
第1リデュース処理において、第1に、第1処理手段50の第1リデュース処理部55は、キー毎にまとめられたKVペア群(第1のキーバリューペア群)の中で更新時間(Time)が最新であるKVペアを、KVペア群毎に選択する。第2に、第1リデュース処理部55は、選択したKVペアを所定のレプリケーション数に従ってレプリケーション(複製)する。第3に、第1リデュース処理部55は、レプリケーションされたKVペアに対して、新たにKVペアを格納するサーバのノードIDを付与し、一時的KVペアを作成する。以上の第1〜3の手順を含む第1リデュース処理によって、部分リストアされたバックアップデータから、キー(KEY)毎に更新時間が最新であるKVペアが選択され、KVペアのレプリケーションとノードIDの付与が実行される(ステップS40)。なお、第1リデュース処理における第2と第3の手順は、順序を入れ替えて実行してもよい。同一のキー(KEY)を持つ一時的KVペアは、一時的KVペア群(第1の一時的KVペア群)として集約され、第2処理手段60に対して出力される。
In the first reduction process, first, the first
(第2処理手段におけるMapReduce処理)
続いて、第2処理手段60において、分散処理フレームワークであるMapReduce処理が、以下のステップS50〜S70を通じて実行される。(MapReduce processing in the second processing means)
Subsequently, in the second processing means 60, MapReduce processing, which is a distributed processing framework, is executed through the following steps S50 to S70.
図10の第2マップ処理において、第2処理手段60の第2マップ処理部61は、各キー(KEY)の一時的KVペアを、キー(KEY)毎の一時的KVペア群(第1のキーバリューペア)として並列に読み出すMap処理を実行する(ステップS50)。
In the second map processing of FIG. 10, the second
第2シャッフル処理において、第2シャッフル処理部63は、第2マップ処理部61によってMap処理された複数のKVペアを、同じノードID(NodeID)を持つ一時的KVペア毎に集約する。そして、第2シャッフル処理部63は、同じノードID(NodeID)を持つ一時的KVペア毎に集約された複数のKVペアによって、一時的KVペア群(第2の一時的キーバリューペア群)を形成させる(ステップS60)。
In the second shuffle process, the
第2リデュース処理において、第2リデュース処理部65は、ノードID(NodeID)毎にまとめられた一時的KVペアのノードID(NodeID)を削除し、通常の構造を持つKVペアに変換する(ステップS70)。通常の構造を持つKVペアは、同じノードID毎に集約されたKVペア群(第2のキーバリューペア)として、指定されたサーバに振り分けられる。
In the second reduction process, the second
以上が、本実施形態に係るデータリストア装置の動作についての詳細な説明である。なお、第1の実施形態に係るデータリストア装置の動作は、上述の処理手順に限定されず、必要に応じて種々の追加・削除等の変更を施してもよい。 The above is a detailed description of the operation of the data restoration apparatus according to the present embodiment. Note that the operation of the data restoration apparatus according to the first embodiment is not limited to the above-described processing procedure, and various changes such as addition and deletion may be performed as necessary.
一般に、分散KVSは、KVペア更新時の排他制御を可能にするためにKVペアの更新時間情報を持つ。本発明の第1の実施形態に係る分散型データ処理システムにおいては、更新時間が最新であるKVペアを選択するために、KVペアの更新時間情報を利用する。その結果、多世代にわたる差分・増分バックアップのデータを並列に読み込んで処理することができ、短時間でデータリストアすることが可能となる。 In general, the distributed KVS has KV pair update time information in order to enable exclusive control during KV pair update. In the distributed data processing system according to the first embodiment of the present invention, the KV pair update time information is used to select the KV pair with the latest update time. As a result, differential / incremental backup data over multiple generations can be read and processed in parallel, and data restoration can be performed in a short time.
また、本発明の第1の実施形態に係る分散型データ処理システムにおいては、データのリストア時に直接分散KVSの各サーバにリストアするのではなく、部分サーバに一度データをリストアし、部分サーバからデータを直接読み出す。その結果、データのバックアップ時のサーバ構成に依存しないデータリストアが可能となる。 In the distributed data processing system according to the first embodiment of the present invention, instead of directly restoring to each server of the distributed KVS at the time of data restoration, the data is restored once to the partial server, and the data from the partial server is restored. Is read directly. As a result, data restoration independent of the server configuration at the time of data backup becomes possible.
さらに、本発明の第1の実施形態に係る分散型データ処理システムのMapReduce処理においては、本来のKVペアに格納先サーバ番号を意味するノードIDを付与した一次的KVペアを内部的に作成する。その結果、データをリストアする分散KVSのサーバ単位でKVペアを集約することができる。 Furthermore, in the MapReduce process of the distributed data processing system according to the first embodiment of the present invention, a primary KV pair is internally created by assigning a node ID indicating a storage destination server number to the original KV pair. . As a result, KV pairs can be aggregated in units of distributed KVS servers that restore data.
Reduce処理において、格納先が同一であるKVペアがまとめられるため、分散KVSのサーバへ送信する際に大きなサイズのデータとして転送することが可能となり、効率的なネットワーク使用が可能となる。 In the Reduce process, the KV pairs having the same storage destination are collected, so that when the data is transmitted to the distributed KVS server, it can be transferred as a large size data, and the network can be used efficiently.
すなわち、本発明の第1の実施形態に係る分散型データ処理システムによれば、分散KVS環境の多世代にわたる差分バックアップデータを、分散KVSのサーバ構成に依存せず、一度の処理で任意のサーバ構成の分散KVSにリストアすることが可能となる。 That is, according to the distributed data processing system according to the first embodiment of the present invention, the differential backup data over multiple generations in the distributed KVS environment can be processed at any time in a single process without depending on the server configuration of the distributed KVS. It is possible to restore to the distributed KVS of the configuration.
また、本発明の第1の実施形態に係る分散型データ処理システムによれば、サーバ単位でKVペアを集約することによって、リストア時のネットワーク転送効率を向上させることが可能となる。 Further, according to the distributed data processing system according to the first embodiment of the present invention, it is possible to improve network transfer efficiency at the time of restoration by aggregating KV pairs in units of servers.
ところで、本発明の第1の実施形態に係る分散型データ処理システムによるデータ処理方法は、これまで説明してきた分散型データ処理システムとは異なる構成で実現されたとしても、本発明の範囲に含まれる。また、本発明のデータ処理方法を実行するデータ処理プログラム、そのデータ処理プログラムを記録するプログラム記録媒体も本発明の範囲に含まれる。 By the way, the data processing method by the distributed data processing system according to the first embodiment of the present invention is included in the scope of the present invention even if it is realized with a different configuration from the distributed data processing system described so far. It is. Further, a data processing program for executing the data processing method of the present invention and a program recording medium for recording the data processing program are also included in the scope of the present invention.
以下において、本発明の第1の実施形態に係る分散型データ処理システムをより具体化した実施形態について説明する。 In the following, a more specific embodiment of the distributed data processing system according to the first embodiment of the present invention will be described.
(第2の実施形態)
図11および図12は、第2の実施形態に係る分散型データ処理システムの概念図である。また、図13および図14は、第2の実施形態における各構成要素の処理を説明するための概念図である。(Second Embodiment)
11 and 12 are conceptual diagrams of a distributed data processing system according to the second embodiment. FIG. 13 and FIG. 14 are conceptual diagrams for explaining processing of each component in the second embodiment.
図11および図12のように、第2の実施形態に係る分散型データ処理システムは、バックアップ手段200と、部分リストア手段400と、第1処理手段500と、第2処理手段600とを備える。なお、図12は、第2処理手段600が、第2の実施形態に係る分散型データ処理システムによってMapReduce処理されたKVペアを第2データベースサーバ群700に含まれる各サーバ710に振り分ける一例を示す。また、第2データベースサーバ群700は、第2の実施形態に係る分散型データ処理システムに含むように構成してもよいし、含まないように構成してもよい。 As shown in FIGS. 11 and 12, the distributed data processing system according to the second embodiment includes a backup unit 200, a partial restore unit 400, a first processing unit 500, and a second processing unit 600. FIG. 12 shows an example in which the second processing unit 600 distributes the KV pairs that have been MapReduce processed by the distributed data processing system according to the second embodiment to each server 710 included in the second database server group 700. . The second database server group 700 may be configured to be included in the distributed data processing system according to the second embodiment, or may be configured not to be included.
バックアップ手段200は、時刻T1にバックアップされたKVペアを格納する第1バックアップ部210−1と、時刻T2にバックアップされたKVペアを格納する第2バックアップ部210−2とを含む。なお、第2の実施形態においては、レプリケーション数を3とする。 The backup means 200 includes a first backup unit 210-1 that stores a KV pair backed up at time T1, and a second backup unit 210-2 that stores a KV pair backed up at time T2. In the second embodiment, the number of replications is 3.
図11のように、第1バックアップ部210−1には、第1サーバ、第3サーバ、第4サーバ、第5サーバ及び第6サーバに関して、Key1及びKey6を含むKVペアが差分バックアップされている。また、第2バックアップ部210−2には、第1サーバ、第3サーバ及び第4サーバに関して、Key1を含むKVペアが差分バックアップされている。 As shown in FIG. 11, the first backup unit 210-1 is differentially backed up for KV pairs including Key1 and Key6 with respect to the first server, the third server, the fourth server, the fifth server, and the sixth server. . The second backup unit 210-2 is differentially backed up for KV pairs including Key1 with respect to the first server, the third server, and the fourth server.
バックアップされたKVペアをリストアするタイミングにおいて、部分リストア手段400は、バックアップ手段200が格納する各KVペアに対応して複数の部分サーバ410(410−1〜8)を構成する。第2の実施形態では、第1〜第8部分サーバ410−1〜8が構成され、それぞれの部分サーバ410にKVペアが取得される。各部分サーバ410において、個別にデータがリストア(部分リストア)される。その結果、差分バックアップを行ったときのサーバ構成に依存せず、任意のサーバ構成に対応するようにデータがリストアされる。 At the timing of restoring the backed up KV pairs, the partial restore unit 400 configures a plurality of partial servers 410 (410-1 to 8) corresponding to each KV pair stored in the backup unit 200. In the second embodiment, first to eighth partial servers 410-1 to 410-8 are configured, and a KV pair is acquired in each partial server 410. In each partial server 410, data is individually restored (partial restore). As a result, the data is restored so as to correspond to an arbitrary server configuration without depending on the server configuration when the differential backup is performed.
各部分サーバ410で部分リストアされたKVペアは、第1処理手段500に向けて出力される。 The KV pair partially restored by each partial server 410 is output toward the first processing means 500.
図13に示すように、第1処理手段500において、第1マップ処理部510は、KVペアに対して並列でMap処理を実行する。そして、第1マップ処理部510は、複数のKVペアを第1シャッフル処理部530に向けて出力する。 As shown in FIG. 13, in the first processing means 500, the first map processing unit 510 executes Map processing on the KV pair in parallel. Then, the first map processing unit 510 outputs the plurality of KV pairs to the first shuffle processing unit 530.
第1シャッフル処理部530は、複数のKVペアをキー(KEY)によって並び替え、同一のキー(KEY)を持つ複数のKVペアを集約してKVペア群(第1のキーバリューペア群)とする。そして、第1シャッフル処理部530は、集約したKVペア群(第1のキーバリューペア群)を第1リデュース処理部550に向けて出力する。 The first shuffle processing unit 530 sorts a plurality of KV pairs by a key (KEY), aggregates a plurality of KV pairs having the same key (KEY), and a KV pair group (first key-value pair group). To do. Then, the first shuffle processing unit 530 outputs the aggregated KV pair group (first key-value pair group) toward the first reduce processing unit 550.
第1リデュース処理部550は、各KVペア群(第1のキーバリューペア群)の中から最新の更新時間(Time)を持つKVペアを一つ選択する。第1リデュース処理部550は、選択した一つのKVペアをレプリケーション数(第2の実施形態では3)に応じて、3つレプリケーション(複製)する。第1リデュース処理部550は、レプリケーションした全てのKVペアに格納先サーバのノードIDを付与することによって一時的KVペアを作成する。第1リデュース処理部550は、一時的KVペアをノードID毎にまとめて一時的KVペア群(第1の一時的キーバリューペア群)とする。そして、第1リデュース処理部550は、一時的KVペア群(第1の一時的キーバリューペア群)を第2処理手段600に向けて出力する。 The first reduce processing unit 550 selects one KV pair having the latest update time (Time) from each KV pair group (first key-value pair group). The first reduce processing unit 550 replicates (replicates) three selected KV pairs according to the number of replications (3 in the second embodiment). The first reduce processing unit 550 creates temporary KV pairs by assigning node IDs of storage destination servers to all replicated KV pairs. The first reduce processing unit 550 collects temporary KV pairs for each node ID and forms a temporary KV pair group (first temporary key-value pair group). Then, the first reduce processing unit 550 outputs the temporary KV pair group (first temporary key-value pair group) to the second processing unit 600.
図14に示すように、第2処理手段600において、第2マップ処理部610は、一時的KVペア群(第1の一時的キーバリューペア群)としてまとめられた複数の一時的KVペアに対して、並列でMap処理を実行する。そして、第2マップ処理部610は、複数の一時的KVペアを第2シャッフル処理部630に向けて出力する。 As shown in FIG. 14, in the second processing means 600, the second map processing unit 610 performs a plurality of temporary KV pairs collected as a temporary KV pair group (first temporary key-value pair group). The Map process is executed in parallel. Then, the second map processing unit 610 outputs a plurality of temporary KV pairs to the second shuffle processing unit 630.
第2シャッフル処理部630は、複数の一時的KVペアを、ノードID(NodeID)をキー(KEY)として並び替え、同一のノードID(NodeID)を持つ一時的KVペアをまとめて一時的KVペア群(第2の一時的キーバリューペア群)とする。そして、第2シャッフル処理部630は、一時的KVペア群(第2の一時的キーバリューペア群)を第2リデュース処理部650に向けて出力する。 The second shuffle processing unit 630 rearranges a plurality of temporary KV pairs using the node ID (NodeID) as a key (KEY), and collects temporary KV pairs having the same node ID (NodeID) as a temporary KV pair. Group (second temporary key-value pair group). Then, the second shuffle processing unit 630 outputs the temporary KV pair group (second temporary key-value pair group) to the second reduce processing unit 650.
第2リデュース処理部650は、ノードID毎にまとめられた複数の一時的KVペアからノードID(NodeID)を削除する。そして、第2リデュース処理部650は、ノードID(NodeID)毎にまとめた複数のKVペアを含むKVペア群(第2のキーバリューペア群)を、ノードIDに対応するサーバに向けて出力する。 The second reduce processing unit 650 deletes the node ID (NodeID) from the plurality of temporary KV pairs collected for each node ID. And the 2nd reduction process part 650 outputs the KV pair group (2nd key value pair group) containing the several KV pair put together for every node ID (NodeID) toward the server corresponding to node ID. .
図14のように、第2の実施形態においては、第1’サーバ710−1(ノードID1)にKey1及びKey6を含むKVペアが格納される。また、第3’及び第5’サーバ710−3、5(ノードID3、5)にKey1を含むKVペア、第4’及び第6’サーバ710−4、6(ノードID4、6)にKey6を含むKVペアが格納される。第2データベースサーバ群700に含まれるそれぞれのサーバ710(710−1〜6)には、更新時間(Time)が最新のKVペアが格納されることになる。
As shown in FIG. 14, in the second embodiment, a KV pair including Key1 and Key6 is stored in the first 'server 710-1 (node ID1). Also, KV pair including Key1 in the 3 ′ and 5 ′ servers 710-3 and 5 (
(第3の実施形態)
第3の実施形態は、バックアップ時にレプリケーションが失敗した場合の一例である。(Third embodiment)
The third embodiment is an example when replication fails during backup.
図15のように、第3の実施形態に係る分散型データ処理システムの第1処理手段500は、第1マップ処理部512と、第1シャッフル処理部532と、第1リデュース処理部552とを有する。なお、第3の実施形態の第1処理手段500については、内部構成の符号は第2の実施形態と異なるものの、第2の実施形態と同じ符号を用いている。また、第3の実施形態のその他の構成要素については、第2の実施形態と同様であるため、説明は省略する。 As shown in FIG. 15, the first processing unit 500 of the distributed data processing system according to the third embodiment includes a first map processing unit 512, a first shuffle processing unit 532, and a first reduce processing unit 552. Have. In addition, about the 1st processing means 500 of 3rd Embodiment, although the code | symbol of an internal structure differs from 2nd Embodiment, the same code | symbol as 2nd Embodiment is used. In addition, since the other components of the third embodiment are the same as those of the second embodiment, description thereof is omitted.
図15に示す第3の実施形態では、レプリケーション数が3であるのに、2つのKVペアしか見つからなかった場合の例である。通常、レプリケーション数が3であれば、3つのKVペアが見つかるはずである。ところが、図15において、Keyが1となるKVペアのうち、更新時間(Time)が4となるKVペアは二つしか存在しない。 The third embodiment shown in FIG. 15 is an example in which only two KV pairs are found even though the number of replications is three. Normally, if the number of replications is 3, three KV pairs should be found. However, in FIG. 15, there are only two KV pairs whose update time (Time) is 4 among the KV pairs whose Key is 1.
通常、分散KVSは、耐障害性を確保する目的で、1つのKVペアを異なるサーバにレプリケーションする。そのため、Reduce処理でレプリケーション数が3であれば、同じKVペアが3つ格納されているはずである。しかしながら、第3の実施形態では、何らかの障害等によってレプリケーションできず、同じKVペアは2つしか見つからなかった。 Normally, the distributed KVS replicates one KV pair to different servers for the purpose of ensuring fault tolerance. Therefore, if the number of replications is 3 in the Reduce process, three same KV pairs should be stored. However, in the third embodiment, replication could not be performed due to some failure or the like, and only two identical KV pairs were found.
第3の実施形態の場合においても、更新時間(Time)が最新であるKVペアを1つ選ぶのみである。そのため、KVペアが想定された数だけ存在しないとしても、第3の実施形態に係る分散型データ処理システムは問題なく動作することがわかる。 Also in the case of the third embodiment, only one KV pair with the latest update time (Time) is selected. Therefore, it can be seen that the distributed data processing system according to the third embodiment operates without any problem even if the expected number of KV pairs does not exist.
以上のように、本発明の第3の実施形態に係る分散型データ処理システムにおいては、データの更新情報を利用することによってレプリケーションにおけるリモートデータ間の不整合を修正できる。そのため、バックアップ時のレプリケーションの障害が問題とならない。 As described above, in the distributed data processing system according to the third embodiment of the present invention, it is possible to correct inconsistencies between remote data in replication by using data update information. Therefore, replication failure during backup does not become a problem.
(第4の実施形態)
図16及び図17に示すように、第4の実施形態に係る分散型データ処理システムは、バックアップ手段201、部分リストア手段401、第1処理手段501、第2処理手段601、第2データベースサーバ群701を備える。(Fourth embodiment)
As shown in FIGS. 16 and 17, the distributed data processing system according to the fourth embodiment includes a backup unit 201, a partial restore unit 401, a first processing unit 501, a second processing unit 601, and a second database server group. 701.
第4の実施形態は、データベースをスケールアウトした場合の例である。図16の第1データベースサーバ群101の例では、スケールアウト前後で、第1−1データベースサーバ群101−1と、第1−2データベースサーバ群101−2とを区別して図示している。実際には、第1−1データベースサーバ群101−1を構成する第1〜第3サーバ111−1〜3に第4サーバ112−4を追加した構成が、第1−2データベースサーバ群101−2であり、スケールアウトによってサーバ構成が変更されている。 The fourth embodiment is an example when the database is scaled out. In the example of the first database server group 101 in FIG. 16, the 1-1 database server group 101-1 and the 1-2 database server group 101-2 are distinguished from each other before and after the scale-out. Actually, the configuration in which the fourth server 112-4 is added to the first to third servers 111-1 to 111-3 constituting the first 1-1 database server group 101-1, is the first-2 database server group 101-. 2 and the server configuration is changed by the scale-out.
第1段階において、KVペアを格納するデータベースサーバ群101は、図16の第1−1データベースサーバ群101−1のようなサーバ構成を取っている。第1段階では、第1バックアップ部211−1に、第1−1データベースサーバ群101−1のバックアップデータが格納される。 In the first stage, the database server group 101 storing the KV pair has a server configuration like the 1-1 database server group 101-1 in FIG. In the first stage, backup data of the 1-1 database server group 101-1 is stored in the first backup unit 211-1.
次に、第1段階とは異なる第2段階において、KVペアを格納するデータベースサーバ群101は、図16の第1−2データベースサーバ群101−2のようなサーバ構成にスケールアウトされる。第2段階では、第2バックアップ部211−2に、第1−2データベースサーバ群101−2のバックアップデータが格納される。 Next, in a second stage different from the first stage, the database server group 101 storing the KV pairs is scaled out to a server configuration like the 1-2 database server group 101-2 in FIG. In the second stage, the backup data of the 1-2 database server group 101-2 is stored in the second backup unit 211-2.
バックアップデータをリストアするタイミングにおいて、部分リストア手段401は、異なるサーバ構成を取る各データベースサーバ群101のバックアップデータを格納する第1及び第2バックアップ部211−1、2から並列でバックアップデータを取得する。部分リストア手段401は、バックアップ手段201がデータをバックアップする各バックアップタイミングにおける各サーバ111および112の構成に対応させて、第1〜7部分サーバ411−1〜7を構成する。そして、部分リストア手段401は、それぞれの部分サーバ411においてバックアップデータを個別にリストア(部分リストア)する。 At the timing of restoring the backup data, the partial restore unit 401 obtains the backup data in parallel from the first and second backup units 211-1 and 211-2 storing the backup data of the database server groups 101 having different server configurations. . The partial restore unit 401 configures the first to seventh partial servers 411-1 to 7-7 in correspondence with the configurations of the servers 111 and 112 at each backup timing when the backup unit 201 backs up data. Then, the partial restore unit 401 individually restores (partial restore) backup data in each partial server 411.
図17に示すように、部分リストア手段401によって部分リストアされたKVペアは、第1処理手段501及び第2処理手段601によって処理され、第2データベースサーバ群701にリストアされる。第4の実施形態においては、第1’〜第8’サーバ711−1〜8にKVペアが振り分けられる。 As shown in FIG. 17, the KV pair partially restored by the partial restore unit 401 is processed by the first processing unit 501 and the second processing unit 601 and restored to the second database server group 701. In the fourth embodiment, KV pairs are allocated to the first 'to eighth' servers 711-1 to 8.
以上の、本発明の第4の実施形態に係る分散型データ処理システムにおいては、あるキー(KEY)を持つKVペアの格納先が第1リデュース処理で対応付けられるため、バックアップ時のサーバ構成に依存せずにリストアすることが可能となる。 In the distributed data processing system according to the fourth embodiment of the present invention, the storage destination of the KV pair having a certain key (KEY) is associated with the first reduce process, so that the server configuration at the time of backup is It is possible to restore without depending on it.
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理システムであって、
第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップするバックアップ手段と、
世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを所定のノード識別子に従って出力する出力手段と、を備えることを特徴とするデータ処理システム。
(付記2)
前記バックアップ手段は、
前記第1データベースサーバ群を構成する前記サーバに格納された前記データが更新された際に、更新された前記データを含む前記キーバリューペアを差分バックアップすることを特徴とする付記1に記載のデータ処理システム。
(付記3)
前記バックアップ手段は、
前記第1データベースサーバ群を構成する前記サーバに格納された前記データが更新された際に、更新された前記データを含む前記キーバリューペアを増分バックアップすることを特徴とする付記1又は2に記載のデータ処理システム。
(付記4)
前記出力手段は、
前記世代毎にバックアップされたキーバリューペアを前記バックアップ手段から受信し、受信した前記世代毎にバックアップされたキーバリューペアを世代毎にリストアする部分リストア手段を備え、
前記部分リストア手段は、
前記世代毎にバックアップされたキーバリューペアを、前記第1データベースサーバ群を構成する前記サーバ毎にリストアする部分サーバを少なくとも一つ有することを特徴とする付記1乃至3のいずれか一項に記載のデータ処理システム。
(付記5)
前記出力手段は、
前記複製されたキーバリューペアを前記ノード毎に集約して出力することを特徴とする付記1乃至4のいずれか一項に記載のデータ処理システム。
(付記6)
前記出力手段は、
リストアされた少なくとも一つの前記キーバリューペアを並列で読み出す第1マップ処理部と、
前記第1マップ処理部によって読み出された前記キーバリューペアを前記キーによって集約した第1のキーバリューペア群を形成させる第1シャッフル処理部と、
前記第1シャッフル部によって形成された前記第1のキーバリューペア群を構成する前記キーバリューペアのうち最新の更新情報を持つ前記キーバリューペアを一つ選択し、前記選択されたキーバリューペアをレプリケーション数に応じて複製し、前記複製されたキーバリューペアの全てに前記ノード識別子を付与して一時的キーバリューペアを作製し、同一の前記キーを持つ少なくとも一つの前記一時的キーバリューペアを集約し、集約した少なくとも一つの前記一時的キーバリューペアを第1の一時的キーバリューペア群として出力する第1リデュース処理部と、
前記第1リデュース処理部によって出力された前記第1の一時的キーバリューペア群を構成する少なくとも一つの前記一時的キーバリューペアを並列で読み出す第2マップ処理部と、
前記第2マップ処理部によって読み出された前記一時的キーバリューペアを前記ノード識別子によって集約して第2の一時的キーバリューペア群を形成させる第2シャッフル処理部と、
前記第2シャッフル処理部によって形成された前記第2の一時的キーバリューペア群を構成する前記一時的キーバリューペアから前記ノード識別子を削除し、前記第2の一時的キーバリューペア群を構成していた少なくとも一つの前記キーバリューペアを前記ノード識別子毎に集約して第2のキーバリューペア群とし、第2データベースサーバ群を構成するサーバに対して前記第2のキーバリューペア群を前記ノード識別子に従って出力する第2リデュース処理部と、を有することを特徴とする付記1乃至5のいずれか一項に記載のデータ処理システム。
(付記7)
前記第1データベースサーバ群がサーバ構成を変更した際に、
前記バックアップ手段は、
前記第1データベースサーバ群のサーバ構成の変更に応じて、前記キーバリューペアを前記更新情報に対応させてバックアップする付記1乃至6のいずれか一項に記載のデータ処理システム。
(付記8)
前記出力手段は、特定のアルゴリズムに従って、前記複製されたキーバリューペアに前記ノード識別子を付与することを特徴とする付記1乃至7のいずれか一項に記載のデータ処理システム。
(付記9)
前記出力手段は、
前記更新情報として、前記データに含まれる更新時間を用いることを特徴とする付記1乃至8のいずれか一項に記載のデータ処理システム。
(付記10)
前記バックアップ手段は、
バックアップが実行されたタイミングに関する情報を前記データに付加し、
前記出力手段は、
前記更新情報として、前記バックアップが実行されたタイミングに関する情報を用いることを特徴とする付記1乃至9のいずれか一項に記載のデータ処理システム。
(付記11)
分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理方法であって、
第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップし、
世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを所定のノード識別子に従って出力することを特徴とするデータ処理方法。
(付記12)
分散型キーバリューストア環境でバックアップされた更新順序を判別するための更新情報を持つデータをリストアするデータ処理プログラムを記録するプログラム記録媒体であって、
第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップする処理と、
世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを所定のノード識別子に従って出力する処理とをコンピュータに実行させることを特徴とするデータ処理プログラムを記録するプログラム記録媒体。A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(Appendix 1)
A data processing system for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
Backup means for backing up a key-value pair for each generation including the value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data;
At least one key-value pair backed up for each generation is read, and the first key-value pair group is formed by aggregating at least one read-out key-value pair with the key, and the first key-value pair group is formed. One key-value pair having the latest update information is selected from the key-value pair group, the selected key-value pair having the latest update information is duplicated according to the number of replications, and the duplicated key-value pair A data processing system comprising: output means for outputting the information according to a predetermined node identifier.
(Appendix 2)
The backup means includes
The data according to
(Appendix 3)
The backup means includes
The
(Appendix 4)
The output means includes
Receiving a key-value pair backed up for each generation from the backup means, and comprising a partial restore means for restoring the received key-value pair backed up for each generation for each generation;
The partial restoration means includes
4. The apparatus according to
(Appendix 5)
The output means includes
The data processing system according to any one of
(Appendix 6)
The output means includes
A first map processing unit for reading in parallel at least one restored key-value pair;
A first shuffle processing unit that forms a first key-value pair group in which the key-value pairs read out by the first map processing unit are aggregated by the key;
The key value pair having the latest update information is selected from the key value pairs constituting the first key value pair group formed by the first shuffle unit, and the selected key value pair is selected. Duplicating according to the number of replications, creating a temporary key-value pair by assigning the node identifier to all of the duplicated key-value pairs, and adding at least one temporary key-value pair having the same key A first reduction processing unit that aggregates and outputs the aggregated at least one temporary key-value pair as a first temporary key-value pair group;
A second map processing unit that reads in parallel at least one of the temporary key-value pairs constituting the first temporary key-value pair group output by the first reduce processing unit;
A second shuffle processor that aggregates the temporary key-value pairs read out by the second map processor by the node identifier to form a second temporary key-value pair group;
The node identifier is deleted from the temporary key-value pair that constitutes the second temporary key-value pair group formed by the second shuffle processing unit, and the second temporary key-value pair group is configured. The at least one key-value pair that has been collected is aggregated for each node identifier to form a second key-value pair group, and the second key-value pair group is assigned to the node that constitutes the second database server group. A data processing system according to any one of
(Appendix 7)
When the first database server group changes the server configuration,
The backup means includes
The data processing system according to any one of
(Appendix 8)
The data processing system according to any one of
(Appendix 9)
The output means includes
The data processing system according to any one of
(Appendix 10)
The backup means includes
Adding information about the timing of the backup to the data,
The output means includes
10. The data processing system according to any one of
(Appendix 11)
A data processing method for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
Back up a key-value pair for each generation including a pair of a value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data,
At least one key-value pair backed up for each generation is read, and the first key-value pair group is formed by aggregating at least one read-out key-value pair with the key, and the first key-value pair group is formed. One key-value pair having the latest update information is selected from the key-value pair group, the selected key-value pair having the latest update information is duplicated according to the number of replications, and the duplicated key-value pair Is output in accordance with a predetermined node identifier.
(Appendix 12)
A program recording medium for recording a data processing program for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
A process of backing up a key-value pair for each generation including the value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data;
At least one key-value pair backed up for each generation is read, and the first key-value pair group is formed by aggregating at least one read-out key-value pair with the key, and the first key-value pair group is formed. One key-value pair having the latest update information is selected from the key-value pair group, the selected key-value pair having the latest update information is duplicated according to the number of replications, and the duplicated key-value pair A program recording medium for recording a data processing program that causes a computer to execute a process of outputting a program according to a predetermined node identifier.
この出願は、2013年9月11日に出願された日本出願特願2013−188460を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2013-188460 for which it applied on September 11, 2013, and takes in those the indications of all here.
1 分散型データ処理システム
5 中央演算処理装置
6 ROM
7 RAM
8 記憶装置
9 入出力装置
10 第1データベースサーバ群
11 サーバ
20 バックアップ手段
21 バックアップ部
30 データリストア装置
40 部分リストア手段
41 部分サーバ
50 第1処理手段
51 第1マップ処理部
53 第1シャッフル処理部
55 第1リデュース処理部
60 第2処理手段
61 第2マップ処理部
63 第2シャッフル処理部
65 第2リデュース処理部
70 第2データベースサーバ群1 Distributed
7 RAM
8
Claims (10)
第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップするバックアップ手段と、
世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを格納先となるサーバのノード識別子に従って出力する出力手段と、を備えることを特徴とするデータ処理システム。 A data processing system for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
Backup means for backing up a key-value pair for each generation including the value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data;
At least one key-value pair backed up for each generation is read, and the first key-value pair group is formed by aggregating at least one read-out key-value pair with the key, and the first key-value pair group is formed. One key-value pair having the latest update information is selected from the key-value pair group, the selected key-value pair having the latest update information is duplicated according to the number of replications, and the duplicated key-value pair Output means for outputting according to the node identifier of the server as the storage destination.
前記第1データベースサーバ群を構成する前記サーバに格納された前記データが更新された際に、更新された前記データを含む前記キーバリューペアを差分バックアップすることを特徴とする請求項1に記載のデータ処理システム。 The backup means includes
The differential backup of the key-value pair including the updated data is performed when the data stored in the server constituting the first database server group is updated. Data processing system.
前記第1データベースサーバ群を構成する前記サーバに格納された前記データが更新された際に、更新された前記データを含む前記キーバリューペアを増分バックアップすることを特徴とする請求項1又は2に記載のデータ処理システム。 The backup means includes
3. The key-value pair including the updated data is incrementally backed up when the data stored in the server constituting the first database server group is updated. The data processing system described.
前記世代毎にバックアップされたキーバリューペアを前記バックアップ手段から受信し、受信した前記世代毎にバックアップされたキーバリューペアを世代毎にリストアする部分リストア手段を備え、
前記部分リストア手段は、
前記世代毎にバックアップされたキーバリューペアを、前記第1データベースサーバ群を構成する前記サーバ毎にリストアする部分サーバを少なくとも一つ有することを特徴とする請求項1乃至3のいずれか一項に記載のデータ処理システム。 The output means includes
Receiving a key-value pair backed up for each generation from the backup means, and comprising a partial restore means for restoring the received key-value pair backed up for each generation for each generation;
The partial restoration means includes
4. The apparatus according to claim 1, further comprising at least one partial server that restores the key-value pair backed up for each generation for each of the servers constituting the first database server group. 5. The data processing system described.
前記複製されたキーバリューペアを前記ノード識別子毎に集約して出力することを特徴とする請求項1乃至4のいずれか一項に記載のデータ処理システム。 The output means includes
5. The data processing system according to claim 1, wherein the duplicated key-value pairs are aggregated and output for each node identifier.
リストアされた少なくとも一つの前記キーバリューペアを並列で読み出す第1マップ処理部と、
前記第1マップ処理部によって読み出された前記キーバリューペアを前記キーによって集約した第1のキーバリューペア群を形成させる第1シャッフル処理部と、
前記第1シャッフル処理部によって形成された前記第1のキーバリューペア群を構成する前記キーバリューペアのうち最新の更新情報を持つ前記キーバリューペアを一つ選択し、前記選択されたキーバリューペアをレプリケーション数に応じて複製し、前記複製されたキーバリューペアの全てに前記ノード識別子を付与して一時的キーバリューペアを作製し、同一の前記キーを持つ少なくとも一つの前記一時的キーバリューペアを集約し、集約した少なくとも一つの前記一時的キーバリューペアを第1の一時的キーバリューペア群として出力する第1リデュース処理部と、
前記第1リデュース処理部によって出力された前記第1の一時的キーバリューペア群を構成する少なくとも一つの前記一時的キーバリューペアを並列で読み出す第2マップ処理部と、
前記第2マップ処理部によって読み出された前記一時的キーバリューペアを前記ノード識別子によって集約して第2の一時的キーバリューペア群を形成させる第2シャッフル処理部と、
前記第2シャッフル処理部によって形成された前記第2の一時的キーバリューペア群を構成する前記一時的キーバリューペアから前記ノード識別子を削除し、前記第2の一時的キーバリューペア群を構成していた少なくとも一つの前記キーバリューペアを前記ノード識別子毎に集約して第2のキーバリューペア群とし、第2データベースサーバ群を構成するサーバに対して前記第2のキーバリューペア群を前記ノード識別子に従って出力する第2リデュース処理部と、を有することを特徴とする請求項1乃至5のいずれか一項に記載のデータ処理システム。 The output means includes
A first map processing unit for reading in parallel at least one restored key-value pair;
A first shuffle processing unit that forms a first key-value pair group in which the key-value pairs read out by the first map processing unit are aggregated by the key;
The key value pair having the latest update information is selected from the key value pairs constituting the first key value pair group formed by the first shuffle processing unit, and the selected key value pair is selected. According to the number of replications, and assigning the node identifier to all of the duplicated key-value pairs to create a temporary key-value pair, and at least one temporary key-value pair having the same key A first reduction processing unit that outputs the aggregated at least one temporary key-value pair as a first temporary key-value pair group;
A second map processing unit that reads in parallel at least one of the temporary key-value pairs constituting the first temporary key-value pair group output by the first reduce processing unit;
A second shuffle processor that aggregates the temporary key-value pairs read out by the second map processor by the node identifier to form a second temporary key-value pair group;
The node identifier is deleted from the temporary key-value pair that constitutes the second temporary key-value pair group formed by the second shuffle processing unit, and the second temporary key-value pair group is configured. The at least one key-value pair that has been collected is aggregated for each node identifier to form a second key-value pair group, and the second key-value pair group is assigned to the node that constitutes the second database server group. The data processing system according to claim 1, further comprising: a second reduction processing unit that outputs according to the identifier.
前記バックアップ手段は、
前記第1データベースサーバ群のサーバ構成の変更に応じて、前記キーバリューペアを前記更新情報に対応させてバックアップする請求項1乃至6のいずれか一項に記載のデータ処理システム。 When the first database server group changes the server configuration,
The backup means includes
The data processing system according to any one of claims 1 to 6, wherein the key-value pair is backed up corresponding to the update information in accordance with a change in a server configuration of the first database server group.
バックアップ手段が、第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップし、
出力手段が、世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを格納先となるサーバのノード識別子に従って出力することを特徴とするデータ処理方法。 A data processing method for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
A backup means backs up a key-value pair including a value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data in pairs for each generation,
The output means reads at least one key-value pair backed up for each generation, and aggregates at least one read-out key-value pair with the key to form a first key-value pair group, One key-value pair having the latest update information is selected from the first key-value pair group, and the selected key-value pair having the latest update information is replicated according to the number of replications. A data processing method comprising: outputting the key-value pair according to a node identifier of a server as a storage destination.
第1データベースサーバ群を構成する少なくとも一つのサーバに格納された前記データの値と、前記データを区別するキーとをペアで含むキーバリューペアを世代毎にバックアップする処理と、
世代毎にバックアップされた前記キーバリューペアを少なくとも一つ読み出し、読み出された少なくとも一つの前記キーバリューペアを前記キーで集約することによって第1のキーバリューペア群を形成させ、前記第1のキーバリューペア群から最新の更新情報を持つ前記キーバリューペアを一つ選択し、選択された前記最新の更新情報を持つキーバリューペアをレプリケーション数に応じて複製し、複製された前記キーバリューペアを格納先となるサーバのノード識別子に従って出力する処理とをコンピュータに実行させることを特徴とするデータ処理プログラム。 A data processing program for restoring data having update information for determining an update order backed up in a distributed key-value store environment,
A process of backing up a key-value pair for each generation including the value of the data stored in at least one server constituting the first database server group and a key for distinguishing the data;
At least one key-value pair backed up for each generation is read, and the first key-value pair group is formed by aggregating at least one read-out key-value pair with the key, and the first key-value pair group is formed. One key-value pair having the latest update information is selected from the key-value pair group, the selected key-value pair having the latest update information is duplicated according to the number of replications, and the duplicated key-value pair A data processing program for causing a computer to execute a process of outputting a message according to a node identifier of a server as a storage destination.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013188460 | 2013-09-11 | ||
JP2013188460 | 2013-09-11 | ||
PCT/JP2014/004469 WO2015037205A1 (en) | 2013-09-11 | 2014-09-01 | Data processing system, data processing method, and program recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2015037205A1 JPWO2015037205A1 (en) | 2017-03-02 |
JP6197872B2 true JP6197872B2 (en) | 2017-09-20 |
Family
ID=52665337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015536443A Expired - Fee Related JP6197872B2 (en) | 2013-09-11 | 2014-09-01 | Data processing system, data processing method, and data processing program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6197872B2 (en) |
WO (1) | WO2015037205A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6967870B2 (en) * | 2017-04-13 | 2021-11-17 | ヤフー株式会社 | Database linkage system, database linkage method, and program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4861286B2 (en) * | 2007-10-02 | 2012-01-25 | 日本電信電話株式会社 | Data backup method, restoration processing device, program, and recording medium |
US9323775B2 (en) * | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
JP2012221419A (en) * | 2011-04-13 | 2012-11-12 | Hitachi Ltd | Information storage system and data duplication method thereof |
-
2014
- 2014-09-01 JP JP2015536443A patent/JP6197872B2/en not_active Expired - Fee Related
- 2014-09-01 WO PCT/JP2014/004469 patent/WO2015037205A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2015037205A1 (en) | 2017-03-02 |
WO2015037205A1 (en) | 2015-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031096B (en) | Distributed storage system construction method based on mimicry defense | |
CN106815218B (en) | Database access method and device and database system | |
CN107430603B (en) | System and method for massively parallel processing of databases | |
CN108073656A (en) | A kind of method of data synchronization and relevant device | |
CN106843745A (en) | Capacity expansion method and device | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
JP2010191558A (en) | Storage system | |
WO2016180049A1 (en) | Storage management method and distributed file system | |
JP6288596B2 (en) | Data processing method and apparatus | |
JP6440773B2 (en) | Data replication method and apparatus | |
WO2011100366A2 (en) | System and method for managing replicas of objects in a distributed storage system | |
CN102833273B (en) | Data recovery method and distributed cache system during temporary derangement | |
CN109561151A (en) | Date storage method, device, server and storage medium | |
CN107038192B (en) | Database disaster tolerance method and device | |
CN112015591A (en) | Log management method, server and database system | |
JP6197872B2 (en) | Data processing system, data processing method, and data processing program | |
CN116303789A (en) | Parallel synchronization method and device for multi-fragment multi-copy database and readable medium | |
WO2018169040A1 (en) | Difference management device, storage system, difference management method, and program | |
Noor et al. | Survey on replication techniques for distributed system | |
Jiang et al. | MyStore: A high available distributed storage system for unstructured data | |
KR101748913B1 (en) | Cluster management method and data storage system for selecting gateway in distributed storage environment | |
JP6637258B2 (en) | Storage system migration method and program | |
JP6853506B2 (en) | Storage system, data sorting method and program | |
JP2015201027A (en) | Node and program | |
CN115878046B (en) | Data processing method, system, device, storage medium and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170509 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170706 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170807 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6197872 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |