JP2014085883A - Device, method, and program for data matching - Google Patents
Device, method, and program for data matching Download PDFInfo
- Publication number
- JP2014085883A JP2014085883A JP2012234965A JP2012234965A JP2014085883A JP 2014085883 A JP2014085883 A JP 2014085883A JP 2012234965 A JP2012234965 A JP 2012234965A JP 2012234965 A JP2012234965 A JP 2012234965A JP 2014085883 A JP2014085883 A JP 2014085883A
- Authority
- JP
- Japan
- Prior art keywords
- data
- redundant
- unit
- storage units
- redundant data
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、冗長化されたデータ間の整合性を維持する技術に関する。 The present invention relates to a technique for maintaining consistency between redundant data.
従来、データを格納する装置が故障した場合に、当該装置に格納されたデータが破損または消失することを防止するため、複数の装置に同じデータを格納する冗長化が行われている。たとえば、同じデータのレプリカを複数のサーバに分散させて管理する分散型ファイルシステムが実現されている。 Conventionally, when a device that stores data fails, data stored in the device is prevented from being damaged or lost, and redundancy for storing the same data in a plurality of devices has been performed. For example, a distributed file system that manages replicas of the same data distributed to a plurality of servers has been realized.
たとえば、非特許文献1は、分散型ファイルシステムの一例を開示している。このシステムは、各クラスタを1つのマスタと複数のサーバとで構成する。複数のクライアントがクラスタにアクセスする。クラスタにファイルを格納するときは、ファイルを固定長の複数のブロックに分割し、ブロック1つ1つの複製をサーバに格納する。このように、ファイルを複製して冗長化し、複数サーバ上に分散して保持することにより、耐故障性を向上させ、複数サーバにおける並列処理を可能にして処理効率の向上を図ることができる。
For example, Non-Patent
しかしながら、上記の技術においては、冗長化した複数のデータ(以下、「冗長データ」とも呼ぶ。冗長データは、複製元のデータおよび複製先のデータを含む。)間での整合性を維持する際に、処理性能が低下するという問題があった。 However, in the above technique, when maintaining consistency between a plurality of redundant data (hereinafter also referred to as “redundant data”. The redundant data includes data at the copy source and data at the copy destination). In addition, there is a problem that the processing performance deteriorates.
たとえば、ファイルシステムのひとつのサーバへの書込処理が途中で異常終了した場合、当該サーバに格納されたデータと、他のサーバに格納されたデータとの間でデータが不一致となる。かかる問題に対処する手法として、トランザクション処理やチェックサムを利用して不一致状態を検知し自動的に冗長データを相互に一致させる手法や、上位アプリケーションから書込処理を再実行して冗長データを相互に一致させる手法が存在する。 For example, when the writing process to one server of the file system ends abnormally in the middle, the data stored in the server does not match the data stored in the other server. To deal with this problem, transaction processing and checksums are used to detect inconsistencies and automatically match redundant data with each other. Redundant data is re-executed from a higher-level application to exchange redundant data. There is a method to match.
しかしながら、トランザクション処理を利用した不一致状態の検知手法では、冗長データの同一性は維持されるが、ファイルシステム上のファイルにデータを書き込む際の処理手順が多くなり、上位アプリケーションの書込性能が低下する。 However, with the mismatch detection method using transaction processing, the identity of redundant data is maintained, but the processing procedure for writing data to a file on the file system increases, and the writing performance of the higher-level application decreases. To do.
これに対して、たとえば、非特許文献2が開示する、チェックサムを利用することで不一致状態を検知する手法では、まず、冗長データのチェックサムを取得しておく。そして、定期的または冗長データへのアクセスの際または書込処理が失敗した際などに、複数の冗長データ間でチェックサムを比較して、チェックサムが異なる場合には、冗長データが同一になるように冗長データの書き換えを行う。
On the other hand, for example, in the technique disclosed in Non-Patent
しかし、チェックサムを利用した不一致状態の検知手法では、上位アプリケーションからファイルシステム上のファイルにアクセスする処理と、ファイルシステム内部のチェックサムを比較する処理が競合する。このため、やはり、ファイルシステムの書込処理および読出処理の性能が低下する。 However, in the mismatch detection method using the checksum, the process of accessing the file on the file system from the upper application and the process of comparing the checksum in the file system conflict. For this reason, the performance of the write processing and read processing of the file system also deteriorates.
上位アプリケーションから書込処理を再実行する手法では、書込みが失敗した場合、上位アプリケーションが再度、失敗した書込の対象データを書き込む。この手法によれば、冗長データの整合性維持にかかる負荷を上位アプリケーションが制御することができ、自動的に冗長データの整合性を維持する手法に比べて上位アプリケーションの書込性能低下を抑制することができる。 In the method of re-execution of the writing process from the upper application, when the writing fails, the upper application writes the target data of the failed writing again. According to this method, the load applied to maintaining the consistency of redundant data can be controlled by the upper application, and the deterioration of the writing performance of the upper application is suppressed compared to the method of automatically maintaining the consistency of redundant data. be able to.
しかし、上位アプリケーションから書込処理を再実行する手法では、書込処理を行っている上位アプリケーションが異常終了した場合、再度書込処理を行うためには、上位アプリケーション自身がローカルファイルなどのデータ永続化装置に、処理結果を書き込んでおく必要がある。このため、上位アプリケーションの書込処理時間が長くなり、上位アプリケーションの書込性能が低下してしまう。 However, in the method of re-execution of the writing process from the upper application, if the upper application that is performing the writing process terminates abnormally, the upper application itself has to make a permanent file such as a local file in order to perform the writing process again. The processing result needs to be written in the processing apparatus. For this reason, the write processing time of the upper application becomes longer, and the write performance of the upper application is degraded.
本発明は、上記に鑑みてなされたものであって、上位アプリケーションの性能を低下させることなく、冗長データを整合させることができるデータ整合装置、データ整合方法およびデータ整合プログラムを提供することを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to provide a data matching apparatus, a data matching method, and a data matching program capable of matching redundant data without degrading the performance of a higher-level application. And
上述した課題を解決し、目的を達成するために、本発明は、複数の記憶部それぞれに格納される、同一のデータの複製である冗長データのデータ長を、上位アプリケーションからの書込処理が異常終了した場合に比較し、前記冗長データのデータ長が同一ではないと判定した場合に、前記複数の記憶部に格納された前記冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃えることを特徴とする。 In order to solve the above-described problems and achieve the object, the present invention provides a data length of redundant data, which is a duplicate of the same data stored in each of a plurality of storage units, by a write process from a higher-level application. When it is determined that the data length of the redundant data is not the same as in the case of abnormal termination, other redundant data is added to the data length of the shortest redundant data among the redundant data stored in the plurality of storage units. It is characterized by the same data length.
本発明にかかるデータ整合装置、データ整合方法およびデータ整合プログラムは、上位アプリケーションの性能を低下させることなく、冗長データを整合させることができるという効果を奏する。 The data matching apparatus, the data matching method, and the data matching program according to the present invention have an effect that redundant data can be matched without lowering the performance of the host application.
以下に、本発明にかかるデータ整合装置、データ整合方法およびデータ整合プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。 Hereinafter, embodiments of a data matching apparatus, a data matching method, and a data matching program according to the present invention will be described in detail with reference to the drawings. In addition, this invention is not limited by this embodiment.
[第1の実施形態]
[データ整合装置の構成の一例]
図1は、本発明の第1の実施形態に係るデータ整合装置10の概要を示すブロック図である。図1を参照して、第1の実施形態に係るデータ整合装置10について説明する。第1の実施形態に係るデータ整合装置10は、同一のデータを複製して作成した複数の冗長データを異なる記憶装置に記憶させる場合に生じた冗長データの不整合を検出して、冗長データ同士のデータ長を一致させる。
[First Embodiment]
[Example of configuration of data matching device]
FIG. 1 is a block diagram showing an overview of a
図1に示すように、データ整合装置10は、比較部11と同一化部12とを備える。比較部11は、データの複製を作成して冗長化した冗長データをそれぞれ格納する複数の記憶部(図示せず)に対して、冗長データのデータ長を比較する比較処理を実行する。同一化部12は、比較処理の結果、比較部11が冗長データのデータ長が同一ではないと判定した場合に、当該冗長データのうち、最も短いデータ長の冗長データに他の冗長データのデータ長を揃える。
As shown in FIG. 1, the
データ整合装置10は、たとえば、分散型ファイルシステムのマスタ装置であってよい。また、たとえば、データ整合装置10の機能は、クライアントライブラリによって実現されるように構成してもよい。ただし、分散型ファイルシステムに限らず、複数の独立した記憶部を有し、記憶部各々に同一の複製データを格納することでシステムの冗長性を確保するシステムに適用することができる。たとえば、外部からのアクセスによって各記憶部に対する並列処理が実行され、複数の外部からの命令を調整して処理するシステムに適用することができる。
The
また、図1には図示しないが、データ整合装置10は、冗長データを格納する複数の記憶部や、記憶部に対するデータの読出要求や書込要求を送信する情報処理装置等とネットワーク等を介して接続される。複数の記憶部は例えば、物理サーバと当該サーバに接続されたディスク装置や、データセンタ内に仮想的に構築された仮想サーバと仮想ストレージ等であってよい。また、情報処理装置は、物理サーバやデータセンタを利用するクライアント装置であってよい。
Although not shown in FIG. 1, the
また、ネットワークとして、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)等任意のネットワークを使用できる。 Further, any network such as a wide area network (WAN) or a local area network (LAN) can be used as the network.
[データ整合処理の流れの一例]
図2は、第1の実施形態に係るデータ整合装置10のデータ整合処理の流れの一例を示すフローチャートである。図2を参照して、第1の実施形態に係るデータ整合装置10によるデータ整合処理の流れの一例を説明する。
[Example of data consistency processing flow]
FIG. 2 is a flowchart illustrating an example of the flow of data matching processing of the
図2に示すように、データ整合装置10はまず、整合要求を受ける(ステップS21)。整合要求はたとえば、データ整合装置10に接続され、記憶部に格納されたデータを利用するクライアントから発行される。クライアントはたとえば、記憶部にデータを書き込む処理が異常終了した場合等に、データ整合装置10に対して整合要求を発行する。ただし、整合要求は、クライアントにおいて記憶部への書込処理が異常終了したことを検出した場合に、自動的にデータ整合装置10に発行されるものとしてもよい。
As shown in FIG. 2, the
整合要求は、比較部11に渡される。比較部11は、整合要求によって特定される冗長データを格納する複数の記憶部にアクセスし、格納された冗長データのデータ長を抽出する(ステップS22)。そして比較部11は、抽出したデータ長を相互に比較する(ステップS23)。比較部11がデータ長は同一であると判定した場合(ステップS24、肯定)、データ整合処理は終了する。他方、比較部11がデータ長は同一ではないと判定した場合(ステップS24、否定)、比較部11は処理を同一化部12に渡す。同一化部12は、比較部11がデータ長を比較した冗長データのデータ長を揃える(ステップS25)。すなわち、同一化部12は、複数の冗長データのうち、最も短いデータ長の冗長データに他の冗長データのデータ長を揃える。これによってデータ整合処理は終了する。
The matching request is passed to the
[第1の実施形態の効果]
このように、第1の実施形態に係るデータ整合装置10は、複数の記憶部それぞれに格納される、同一のデータの複製である冗長データのデータ長を比較する比較部11と、比較部11が冗長データのデータ長が同一ではないと判定した場合に、複数の記憶部に格納された冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化部12と、を備える。このため、第1の実施形態に係るデータ整合装置10は、複数の記憶部が格納する冗長データ間で整合性を確保することができる。
[Effect of the first embodiment]
As described above, the
また、データ整合装置10は、整合要求を受けたときにデータ整合処理を実行し、特に必要がない場合は冗長データ間の不整合に対処しないように構成してもよい。このように構成することで、クライアント側が利用するアプリケーションのニーズに合わせて、冗長データの整合性制御を実行することができる。
Further, the
たとえば、クライアント側が利用するアプリケーションが多少の冗長データの不整合があっても問題なく動作できるものであれば、クライアントは整合要求を発行せずに処理を継続する。そして、クライアントまたはデータ整合装置10にかかる処理負荷の低いときに整合要求を発行してデータ整合処理を実行させることができる。また、クライアント側が利用するアプリケーションが冗長データの高い整合性を要求するものである場合は、書込動作が予期せず終了した場合等に、クライアントが直ちに整合要求を発行することで、冗長データの整合性を確保することができる。
For example, if an application used on the client side can operate without any problem even if there is some inconsistency in redundant data, the client continues processing without issuing an alignment request. Then, when the processing load on the client or the
また、データ整合装置10は、書込処理の異常終了が発生した場合は常にデータ整合処理を実行するように設定してもよい。また、データ整合装置10は、予め定められたアプリケーションからの書込要求に対応した書込処理が異常終了した場合はデータ整合処理を実行し、他のアプリケーションからの書込要求に対応した書込処理が異常終了した場合はデータ整合処理を実行しないように設定してもよい。
Further, the
このように、第1の実施形態のデータ整合装置10は、上位アプリケーションに係る負荷を抑制して処理性能の低下を防止しつつ、複数の記憶部に格納された冗長データ間の整合性を確保することができる。
As described above, the
[第2の実施形態]
図3は、本発明の第2の実施形態に係るデータ整合システム1の概要を示すブロック図である。図3を参照して、第2の実施形態に係るデータ整合システム1の構成の概要について説明する。
[Second Embodiment]
FIG. 3 is a block diagram showing an outline of the
[データ整合システム]
図3に示すように、データ整合システム1は、マスタ100と、サーバ200A,200B,200Cと、ディスク300A,300B,300Cと、クライアント400A,400B,400Cと、を備える。マスタ100は、ネットワークを介して、サーバ200A,200B,200Cおよびクライアント400A,400B,400Cと接続され、相互に情報の送受信を行う。また、クライアント400A,400B,400Cは、マスタ100から送信された情報に基づき、サーバ200A,200B,200Cに対して適宜、読出命令、書込命令、またはデータ整合命令を送信する。マスタ100は、クライアント400A,400B,400Cからデータの読み出しまたは書込の要求を受信し、クライアント400A,400B,400Cに対して、読み出しまたは書込みまたはデータ整合化のための情報を送信する。サーバ200A,200B,200Cは、クライアント400A,400B,400Cからの命令に基づき、ディスク300A,300B,300Cに対して読出処理または書込処理またはデータ整合処理を実行する。
[Data alignment system]
As shown in FIG. 3, the
マスタ100はたとえば、分散型ファイルシステムのマスタである。サーバ200A,200B,200Cはたとえば、分散型ファイルシステムのチャンクサーバである。クライアント400A,400B,400Cはたとえば、分散型ファイルシステムを利用するユーザである。
The
また、マスタ100は、インタークラウドシステムのインタークラウドサーバとして構成してもよい。その場合、サーバ200A,200B,200Cおよびディスク300A,300B,300Cは、クラウドシステムによって仮想的に構成してもよい。また、マスタ100、サーバ200A,200B,200C、ディスク300A,300B,300Cは、1つのデータセンタ内に構築したものであってもよいし、複数のデータセンタに分散して構築したものでもよい。
The
サーバ200A,200B,200Cは、マスタ100およびクライアント400A,400B,400Cからの命令に応じて、各々の配下のディスク300A,300B,300Cにアクセスし、データの読み出しや書込みを行う。サーバ200A,200B,200Cはそれぞれ、配下のディスク300A,300B,300Cへのアクセスを制御するためのデータアクセス部201A,201B,201Cを備える。
The
サーバ200A,200B,200Cは、いずれかのサーバに障害が発生した場合でもデータが失われないように、それぞれ同一のデータを冗長データとして格納する。クライアント400A,400B,400Cは、サーバ200A,200B,200Cのいずれかにアクセスすることで同一のデータに対して並列処理を実行することができる。なお、図3には、3つのサーバ200A,200B,200Cを示すが、サーバの数は3に限定されない。また、冗長データを格納するディスクおよびサーバの数は、第2の実施形態では3として説明するが、たとえば10のサーバを備えるデータ整合システムの場合、同じデータの冗長データは10のサーバのうち適宜選択した3つのサーバの配下のディスクに格納する等としてよい。どのサーバのディスクに冗長データを格納するかは、マスタ100が決定制御してクライアント400A,400B,400Cに指示する。ただし、クライアント400A,400B,400Cが冗長データを格納するサーバを指定するように構成してもよい。
Each of the
ディスク300A,300B,300Cは、データを記憶するデータベース等の記憶装置である。ディスク300A,300B,300Cへのアクセスはそれぞれサーバ200A,200B,200Cにより制御される。
The
クライアント400A,400B,400Cは、ディスク300A,300B,300Cに格納されたデータを利用する。たとえば、クライアント400A,400B,400Cは、インタークラウドシステムを利用するユーザ端末である。クライアント400A,400B,400Cはそれぞれ、アプリケーション実行部401A,401B,401C、書込部402A,402B,402C、読出部403A,403B,403C、データ整合装置410A,410B,410Cを備える。アプリケーション実行部401A,401B,401Cはそれぞれ、クライアントのアプリケーションを実行する機能部である。書込部402A,402B,402C、読出部403A,403B,403Cおよびデータ整合装置410A,410B,410Cはそれぞれ、アプリケーション実行部401A,401B,401Cの制御の下、ディスク300A,300B,300Cへの書込命令、読出命令、データ整合命令を送信する。
[データ整合装置の構成の一例]
クライアント400A,400B,400Cはそれぞれ、データ整合装置410A,410B,410Cを備える。データ整合装置410A,410B,410Cにつき、以下に更に説明する。データ整合装置410(以下、「データ整合装置410」は、データ整合装置410A,410B,410Cのいずれか1つを示す)は、比較部412(以下、「比較部412」は、比較部412A,412B,412Cのいずれか1つを示す)と、同一化部413(以下、「同一化部413」は、同一化部413A,413B,413Cのいずれか1つを示す)と、を備える。
[Example of configuration of data matching device]
The
比較部412は、クライアントからの整合要求に応じて比較処理を実行する。比較部412はたとえば、クライアントが要求した書込処理が正常に終了しなかった場合に比較処理を実行する。第2の実施形態のマスタ100では、データの冗長性を確保するため、サーバ200A,200B,200Cにそれぞれ同一のデータを格納させる。しかし、書込処理が異常終了した場合等、サーバ200Aに格納されたデータとサーバ200Bに格納されたデータに不一致が生じていることがある。また、書込が異常終了した場合、いずれかのサーバが外部からアクセスできない状態となり、他のサーバについてもデータが適切に書込完了したか否かを外部(クライアント)から知ることができない場合がある。そこで、比較部412は、異常終了した書込処理の書込対象データを、アクセス可能なサーバから検出して、それぞれのデータ長を比較する比較処理を実行する。
The comparison unit 412 performs comparison processing in response to a matching request from the client. For example, the comparison unit 412 executes the comparison process when the writing process requested by the client is not normally completed. In the
同一化部413は、比較部412が複数のサーバに格納された冗長データを比較した結果、データ長に不一致が検出された場合に、それらのデータのうち、最もデータ長が短いデータのデータ長に他の冗長データの長さを揃えるデータ同一化処理を実行する。なお、比較部412および同一化部413による処理についてはさらに詳細に後述する。 When the comparison unit 412 compares the redundant data stored in a plurality of servers and the mismatch is detected in the data length, the identification unit 413 compares the data length of the data with the shortest data length. In addition, data equalization processing is performed to align the lengths of other redundant data. Note that the processing by the comparison unit 412 and the identification unit 413 will be described in more detail later.
[マスタの構成の一例]
マスタ100の構成の一例につき説明する。図3に示すようにマスタ100は、データ配置制御部110と、記憶部120と、入出力部130と、を備える。データ配置制御部110は、マスタ100における各部の機能および動作を制御する。記憶部120は、マスタ100における処理に使用する情報および処理の結果として生成される情報を適宜格納する。入出力部130は、外部とマスタ100との間での情報のやりとりを行う。入出力部130が受信した情報は適宜、データ配置制御部110および記憶部120に渡される。
[Example of master configuration]
An example of the configuration of the
データ配置制御部110は、データの書込みおよび読み出しを行う場所を判定し、冗長データを識別するための情報や冗長データの所在を示す情報を記憶部120に記憶する処理を実行する。また、サーバ200A,200B,200Cにおける読出処理および書込処理およびデータ整合処理の結果に応じて、記憶部120に格納された情報を更新する。また、データ配置制御部110は、クライアント400A,400B,400Cからの要求に応じて、データの書込みおよび読み出しおよびデータ整合化に必要な情報をクライアント400A,400B,400Cに送信する。
The data
[記憶部の構成および記憶する情報の一例]
次に、記憶部120の構成および記憶部120に記憶する情報の一例につき説明する。図3に示すように、記憶部120は、冗長データ位置テーブル121と、処理対象リスト(リースリスト)122と、を備える。
[Example of configuration of storage unit and stored information]
Next, the configuration of the
冗長データ位置テーブル121は、各サーバ200A,200B,200Cに格納したデータの識別子(ID:Identifier)と、当該データを格納したサーバの情報とを記憶する。図4−1は、冗長データ位置テーブル121に格納する情報の一例を説明するための図である。図4−2は、冗長データ位置テーブル121に格納する情報とデータを格納するディスクとの対応を説明するための図である。
The redundant data position table 121 stores an identifier (ID: Identifier) of data stored in each of the
たとえば、クライアント400Aからの書込要求に応じてファイル名、すなわち、ファイルID「A」のデータをディスク300A,300B,300Cに格納するとする。この場合、ファイルID「A」のデータはまず、固定長に分割されて複数のデータブロックとなる(図4−1参照)。そして、各ブロックにハンドル名とバージョン番号が付与される。ハンドル名とバージョン番号とを組み合わせたものが、当該ブロックのデータIDとなる。たとえば、図4−1の例では、ファイルID「A」のデータを3つの固定長のブロックに分割している。そして、最初のブロックにハンドル名「a1」とバージョン番号「2」を付与する。したがって、ファイルID「A」のデータの最初のブロックのデータIDは、「a12」となり、当該データIDがファイルID「A」に対応づけて、冗長データ位置テーブル121に格納される。同様に、2番目のデータブロックに、ハンドル名「a2」とバージョン番号「3」が付与され、冗長データ位置テーブル121に格納される。また、3番目のデータブロックに、ハンドル名「a3」とバージョン番号「3」が付与され、冗長データ位置テーブル121に格納される。
For example, it is assumed that the file name, that is, the data of the file ID “A” is stored in the
なお、各データブロックに付与するデータIDのうち、ハンドル名については、各データブロックを一意に識別できるよう、各ブロックに異なるハンドル名を付与する。バージョン番号については、複数のデータブロックに同一のバージョン番号が付与されている場合がある。また、データブロックを一意に特定できるのであれば、他の形式のIDを付与してもよい。 Of the data IDs assigned to each data block, for the handle name, a different handle name is assigned to each block so that each data block can be uniquely identified. Regarding the version number, the same version number may be assigned to a plurality of data blocks. Moreover, as long as a data block can be specified uniquely, ID of another format may be given.
本実施形態では、各データブロックの冗長データを3つのディスク300A,300B,300Cに格納する。そこで、冗長データ位置テーブル121には、たとえば、ファイルID「A」のデータの各ブロックについて、冗長データが格納されている場所を示す位置情報が記憶される。図4−2の例では、ファイルID「A」のデータ中、データID「a33」のデータブロックの冗長データが、サーバID「200A」,「200B」,「200C」のサーバが制御するディスクに格納されていることが示されている。すなわち、ここでは位置情報は当該データブロックのデータを管理するデータアクセス部が動作しているサーバを特定する。
In this embodiment, redundant data of each data block is stored in three
なお、冗長データが格納されている場所を示す位置情報としては、たとえば、サーバのIPアドレスやホスト名、サーバ上で動作するデータアクセス部のIPアドレスやホスト名などを用いることができる。 As position information indicating the location where redundant data is stored, for example, the IP address and host name of the server, the IP address and host name of the data access unit operating on the server, and the like can be used.
処理対象リスト122は、その時点で、書込処理を実行しているサーバ又はデータアクセス部と、処理対象データとを特定するリストである。図5は、処理対象リスト122に格納するデータの一例を示す図である。
The
処理対象リスト122は、その時点で書込処理を実行しているデータブロックを特定する情報と、当該データブロックへの書込処理を制御している機能部を特定する情報とを記憶する。たとえば、データID「a12」のデータブロックに対する書込処理を、データアクセス部「201A」が制御している場合、処理対象リスト122には、当該データのハンドル名である「a1」と、データアクセス部「201A」の位置情報である「201A」とが対応づけて格納される。データアクセス部「201A」による、ハンドル名「a1」のデータブロックに対する書込処理が終了すると、所定の時間が経過した後、データ配置制御部110が、処理対象リスト122からハンドル名「a1」とデータアクセス部「201A」の情報を削除する。なお、ここでは処理対象リスト122は、処理対象データのハンドル名のみを格納し、バージョン番号は格納しないものとする。
The
[書込処理時のデータ配置制御処理の流れの一例]
図6は、第2の実施形態に係るマスタ100による、データ配置制御処理の流れの一例を示すフローチャートである。図6を参照して、マスタ100による、データ配置制御処理の流れを説明する。
[Example of data placement control process flow during write process]
FIG. 6 is a flowchart illustrating an example of the flow of data arrangement control processing by the
まず、たとえばクライアント400Aが、ファイルID「A」のデータの書込みを要求する書込要求をマスタ100に対して送信する。書込要求は、データを書き込む対象であるファイルのファイルIDと、ファイル中の書込データの位置を示すオフセット「Z」とを含む。なお、書込要求は後述する同一化部413によっても送信される。この場合の処理も以下と同様である。
First, for example, the
データ配置制御部110は、書込要求を受信すると(ステップS601)、書込要求に含まれた情報に基づき、データを書き込む位置を特定する(ステップS602)。たとえば、書込要求に含まれたオフセット「Z」が正の数である場合、データ配置制御部110は、オフセット「Z」と予め定められたブロックサイズ(固定長)とを加算して、ブロックサイズで除算する。データ配置制御部110は、その結果得られた整商に応じた場所にあるブロックを、データを書き込むブロックであると判断する。また、書込要求に含まれたオフセット「Z」が負の数である場合、データ配置制御部110は、当該ファイルの終端ブロックがデータを書き込むブロックであると判断する。
When receiving a write request (step S601), the data
次に、データ配置制御部110は、データを書き込むブロックのデータIDの取得を試みる(ステップS603)。すなわち、データ配置制御部110は、冗長データ位置テーブル121を参照して、該当するデータIDのデータについての情報が格納されているか否かを判定する。情報が格納されていない場合(ステップS603、否定)、データ配置制御部110は、対応するデータがまだいずれのディスクにも格納されていないと判断して、新しいハンドル名を作成する(ステップS604)。そして、データ配置制御部110は、当該データの冗長データを格納するディスク(すなわち、対応するサーバまたはデータアクセス部)を決定する(ステップS605)。たとえば、データ配置制御部110は、予め作成すると定められている冗長データの数が3である場合、「3−1」個以上のスイッチ配下で動作するサーバを、作成する冗長データの数「3」だけ選択する。
Next, the data
そして、データ配置制御部110は、ステップS604で作成したハンドル名にもとづくデータIDと、ステップS605で選択したサーバの位置情報と、を対応づけて冗長データ位置テーブル121に登録する。冗長データ位置テーブル121への登録が失敗した場合(ステップS606、否定)、データ配置制御部110は、書込処理が失敗したことを、書込要求を出したクライアント400A(要求元)に送信する(ステップS607)。そして、書込処理を終える。冗長データ位置テーブル121への登録が成功した場合(ステップS606、肯定)は、ステップS603において、データ書込ブロックのデータIDを冗長データ位置テーブル121から取得し、かつ、ステップS608において冗長データ位置テーブル121から位置情報を取得した場合と同じ処理となる(後述)。
Then, the data
ステップS603に戻り、データ配置制御部110は、データ書込ブロックのデータIDを冗長データ位置テーブル121から取得した場合(ステップS603、肯定)、次に、当該データIDに対応する冗長データが格納される位置情報を取得する(ステップS608)。すなわち、冗長データ位置テーブル121を参照して、当該データIDに対応づけて格納されている位置情報を取得する。位置情報を取得できなかった場合(ステップS608、否定)、ステップS607に進み、書込処理失敗をクライアント400Aに通知する。そして、処理を終える。
Returning to step S603, when the data
位置情報を取得できた場合(ステップS608、肯定)、データ配置制御部110は、位置情報によって示されるサーバまたはデータアクセス部に対する書込制御処理を実行する(ステップS609)。図7は、第2の実施形態に係るマスタ100による、書込制御処理の流れの一例を示すフローチャートである。図7を参照し、データ配置制御部110の書込制御処理の流れの一例を説明する。
If the position information can be acquired (Yes at Step S608), the data
データ配置制御部110は、クライアント400Aから受信した書込要求に対応するデータIDと書込場所を示す位置情報とを取得すると(図6、ステップS608、肯定)、取得したデータIDのハンドル名が、処理対象リスト122に登録されているか否かを判定する(ステップS701)。処理対象リスト122に当該データIDのハンドル名が登録されている場合、当該データIDに対応するデータブロックの書込処理が実行中であることを意味する。したがって、処理対象リスト122に当該データIDのハンドル名が登録されている場合(ステップS701、肯定)、データ配置制御部110は書込制御処理をそのまま終了する。
When the data
処理対象リスト122に当該データIDが登録されていない場合(ステップS701、否定)、当該データIDに対応するデータブロックに対する書込処理は実行中ではないことを意味する。したがって、データ配置制御部110は、次の処理に進み、ステップS608において取得した位置情報に含まれるデータアクセス部(または対応するサーバ若しくはディスク)を1つ選択する(ステップS702)。たとえば、データ配置制御部110は、データアクセス部をランダムに選択する。また、たとえば、クライアント400Aから経由するスイッチ数が最も少ないデータアクセス部を選択してもよい。そして、データ配置制御部110は、選択した位置情報に対応するデータアクセス部に対して、書込制御命令を送信する(ステップS703)。書込制御命令は、書込対象であるデータブロックを特定する情報を含む。書込制御命令は、書込対象のデータハンドルについて書込制御を行うことを命令するものである。
If the data ID is not registered in the processing target list 122 (No at Step S701), it means that the writing process for the data block corresponding to the data ID is not being executed. Therefore, the data
そして、データ配置制御部110は、書込制御命令の送信先であるデータアクセス部から、命令受信応答を受信したか否かを判定する(ステップS704)。なお、命令受信応答は、書込制御命令に応じて、書込制御処理および書込処理が完了したことを意味するものではなく、書込制御命令を受信したことを意味するものである。
Then, the data
データ配置制御部110は、命令受信応答を受信していないと判定した場合(ステップS704、否定)、再び、ステップS702に戻って、データアクセス部を選択しなおし(ステップS702)、書込制御命令を送信する(ステップS703)。命令受信応答を受信しない場合としては、たとえば、タイムアウトやコネクションが切れた場合等が考えられる。他方、データ配置制御部110は、命令受信応答を受信したと判定すると(ステップS704、肯定)、冗長データ位置テーブル121に、当該データIDに対応付けて格納されている位置情報の中から、ステップS702において選択したデータアクセス部に対応する位置情報を抽出し、当該位置情報が、リストの先頭にくるように、冗長データ位置テーブル121を更新する(ステップS705)。そして、データ配置制御部110は、処理対象リスト122に、書込制御命令の対象である書込対象データのハンドル名と、書込制御命令の送信先であるデータアクセス部の位置情報と、を登録する(ステップS706)。そして、データ配置制御部110は、冗長データ位置テーブル121に登録した、書込対象データのデータIDのうち、バージョン番号を更新する(ステップS707)。データ配置制御部110は、更新したバージョン番号を、当該データIDに対応づけて格納されている位置情報に含まれるデータアクセス部に通知する(ステップS708)。これによって、データ配置制御部110による書込制御処理が終了する。
If the data
再び図6に戻り、書込処理を説明する。ステップS609におけるデータ配置制御部110による書込制御処理が完了すると、データ配置制御部110は、書込要求の送信元であるクライアント400Aに、冗長データ位置テーブル121に登録した情報を送信する(ステップS610)。すなわち、データ配置制御部110は、図6の書込制御処理を通じて、冗長データ位置テーブル121に格納されている、書込要求の対象であるデータブロックのデータIDと当該データIDに対応付けられている位置情報とを、クライアント400Aに送信する。
Returning to FIG. 6 again, the writing process will be described. When the write control process by the data
そして、データ配置制御部110は、クライアント400Aからの情報を受信した旨の受信応答の受信有無によって、要求元への送信処理が成功したか否かを判定する(ステップS611)。送信処理が成功したと判定した場合(ステップS611、肯定)、データ配置制御部110は、データ配置制御処理を終了する。また、送信処理が失敗したと判定した場合(ステップS611、否定)、データ配置制御部110は、送信処理を行った回数がN回(Nは1以上の自然数)以下であるか否かを判定する(ステップS612)。N回以下であると判定した場合(ステップS612、肯定)、データ配置制御部110は、ステップS610に戻って再び情報を送信する。また、N回以下ではないと判定した場合(ステップS612、否定)、データ配置制御部110は、それ以上情報を送信することなく、データ配置制御処理を終了する。これによって、書込処理時の、データ配置制御部110によるデータ配置制御処理が終了する。
Then, the data
[書込部による書込処理の流れの一例]
図6及び図7に示すように、データ配置制御部110がデータ配置制御処理および書込制御処理を実行すると、要求元(クライアント)に対して、処理を実行するために必要なデータが送信される。クライアントは受信したデータを使用して、データアクセス部にアクセスし、データの書込みおよび読み出しを実行させる。次に、クライアント側からの書込処理の流れの一例を説明する。
[Example of flow of writing process by writing unit]
As shown in FIGS. 6 and 7, when the data
図8は、第2の実施形態に係る書込部による書込処理の流れの一例を示すフローチャートである。図8は、たとえばクライアント400Aが備える書込部402Aによる書込処理の流れの一例を示す図である。図8を参照し、クライアント400Aによる書込処理の流れの一例を説明する。
FIG. 8 is a flowchart illustrating an example of a flow of a writing process by the writing unit according to the second embodiment. FIG. 8 is a diagram illustrating an example of a flow of writing processing by the
まず、クライアント400Aがデータの書込処理を実行しようとする場合、アプリケーション実行部401Aは、書込要求を生成する。書込要求は、書き込むデータのファイルIDと、ファイル終端の位置を示すオフセットと、を含む。書込要求に含まれるファイルID、オフセットは、書き込む対象であるデータとともに、アプリケーション実行部401Aから書込部402Aに送られる(ステップS801)。また、書込部402Aが受けた書込要求は、書込部402Aからマスタ100に送信される(図6のS601参照)。
First, when the
また、書込要求を受信したマスタ100のデータ配置制御部110は、書込要求に応じてデータを書き込む対象となるデータブロックのデータIDおよび当該データブロックの位置情報を、冗長データ位置テーブル121を参照して取得し、書込部402Aに送信する。これによって書込部402Aは、書き込む対象となるデータブロックのデータIDと当該データブロックの位置情報を取得する(ステップS802)。
In addition, the data
次に、書込部402Aは、取得した位置情報から、書込対象データブロックが格納されるディスクを配下にもつサーバまたは書込対象データブロックへの書込アクセスを制御するデータアクセス部の情報を抽出する。そして、抽出したサーバまたはデータアクセス部のうち、書込部402Aから最も近いサーバまたはデータアクセス部を1つ選択する(ステップS803)。ここで、「最も近い」とは、たとえば、書込部402Aから当該サーバまたはデータアクセス部までの間に介装されているスイッチの数が最も少ないこと、さらに、経由するスイッチの数が最も少ないデータアクセス部が複数存在する場合は、「log(「自身のIPアドレス」EXOR「相手のIPアドレス」)」の値が最も小さい値、さらに、この値が同一となるデータアクセス部が複数存在する場合は、同一となるデータアクセス部のうち取得した位置情報の中で先に取得したデータアクセス部を選択する。
Next, the
書込部402Aは、データアクセス部、たとえば、データアクセス部201Aを選択する。そして、書込部402Aは、選択したデータアクセス部201Aに対して、書込処理のための情報を送信する(ステップS804)。たとえば、書込部402Aは、書込対象ブロックのデータIDと、書込対象ブロックのオフセットと、実際に書き込むデータと(ステップS801で取得)、位置情報(ステップS802で取得)と、メッセージIDと、を送信する。メッセージIDとは、書込部402Aが、データ整合システム1において一意となるように生成して付与する識別子である。
そして、データアクセス部201Aに書込処理のための情報を送信した後、書込部402Aは、メッセージIDに対応づけられた書込命令を、位置情報の中でリストの先頭のサーバ(すなわち、書込制御を行うデータアクセス部)に送信する(ステップS805)。書込命令は、メッセージIDに対応付けられたデータの書込を命令する。
Then, after transmitting the information for the writing process to the
そして、書込部402Aは、書込命令の送信先のデータアクセス部から命令受信応答を受信したか否かを判定する(ステップS806)。たとえば、予め所定の時間を設定しておき、当該所定の時間内に命令受信応答を受信した場合は受信したと判定し、当該所定の時間内に命令受信応答を受信していない場合は受信していないと判定すればよい。そして、命令受信応答を受信した場合(ステップS806、肯定)、書込部402Aは、アプリケーション実行部401Aに、データアクセス部201Aからの命令受信応答を受信した旨を通知できるか否かを判定する(ステップS807)。書込部402Aは、通知できると判定した場合(ステップS807、肯定)、アプリケーション実行部401Aに通知する(ステップS808)。そして、書込処理を正常終了する(ステップS809)。
Then, writing
これに対し、ステップS807において、書込部402Aは命令受信応答を受信した旨を通知できないと判定した場合(ステップS807、否定)、通知を行わずに、書込処理を異常終了する(ステップS810)。
On the other hand, when it is determined in step S807 that the
また、ステップS806において、データアクセス部201Aから命令受信応答を受信していないと判定した場合(ステップS806、否定)、書込部402Aは、アプリケーション実行部401Aに書込命令が失敗した旨を通知できるか否かを判定する(ステップS811)。そして、通知できると判定した場合(ステップS811、肯定)、書込部402Aは、アプリケーション実行部401Aに、書込命令が失敗した旨を通知する(ステップS812)。そして、書込処理を異常終了する(ステップS813)。これに対して、通知できないと判定した場合(ステップS811、否定)、通知は行わずに、書込処理を異常終了する(ステップS810)。これによってクライアント400Aにおける書込処理が終了する。
In Step S806, when it is determined that the command reception response has not been received from the
[データアクセス部における書込実行前処理の流れの一例]
図9は、第2の実施形態に係るデータアクセス部における書込実行前処理の流れの一例を示すフローチャートである。図9を参照し、データアクセス部における書込処理の流れの一例を説明する。
[Example of the flow of pre-write execution processing in the data access unit]
FIG. 9 is a flowchart illustrating an example of a flow of pre-write execution processing in the data access unit according to the second embodiment. With reference to FIG. 9, an example of the flow of the writing process in the data access unit will be described.
まず、たとえばデータアクセス部201Aは、データの書込処理を実行するための情報を、書込部402Aまたは他のデータアクセス部から受信する(ステップS901)。受信する情報は、たとえば図8のステップS804において、書込部402Aが送信した情報である。本実施例では、書込のための情報は、書込部402Aから1つのデータアクセス部に送られ、当該データアクセス部から他のデータアクセス部に送信される。
First, for example, the
データアクセス部201Aは、受信した情報のうち、位置情報を抽出し、その中に、自身以外のデータアクセス部が含まれているか否かを判定する(ステップS902)。他のデータアクセス部が位置情報に含まれていない場合(ステップS902、否定)、データアクセス部201Aは、書込要求の送信元であるクライアント400Aに情報受信に成功した旨の通知を送信する(ステップS903)。
The
これに対して、他のデータアクセス部が位置情報に含まれている場合(ステップS902、肯定)、データアクセス部201Aは、他のデータアクセス部を1つ選択する(ステップS904)。このとき、データアクセス部201Aは、図8のステップS803と同様の基準でデータアクセス部を選択すればよい。そして、データアクセス部201Aは、自身の位置情報を除いた位置情報を作成する。
On the other hand, when another data access unit is included in the position information (Yes at step S902), the
次に、データアクセス部201Aは、受信した書込処理のためのデータのうち、位置情報をステップS904において作成した位置情報と置き換えて、ステップS904で選択したデータアクセス部に送信する(ステップS905)。そして、データアクセス部201Aは、情報を受信した旨の応答が送信されるのを待つ。情報を受信した旨の応答を受信した場合(ステップS906、肯定)、データアクセス部201Aは、ステップS903に進み、送信元のクライアント400Aに、情報受信が成功した旨の通知を送信する。これに対して、情報を受信した旨の応答を受信しない場合(ステップS906、否定)、データアクセス部201Aは、送信元のクライアント400Aに、情報受信に失敗した旨の通知を送信する(ステップS907)。これによってデータアクセス部201Aでの処理が終了する。
Next, the
[データアクセス部における書込実行処理の流れの一例]
次に、図10を参照して、データアクセス部における書込実行処理の流れを説明する。図10は、第2の実施形態に係るデータアクセス部における書込実行処理の流れの一例を示すフローチャートである。なお、本実施例では、複数のサーバに冗長データを書き込む場合、まず、書込処理のための情報を1つのサーバに送信し、当該サーバから他の該当するサーバに順次情報を送信する。そして、書込を実行する際には、書込部が予め定められた処理順序に従い、最初に書込を行うサーバに書込命令を送信する。他のサーバに対しては、書込部ではなく、最初に書込を行うサーバから書込命令を送信する。図10は、最初に書込を行うサーバ(すなわち、書込制御を行うデータアクセス部)での書込実行処理を示す。
[Example of flow of write execution processing in data access unit]
Next, the flow of write execution processing in the data access unit will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of the flow of the write execution process in the data access unit according to the second embodiment. In this embodiment, when writing redundant data to a plurality of servers, first, information for writing processing is transmitted to one server, and information is sequentially transmitted from the server to other corresponding servers. Then, when executing the writing, the writing unit transmits a writing command to the server that performs the writing first in accordance with a predetermined processing order. For other servers, a writing command is transmitted from the server that performs the writing first, not the writing unit. FIG. 10 shows a write execution process in a server that performs writing first (that is, a data access unit that performs write control).
まず、たとえばデータアクセス部201Aは、書込部402Aから書込命令を受信する(ステップS1001)。データアクセス部201Aは、それまでに例えば、図9に示すステップS901の処理によって、書込処理を実行するためのデータを受信している。そして、データアクセス部201Aは、書込命令に応じて、書込対象データを指定された位置に書き込む処理を実行する(ステップS1002)。このとき、データアクセス部201Aは、書込部402Aから受信した書込命令に含まれるメッセージIDによって、書込対象データを特定する。次に、データアクセス部201Aは、ステップS703(図7)において受信したデータに含まれる位置情報の中の他のデータアクセス部に対して、書込命令を送信する(ステップS1003)。そして、データアクセス部201Aは、命令を送信できたか否かを判定する(ステップS1004)。命令を送信できなかったと判定した場合(ステップS1004、否定)、データアクセス部201Aは、それ以上処理を行わず、異常終了する(ステップS1008)。
First, for example, the
これに対して、命令を送信できたと判定した場合(ステップS1004、肯定)、データアクセス部201Aは、書込命令の送信先であるデータアクセス部から命令成功応答があったか否かを判定する(ステップS1005)。全てのデータアクセス部から命令成功応答があったと判定した場合(ステップS1005、肯定)、データアクセス部201Aは、送信元のクライアント400Aに、書込が完了した旨の通知を送信する(ステップS1006)。そして、データアクセス部201Aは、書込実行処理を正常終了する(ステップS1007)。これに対して、全てのデータアクセス部からの命令成功応答を受信していないと判定した場合(ステップS1005、否定)、データアクセス部201Aは、それ以上処理を行わず、異常終了する(ステップS1008)。これによって書込実行処理が終了する。
On the other hand, when it is determined that the command has been transmitted (Yes at step S1004), the
[第2の実施形態に係るデータ整合システムにおける処理の流れ]
図11は、第2の実施形態に係るデータ整合システム1における正常時の処理の流れの一例を概括的に示す図である。図11を参照し、第2の実施形態に係るデータ整合システム1における正常時の処理の流れの一例について説明する。
[Processing Flow in Data Matching System According to Second Embodiment]
FIG. 11 is a diagram schematically showing an example of a normal processing flow in the
図11に示すように、クライアント400(以下、「クライアント400」は、クライアント400A,400B,400Cのいずれか1つを示す)が、マスタ100に対して書込要求を送信する(図11の(1))。書込要求は、ファイルIDとオフセットを含む。書込要求を受信したマスタ100は、ファイルIDとオフセットに基づき、冗長データ位置テーブル121を参照して、要求された書込処理の対象データのデータIDと位置情報とを抽出する。対応するデータIDが冗長データ位置テーブル121に登録されていない場合は、新たなハンドル名を作成して登録する(図11の(2))。
As shown in FIG. 11, the client 400 (hereinafter, “
マスタ100はさらに、処理対象リスト122を参照して(図11の(3))、書込対象データのハンドル名が登録されていない場合、書込処理制御を行うデータアクセス部を1つ選択する(図11の(4))。そして、選択したデータアクセス部に書込制御命令を送信する(図11の(5))。データアクセス部から応答を受信する(図11の(6))と、マスタ100は、冗長データ位置テーブル121と処理対象リスト122とを更新し(図11の(7))、更新後のバージョン番号をデータアクセス部に通知する(図11の(8))。その後、マスタ100は、クライアント400に書込処理の対象データのデータIDと、対応する位置情報とを送信する(図11の(9))。
Further, the
クライアント400は、書込要求に含めたファイルIDおよびオフセット(図11の(1)参照)と、書込むデータと、マスタ100から受信したデータIDおよび位置情報(図11の(9))と、クライアント400において一意となるよう付与したメッセージIDと、を図8のステップS803と同様の基準で選択したデータアクセス部に送信する(図11の(10))。情報を受信したデータアクセス部は、位置情報を参照して、他のデータアクセス部が位置情報に含まれていれば、自身の情報を位置情報から削除した上で、当該他のデータアクセス部に受信した情報を送信する(図11の(11))。情報を受信した他のデータアクセス部も同様の処理を実行する(図11の(12))。
The
その後、クライアント400は、書込制御を行うデータアクセス部(図11の(4)参照)に書込実行命令を送信する(図11の(13))。書込実行命令を受信したデータアクセス部は、データを配下のディスクに書き込んだ上で、書込実行命令を位置情報に含まれていた他のデータアクセス部(複数あれば全てに)送信する(図11の(14))。データが該当する全てのディスクに書き込まれると、書込制御を行うデータアクセス部に他のデータアクセス部から完了応答が送信される(図11の(15))。書込制御を行うデータアクセス部は、全ての完了応答を受信すると、クライアントに完了応答を送信する(図11の(16))。正常時の書込処理はこのようにして完了する。
Thereafter, the
[読出処理時のデータ配置制御処理の流れの一例]
図12は、第2の実施形態に係るデータ配置制御部110による、読出処理時のデータ配置制御処理の流れの一例を示すフローチャートである。図12を参照し、第2の実施形態に係るマスタ100における、読出処理時のデータ配置制御処理の流れの一例につき説明する。
[Example of flow of data arrangement control processing during read processing]
FIG. 12 is a flowchart illustrating an example of the flow of the data arrangement control process during the reading process by the data
まず、たとえばクライアント400Aがマスタ100に読出要求を送信する。なお、読出要求は後述する比較部412によっても送信される。この場合の処理も以下と同様である。読出要求は、読み出す対象ファイルのファイルIDと、読み出す対象ファイルの終端位置を示すオフセット「Z」と、を含む。マスタ100のデータ配置制御部110は、読出要求を受信する(ステップS1201)と、読出要求に含まれるファイルIDとオフセット「Z」とを抽出する。そして、データ配置制御部110は、抽出した情報に基づき、当該ファイルの何番目のブロックからの読み出しを行うのかを特定する(ステップS1202)。この処理は図6のステップS602と同様である。
First, for example, the
次に、データ配置制御部110は、冗長データ位置テーブル121から、特定したブロックに対応するブロックデータのデータIDを取得することを試みる(ステップS1203)。データIDを取得できなかった場合(ステップS1203、否定)、データ配置制御部110は、読出要求を送信したクライアント400A(要求元)に対して、読出処理に失敗した旨を通知して(ステップS1204)、処理を終える。他方、データIDを取得できた場合(ステップS1203、肯定)、データ配置制御部110は、次に、当該データIDに対応する位置情報を、冗長データ位置テーブル121から取得することを試みる(ステップS1205)。位置情報を取得できなかった場合(ステップS1205、否定)は、データIDを取得できなかった場合(ステップS1203、否定)と同様に、クライアント400Aに読出処理に失敗した旨を通知して(ステップS1204)、処理を終える。
Next, the data
位置情報を取得できた場合(ステップS1205、肯定)は、データ配置制御部110は、冗長データ位置テーブル121から取得したデータID(ステップS1203)および位置情報(ステップS1205)を、クライアント400A(要求元)に送信する(ステップS1206)。そして、データ配置制御部110は、送信処理が成功したか否かを判定する(ステップS1207)。たとえば、クライアント400Aから受信応答を受け取ることによって、成功したか否かを判定すればよい。
If the position information can be acquired (Yes at Step S1205), the data
送信処理が成功したと判定した場合(ステップS1207、肯定)、データ配置制御部110は、処理を終える。他方、送信処理が失敗したと判定した場合(ステップS1207、否定)、データ配置制御部110は、送信処理の失敗回数がN回(Nは1以上の自然数)以下であるか否かを判定する(ステップS1208)。N回以下であると判定した場合(ステップS1208、肯定)、データ配置制御部110は、ステップS1206に戻って再び情報を要求元に送信する。他方、N回以下ではないと判定した場合(ステップS1208、否定)、データ配置制御部110は、そのまま処理を終える。ここで、Nはリトライ数の上限値として予め定めておけばよい。
If it is determined that the transmission process is successful (Yes at step S1207), the data
[読出部による読出処理の流れの一例]
図13は、第2の実施形態に係る読出部による読出処理の流れの一例を示すフローチャートである。図13を参照し、読出部(たとえば403A)による読出処理の流れの一例を説明する。
[Example of the flow of read processing by the read unit]
FIG. 13 is a flowchart illustrating an example of a flow of reading processing by the reading unit according to the second embodiment. With reference to FIG. 13, an example of the flow of reading processing by the reading unit (for example, 403A) will be described.
まず、読出部403Aは、アプリケーション実行部401Aからデータを読み出すファイルIDを取得する(ステップS1301)。次に、読出部403Aは、アプリケーション実行部401Aから読み出すデータのオフセットと、データ長を取得する(ステップS1302)。次に、読出部403Aは、データ配置制御部110から、取得したファイルID、オフセットおよびデータ長に基づき、読み出すデータを保持するブロックのデータIDと、当該データIDに対応付けられた位置情報を取得する(ステップS1303)。データIDと、当該データIDに対応付けられた位置情報と、を取得する際のデータ配置制御部110の処理が、図12の処理にあたる。
First, the
次に、読出部403Aは、データ配置制御部110から取得した位置情報のうち最も近いデータアクセス部を1つ選択する(ステップS1304)。このとき、読出部403Aは、図8のステップS803と同様の基準でデータアクセス部を選択すればよい。
Next, reading
そして、読出部403Aは、選択したデータアクセス部に読出命令を送信してデータを読み出す(ステップS1305)。読出命令は、当該処理でアプリケーション実行部401Aが指定したデータを読み出す命令である。
Then, reading
読出部403Aは、読み出したデータをアプリケーション実行部401Aに送信する(ステップS1306)。これによって、読出処理が完了する。
The
[データアクセス部における読出実行処理の流れの一例]
図14は、第2の実施形態に係るデータアクセス部における読出実行処理の流れの一例を示すフローチャートである。図14を参照し、図13のように読出部403Aから読出命令があった場合のデータアクセス部における処理の流れの一例を説明する。
[Example of flow of read execution processing in data access unit]
FIG. 14 is a flowchart illustrating an example of the flow of read execution processing in the data access unit according to the second embodiment. With reference to FIG. 14, an example of the flow of processing in the data access unit when there is a read command from the
まず、データアクセス部、たとえばデータアクセス部201Aは、読出部403Aから読出命令を受信する(ステップS1401)。データアクセス部201Aは、読出命令に応じて、配下のディスクから該当するデータを読み出す(ステップS1402)。そして、データアクセス部201Aは、読み出したデータを読出部403Aに送信する(ステップS1403)。これによってデータアクセス部における読出実行処理が終了する。
First, the data access unit, for example, the
[異常終了時の冗長データの状態]
図15は、データアクセス部が、書込処理中に異常終了した場合の冗長データの状態を説明するための図である。図15を参照して、書込処理が異常終了した場合に発生しうる冗長データの状態について説明する。
[Redundant data status at abnormal termination]
FIG. 15 is a diagram for explaining the state of redundant data when the data access unit abnormally terminates during the writing process. With reference to FIG. 15, the state of redundant data that may occur when the writing process ends abnormally will be described.
たとえば、図10のステップS1005においてデータアクセス部201Aが他のデータアクセス部からの命令成功応答を受信しなかった場合、他のデータアクセス部において冗長データの正常な書込が完了していない場合が考えられる。また、図10の処理を実行する書込制御を実行するデータアクセス部が、他のデータアクセス部に書込命令を送信(ステップS1003、図10)した後に何らかの理由で停止した場合、当該データアクセス部は、外部からアクセス不可能な状態となる。また、他のデータアクセス部は書込が成功したか否かの応答を当該データアクセス部に送信することができないため、これらのデータアクセス部において冗長データの書込が成功したか否かを、外部から知ることができない。
For example, if the
図15に示すように、ファイル「A」のデータを3つのブロックに分割して、データID「a33」の冗長データを3つのディスクに格納しようとした場合を考える。この場合、最初に書込を実行しようとしたサーバが停止すると、当該サーバに対応するディスクに冗長データが書き込まれたのか否かは不明であり、また当該ディスクにはデータアクセスすることができなくなる。この状態を図15の(1)に示す。このようにサーバが停止して書込の成否が不明になった場合、冗長データ位置テーブル121においては、データIDに対応して格納されていたサーバの位置情報が削除される。 As shown in FIG. 15, consider a case where the data of the file “A” is divided into three blocks and the redundant data with the data ID “a33” is to be stored on three disks. In this case, if the server that attempted to execute writing first stops, it is unclear whether redundant data has been written to the disk corresponding to the server, and data cannot be accessed on the disk. . This state is shown in FIG. Thus, when the server stops and the success or failure of writing becomes unknown, the server location information stored corresponding to the data ID is deleted in the redundant data location table 121.
また、停止したサーバのデータアクセス部に対して書込の成否を通知するデータアクセス部については、書込が成功したのか否かを知ることができない。したがって、これらのデータアクセス部が制御する書き込みデータの状態は、図15の(2),(3)に示すようになる。 Further, the data access unit that notifies the data access unit of the stopped server of the success or failure of writing cannot know whether or not the writing is successful. Therefore, the states of the write data controlled by these data access units are as shown in (2) and (3) of FIG.
[データ整合処理の流れの一例]
図16は、第2の実施形態に係るデータ整合装置410におけるデータ整合処理の流れの一例を示すフローチャートである。図16を参照し、第2の実施形態に係るデータ整合装置410におけるデータ整合処理の流れの一例を説明する。
[Example of data consistency processing flow]
FIG. 16 is a flowchart illustrating an example of the flow of data matching processing in the data matching apparatus 410 according to the second embodiment. An example of the flow of data matching processing in the data matching apparatus 410 according to the second embodiment will be described with reference to FIG.
まず、クライアント400がデータ整合処理を実行しようとする場合、整合要求を生成する。データ整合装置410(比較部412)は、生成された整合要求を受け取る(ステップS1601)。整合要求は、たとえば、データアクセス部201A,201B,201Cのいずれかにおいて、データの書込処理が正常に終了せず、書込要求の要求元であるクライアント400A,400B,400Cのいずれかに、書込完了の通知が送信されなかった場合等に、クライアント400A,400B,400Cが生成する。クライアント400A,400B,400Cではアプリケーション実行部401A,401B,401Cが、書込対象データの重要性や処理の内容に応じて、整合要求を送るか否かを判断すればよい。整合要求は、整合の対象となるファイルIDを含む。整合要求はまた、指定するファイルIDの末尾ブロックのデータ長を揃える要求である。
First, when the
整合要求を受けたデータ整合装置410は、冗長データ位置テーブル121から、整合要求に含まれるファイルIDで書き込まれているデータブロックのうち、末尾のブロックに対応するデータIDと、当該データIDに対応付けられている位置情報の取得を試みる(ステップS1602)。データ整合装置410は、データIDと位置情報を取得できなかった場合(ステップS1602、否定)は、そのままデータ整合処理を終了する。なお、データIDと位置情報の取得は図13に示す手順と同様に行えばよい。 The data matching apparatus 410 that has received the matching request corresponds to the data ID corresponding to the last block of the data blocks written with the file ID included in the matching request from the redundant data position table 121 and the data ID. An attempt is made to acquire attached position information (step S1602). If the data matching apparatus 410 cannot acquire the data ID and the position information (No at Step S1602), the data matching process is ended as it is. The acquisition of the data ID and position information may be performed in the same manner as the procedure shown in FIG.
他方、データ整合装置410は、データIDと位置情報を取得できた場合(ステップS1602、肯定)、次に、取得した位置情報の中に複数のデータアクセス部が含まれているか否かを判定する(ステップS1603)。 On the other hand, if the data matching apparatus 410 can acquire the data ID and the position information (Yes in step S1602), it next determines whether or not a plurality of data access units are included in the acquired position information. (Step S1603).
そして、複数のデータアクセス部が含まれていない(ステップS1603、否定)と判定した場合、そのままデータ整合処理を終了する。他方、複数のデータアクセス部が含まれている(ステップS1603、肯定)と判定した場合、比較部412は、各データアクセス部が制御するディスクに格納された、整合要求(具体的には、ステップS1062)によって特定されたデータIDに対応するデータブロックのデータ長を取得する(ステップS1604)。データ長を取得できなかった場合(ステップS1605、否定)は、再びステップS1602に戻る。これに対して、データ長を取得できた場合(ステップS1605、肯定)は、次に比較部412は、複数のデータブロックのデータ長がすべて一致するか否かを判定する(ステップS1606)。比較部412は、データ長が一致したと判定した場合(ステップS1606、肯定)、データ整合処理を終了する。これに対して、データ長が一致しないと判定した場合(ステップS1606、否定)、比較部412は、処理を同一化部413に渡し、同一化部413が同一化処理を実行する(ステップS1607)。同一化処理については、詳しく後述する。同一化処理が完了すると、データ整合処理は終了する。 If it is determined that a plurality of data access units are not included (No in step S1603), the data matching process is terminated as it is. On the other hand, if it is determined that a plurality of data access units are included (Yes in step S1603), the comparison unit 412 stores the matching request (specifically, the step stored in the disk controlled by each data access unit). The data length of the data block corresponding to the data ID specified in S1062) is acquired (step S1604). If the data length could not be acquired (No at step S1605), the process returns to step S1602. On the other hand, if the data length can be acquired (Yes in step S1605), the comparison unit 412 next determines whether or not the data lengths of the plurality of data blocks all match (step S1606). If the comparison unit 412 determines that the data lengths match (Yes in step S1606), the comparison unit 412 ends the data matching process. On the other hand, when it is determined that the data lengths do not match (No at Step S1606), the comparison unit 412 passes the process to the identification unit 413, and the identification unit 413 executes the identification process (Step S1607). . The identification process will be described later in detail. When the identification process is completed, the data matching process ends.
[同一化処理の流れの一例]
図17は、第2の実施形態に係るデータ整合装置410における同一化処理の流れの一例を示す図である。図17を参照し、同一化部413による同一化処理の流れの一例を説明する。なお、図17の例では、比較部412が比較した冗長データの数は2であるとする。
[Example of identification process flow]
FIG. 17 is a diagram illustrating an example of the flow of the identification process in the data matching apparatus 410 according to the second embodiment. With reference to FIG. 17, an example of the flow of the identification process by the identification unit 413 will be described. In the example of FIG. 17, it is assumed that the number of redundant data compared by the comparison unit 412 is two.
まず、比較部412が、複数(2つ)のデータのデータ長が一致しないと判定した場合(図16のステップS1606、否定)、同一化部413は、比較部412が比較した2つのデータブロックのデータ長のうち、短い方のデータ長を選択する(ステップS1701)。ここでは、比較した2つのデータブロックをそれぞれ「データA」、「データB」と呼ぶ。そして、同一化部413は、選択したデータ長がデータAのものであるか否かを判定する(ステップS1702)。選択したデータ長がデータBのものであると判定した場合(ステップS1702、否定)、同一化部413は、データAのデータ長をデータBに合わせるように、データAを切り詰める(ステップS1703)。他方、選択したデータ長がデータAのものであると判定した場合(ステップS1702、肯定)、同一化部413は、データBのデータ長をデータAに合わせるように、データBの長さを切り詰める(ステップS1704)。そして、同一化部413は、同一化処理が完了した旨を、整合要求の要求元に通知する(ステップS1705)。 First, when the comparison unit 412 determines that the data lengths of a plurality (two) of data do not match (No in step S1606 in FIG. 16), the identification unit 413 determines that the two data blocks compared by the comparison unit 412 The shorter one of the data lengths is selected (step S1701). Here, the two data blocks compared are referred to as “data A” and “data B”, respectively. The identifying unit 413 determines whether the selected data length is that of the data A (step S1702). If it is determined that the selected data length is that of data B (No at step S1702), the identifying unit 413 truncates the data A so that the data length of the data A matches the data B (step S1703). On the other hand, when it is determined that the selected data length is that of data A (Yes in step S1702), the identifying unit 413 truncates the length of data B so that the data length of data B matches the data A. (Step S1704). The identification unit 413 notifies the requester of the matching request that the identification process has been completed (step S1705).
同一化部413が、同一化処理を行う際は、図6に示したデータ配置制御処理と同様の処理が実行される。すなわち、同一化部413は、データ配置制御部110に対して、データ長を揃える対象データブロックを取得するため、ファイルIDと、負数を指定したオフセットと、を含む命令を送信する。データは位置制御部110では、オフセットに負数を指定した場合は、ファイルの末尾ブロックが指定されたことと同意であると判定する。そのため、命令に応じてデータ配置制御部110が、指定したファイルIDのファイル末尾のデータIDと位置情報を同一化部413に送信するとともに、データアクセス部に制御命令を送る。その後の処理は、図6に例示したものと同様である。
When the identification unit 413 performs the identification process, a process similar to the data arrangement control process illustrated in FIG. 6 is executed. That is, the identifying unit 413 transmits a command including a file ID and an offset designating a negative number to the data
なお、データ整合処理を行った場合の読出処理も図13、図14に示した処理と同様に実行される。ただし、データアクセス部のいずれかの異常終了等により、ディスクがアクセスできない状態になっている場合は、冗長データ位置テーブル121の位置情報からは当該データアクセス部の情報が削除されているため、読出部が取得できる位置情報の内容が通常とは変更されている。また、データ整合処理の結果、通常の書込処理時と同様に冗長データ位置テーブル121や処理対象リスト122が更新されている。
Note that the reading process when the data matching process is performed is executed in the same manner as the processes shown in FIGS. However, if the disk is in an inaccessible state due to any abnormal termination or the like of the data access unit, the information of the data access unit is deleted from the position information in the redundant data position table 121. The content of the position information that can be acquired by the department has been changed from normal. As a result of the data matching process, the redundant data position table 121 and the
[第2の実施形態の効果]
このように第2の実施形態に係るデータ整合システム1は、1以上のクライアントとネットワークを介して接続されるシステムであって、同一のデータの複製である冗長データをそれぞれ格納する複数の記憶装置と、複数の記憶装置に格納される冗長データへのアクセスを制御し、それぞれ複数の記憶装置の1つに接続される複数のサーバと、クライアントからの要求に応じて、複数の記憶装置それぞれに格納される、冗長データのデータ長を比較する比較部412と、比較部412が冗長データのデータ長が同一ではないと判定した場合に、複数の記憶装置に格納された冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化部413と、を備える。このため、書込処理が異常終了した場合であっても、上位アプリケーション側の選択に応じて、冗長データのデータ長を揃えることができる。したがって、異なる記憶装置に格納される冗長データ相互間で不整合が生じることが防止されるとともに、データの信頼性を向上させることができる。また、上位アプリケーションは、異常終了した書込処理の対象データの特徴に応じて、データ整合処理の要否を判定した上で、整合要求を発行することができ、異常終了時に自動的に再書き込みを行う等の対処法に比べて、上位アプリケーションにかかる負荷を減じて、処理性能の低下を抑制することができる。
[Effects of Second Embodiment]
As described above, the
また、第2の実施形態に係るデータ整合システム1においては、複数の記憶部はそれぞれ、同一のファイルデータを固定長のブロックに分割し同一のデータブロックを複製して得た前記冗長データを格納し、比較部412は、データブロックの識別子と、当該データブロックの格納先として指定される複数の記憶部の中から選択された2以上の記憶部の位置情報と、を対応付けて記憶する冗長データ位置テーブル121を参照して、同一のデータブロックに対応づけて記憶される2以上の記憶部の冗長データのうち末尾のデータブロックのデータ長を比較する。このため、ファイル末尾のブロックの冗長データ間でデータ長が一致している場合は、データ長を揃える処理を実行しない。したがって、チェックサム等を用いて冗長データ間の不一致を検出する場合と比較して、短い処理時間で上位アプリケーションに応答を返すことができる。また、上位アプリケーションは、データ整合処理を実行するか否かを選択するのみで冗長データの整合性を維持することができ、処理負荷が低減される。また、書込処理が異常終了した場合には自動的にデータ整合処理を実行するものとしておけば、アプリケーション実行部自体が停止した場合でも、冗長データ間の整合性を維持することができる。
In the
[第3の実施形態]
これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。以下に、その他の実施形態を説明する。
[Third Embodiment]
Although the embodiments of the present invention have been described so far, the present invention may be implemented in other embodiments besides the above-described embodiments. Other embodiments will be described below.
[システム構成]
上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[System configuration]
Of the processes described in the above embodiment, all or part of the processes described as being performed automatically can be performed manually, or all of the processes described as being performed manually or A part can be automatically performed by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
また、上記実施形態の説明においては、クライアント400Aがアプリケーション実行部401A、書込部402A、読出部403A、データ整合装置410Aを備えるものとして説明したが、これらの機能の一部をマスタ100に組み入れてもよい。たとえば、書込命令、読出命令、またはデータ整合命令はマスタ100のデータ配置制御部110がデータアクセス部201A,201B,201Cに対して送信するように構成してもよい。また、書込部402A,402B,402C、読出部403A,403B,403C、またはデータ整合装置410A,410B,410Cの機能の一部をサーバ200A,200B,200Cのデータアクセス部201A,201B,201Cが実行してもよい。
In the description of the above embodiment, the
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図3に示す例では、書込部402A、かつ、読出部403A、かつ、データ整合装置410Aを、クライアント400Aの一部として図示したが、書込部402A、読出部403A、および、データ整合装置410Aの機能の一部を、マスタ100に組み込んでもよい。たとえば、クライアント400Aの動作または機能として説明した動作または機能は、マスタ100に組み入れることができる。
Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration may be functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, in the example illustrated in FIG. 3, the
[プログラム]
図18は、データ整合システム1による一連の処理を実行するプログラムであるデータ整合プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。図18に例示するように、コンピュータ3000は、例えば、メモリ3010と、CPU(Central Processing Unit)3020と、ハードディスクドライブ3080と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
[program]
FIG. 18 is a diagram showing that the information processing by the data matching program that is a program for executing a series of processes by the
メモリ3010は、図18に例示するように、ROM3011及びRAM3012を含む。ROM3011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
The
ここで、図18に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係るデータ整合プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。例えば、データ配置制御部110、データ整合装置410、および、データアクセス部における処理と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。
Here, as illustrated in FIG. 18, the
また、記憶部120に記憶されるデータのように、データ整合プログラムによる情報処理に用いられるデータは、プログラムデータ3084として、例えばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAM3012に読み出し、各種の手順を実行する。
Further, data used for information processing by the data matching program, such as data stored in the
なお、データ整合プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU3020は、ネットワークインタフェース3070を介して他のコンピュータにアクセスすることで各種データを読み出す。
Note that the
[その他]
なお、本実施例で説明したデータ整合プログラムは、インターネット等のネットワークを介して配布することができる。また、データ整合プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disk Read Only Memory)、MO(Magnetooptic Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
[Others]
The data matching program described in the present embodiment can be distributed via a network such as the Internet. The data alignment program is recorded on a computer-readable recording medium such as a hard disk, flexible disk (FD), CD-ROM (Compact Disk Read Only Memory), MO (Magnetooptic Disc), DVD (Digital Versatile Disc). It can also be executed by being read from a recording medium by a computer.
1 データ整合システム
10,410A,410B,410C データ整合装置
11 比較部
12 同一化部
100 マスタ
110 データ配置制御部
120 記憶部
121 冗長データ位置テーブル
122 処理対象リスト
130 入出力部
200A,200B,200C サーバ
201A,201B,201C データアクセス部
300A,300B,300C ディスク
400A,400B,400C クライアント
401A,401B,401C アプリケーション実行部
402A,402B,402C 書込部
403A,403B,403C 読出部
412A,412B,412C 比較部
413A,413B,413C 同一化部
3000 コンピュータ
3010 メモリ
3011 ROM
3012 RAM
3020 CPU
3070 ネットワークインタフェース
3080 ハードディスクドライブ
3081 OS
3082 アプリケーションプログラム
3083 プログラムモジュール
3084 プログラムデータ
3100 バス
DESCRIPTION OF
3012 RAM
3020 CPU
3070
3082
Claims (6)
前記比較部が前記冗長データのデータ長が同一ではないと判定した場合に、前記複数の記憶部に格納された前記冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化部と、
を備えるデータ整合装置。 A comparison unit that compares the data length of redundant data that is a copy of the same data stored in each of the plurality of storage units when the writing process from the upper application ends abnormally;
When the comparison unit determines that the data length of the redundant data is not the same, the data length of the other redundant data is set to the data length of the shortest redundant data among the redundant data stored in the plurality of storage units. An identification unit to be aligned,
A data matching apparatus comprising:
前記比較部は、前記データブロックの識別子と、当該データブロックの格納先として指定される前記複数の記憶部の中から選択された2以上の記憶部の位置情報と、を対応付けて記憶する冗長データ位置テーブルを参照して、同一のデータブロックに対応づけて記憶される前記2以上の記憶部の前記冗長データのうち末尾のデータブロックのデータ長を比較することを特徴とする請求項1に記載のデータ整合装置。 Each of the plurality of storage units stores the redundant data obtained by dividing the same file data into fixed-length blocks and replicating the same data block,
The comparing unit stores the identifier of the data block and the positional information of two or more storage units selected from the plurality of storage units specified as the storage destination of the data block in association with each other. 2. The data length of a last data block of the redundant data in the two or more storage units stored in association with the same data block is compared by referring to a data position table. The data alignment device described.
前記比較工程において前記冗長データのデータ長が同一ではないと判定した場合に、前記複数の記憶部に格納された前記冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化工程と、
を備えるデータ整合方法。 A comparison step of comparing the data length of redundant data, which is a copy of the same data, stored in each of the plurality of storage units, when the writing process from the upper application ends abnormally;
When it is determined in the comparison step that the data length of the redundant data is not the same, the data length of the other redundant data is set to the data length of the shortest redundant data among the redundant data stored in the plurality of storage units. The same identification process,
A data alignment method comprising:
前記比較工程は、前記データブロックの識別子と、当該データブロックの格納先として指定される前記複数の記憶部の中から選択された2以上の記憶部の位置情報と、を対応付けて記憶する冗長データ位置テーブルを参照して、前記冗長データ位置テーブル中に、同一のデータブロックに対応づけて記憶される前記2以上の記憶部の前記冗長データのうち末尾のブロックのデータ長を比較することを特徴とする請求項3に記載のデータ整合方法。 The plurality of storage units each store the redundant data obtained by dividing the same file data into fixed-length blocks and replicating the same data block,
The comparison step includes redundantly storing the identifier of the data block and the positional information of two or more storage units selected from the plurality of storage units specified as the storage destination of the data block in association with each other Referencing the data position table, comparing the data length of the last block among the redundant data of the two or more storage units stored in association with the same data block in the redundant data position table. The data matching method according to claim 3, wherein:
前記比較手順において前記冗長データのデータ長が同一ではないと判定した場合に、前記複数の記憶部に格納された前記冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化手順と、
をコンピュータに実行させることを特徴とするデータ整合プログラム。 A comparison procedure for comparing the data length of redundant data, which is a copy of the same data stored in each of the plurality of storage units, when the writing process from the upper application ends abnormally,
When it is determined in the comparison procedure that the data length of the redundant data is not the same, the data length of the other redundant data is set to the data length of the shortest redundant data among the redundant data stored in the plurality of storage units. The same identification procedure,
A data alignment program for causing a computer to execute
前記比較手順は、前記データブロックの識別子と、当該データブロックの格納先として指定される前記複数の記憶部の中から選択された2以上の記憶部の位置情報と、を対応付けて記憶する冗長データ位置テーブルを参照して、前記冗長データ位置テーブル中に、同一のデータブロックに対応づけて記憶される前記2以上の記憶部の前記冗長データのうち末尾のブロックのデータ長を比較することを特徴とする請求項5に記載のデータ整合プログラム。 The plurality of storage units each store the redundant data obtained by dividing the same file data into fixed-length blocks and replicating the same data block,
The comparison procedure is a redundancy in which an identifier of the data block and position information of two or more storage units selected from the plurality of storage units specified as storage destinations of the data block are stored in association with each other. Referencing the data position table, comparing the data length of the last block among the redundant data of the two or more storage units stored in association with the same data block in the redundant data position table. 6. The data matching program according to claim 5, wherein
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012234965A JP5475085B1 (en) | 2012-10-24 | 2012-10-24 | Data alignment apparatus, data alignment method, and data alignment program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012234965A JP5475085B1 (en) | 2012-10-24 | 2012-10-24 | Data alignment apparatus, data alignment method, and data alignment program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5475085B1 JP5475085B1 (en) | 2014-04-16 |
JP2014085883A true JP2014085883A (en) | 2014-05-12 |
Family
ID=50749833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012234965A Active JP5475085B1 (en) | 2012-10-24 | 2012-10-24 | Data alignment apparatus, data alignment method, and data alignment program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5475085B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016170619A1 (en) * | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | Computer system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001350645A (en) * | 2000-06-06 | 2001-12-21 | Mitsubishi Electric Corp | Computer system |
JP2004005628A (en) * | 2003-05-01 | 2004-01-08 | Mitsubishi Electric Corp | Duplex memory system |
JP2005078430A (en) * | 2003-09-01 | 2005-03-24 | Toshiba Corp | Disk array device, disk controller and method for recovering data trouble of disk array |
JP2008077264A (en) * | 2006-09-20 | 2008-04-03 | Hitachi Ltd | Recovery method using cdp |
-
2012
- 2012-10-24 JP JP2012234965A patent/JP5475085B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001350645A (en) * | 2000-06-06 | 2001-12-21 | Mitsubishi Electric Corp | Computer system |
JP2004005628A (en) * | 2003-05-01 | 2004-01-08 | Mitsubishi Electric Corp | Duplex memory system |
JP2005078430A (en) * | 2003-09-01 | 2005-03-24 | Toshiba Corp | Disk array device, disk controller and method for recovering data trouble of disk array |
JP2008077264A (en) * | 2006-09-20 | 2008-04-03 | Hitachi Ltd | Recovery method using cdp |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016170619A1 (en) * | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | Computer system |
Also Published As
Publication number | Publication date |
---|---|
JP5475085B1 (en) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102378367B1 (en) | Distributed file system | |
JP5968554B2 (en) | Disaster recovery virtualization method and apparatus | |
US9430484B2 (en) | Data redundancy in a cluster system | |
US9904689B2 (en) | Processing a file system operation in a distributed file system | |
US10178168B2 (en) | Read-after-write consistency in data replication | |
US7836017B1 (en) | File replication in a distributed segmented file system | |
KR102441997B1 (en) | Apparatus for controlling synchronization of metadata on network and method for the same | |
US20100138687A1 (en) | Recording medium storing failure isolation processing program, failure node isolation method, and storage system | |
US20140122816A1 (en) | Switching between mirrored volumes | |
JP4988370B2 (en) | Method, system, and program for integrating session information for a cluster of sessions in a coupled session environment | |
JP2005196683A (en) | Information processing system, information processor and control method of information processing system | |
JP2010527087A (en) | Data replication method and system in database management system (DBMS) | |
JP2011191933A (en) | Storage device, and program and method for controlling storage device | |
JP2008165431A (en) | Mirroring program, mirroring method and information storage device | |
WO2014205847A1 (en) | Zoning balance subtask delivering method, apparatus and system | |
WO2015145661A1 (en) | Storage system and method for eliminating duplicate data | |
JP2007128335A (en) | Replication arbitration device, method and program | |
JP2003015933A (en) | File level remote copy method for storage device | |
JP2005242632A (en) | Control method of information processing device, information processing device, and control method of storage device | |
JP2021189520A (en) | Distributed file system, and distributed file management method | |
JP2023125812A (en) | Copy control device and method | |
JP5475085B1 (en) | Data alignment apparatus, data alignment method, and data alignment program | |
CN114063896A (en) | Storage system, cooperation method, and program | |
US11010266B1 (en) | Dual isolation recovery for primary-secondary server architectures | |
JP6181216B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, PROGRAM, AND COMMUNICATION SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5475085 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |