[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2014085883A - Device, method, and program for data matching - Google Patents

Device, method, and program for data matching Download PDF

Info

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
Application number
JP2012234965A
Other languages
Japanese (ja)
Other versions
JP5475085B1 (en
Inventor
Yoshimi Ichiyanagi
淑美 一柳
Koji Sato
孝治 佐藤
Hiroyuki Uchiyama
寛之 内山
Koichi Washisaka
光一 鷲坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012234965A priority Critical patent/JP5475085B1/en
Application granted granted Critical
Publication of JP5475085B1 publication Critical patent/JP5475085B1/en
Publication of JP2014085883A publication Critical patent/JP2014085883A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To match redundant data sets without deteriorating performance of a host application.SOLUTION: A data matching device of the present invention comprises: a comparison unit; and a unification unit. The comparison unit compares data length of redundant data sets, which are copies of a same data set and are stored in a respective plurality of storage units, when a write process by a host application terminates abnormally. When the comparison unit determines that the redundant data sets do not have an identical data length, the unification unit adjusts the data length of all the redundant data sets to a data length of the shortest redundant data set of all the redundant data sets stored in the plurality of storage units.

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 Document 1 discloses an example of a distributed file system. In this system, each cluster is composed of one master and a plurality of servers. Multiple clients access the cluster. When storing a file in a cluster, the file is divided into a plurality of fixed-length blocks, and a copy of each block is stored in the server. Thus, by duplicating files to make them redundant and holding them distributed on a plurality of servers, fault tolerance can be improved, parallel processing on a plurality of servers can be performed, and processing efficiency can be improved.

Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung著、「The Google File System」、19th ACM Symposium on Operating Systems Principles、2003年10月、p. 20-43Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, “The Google File System”, 19th ACM Symposium on Operating Systems Principles, October 2003, p. 20-43 Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau著、「IRON File Systems」、SOSP ’05 Proceedings of the twentieth ACM symposium on Operating systems principles、2005年10月、p. 206-220Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau, "IRON File Systems", SOSP '05 Proceedings of the twentieth ACM symposium on Operating systems principles, October 2005, p. 206-220

しかしながら、上記の技術においては、冗長化した複数のデータ(以下、「冗長データ」とも呼ぶ。冗長データは、複製元のデータおよび複製先のデータを含む。)間での整合性を維持する際に、処理性能が低下するという問題があった。   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 Document 2 for detecting a mismatch state using a checksum, first, a checksum of redundant data is acquired. When the checksums are compared between the plurality of redundant data, for example, periodically or when accessing the redundant data or when the writing process fails, the redundant data becomes the same. Redundant data is rewritten as described above.

しかし、チェックサムを利用した不一致状態の検知手法では、上位アプリケーションからファイルシステム上のファイルにアクセスする処理と、ファイルシステム内部のチェックサムを比較する処理が競合する。このため、やはり、ファイルシステムの書込処理および読出処理の性能が低下する。   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.

図1は、本発明の第1の実施形態に係るデータ整合装置の概要を示すブロック図である。FIG. 1 is a block diagram showing an outline of a data matching apparatus according to the first embodiment of the present invention. 図2は、第1の実施形態に係るデータ整合装置のデータ整合処理の流れの一例を示すフローチャートである。FIG. 2 is a flowchart showing an example of the flow of data matching processing of the data matching apparatus according to the first embodiment. 図3は、本発明の第2の実施形態に係るデータ整合システムの概要を示すブロック図である。FIG. 3 is a block diagram showing an outline of a data matching system according to the second embodiment of the present invention. 図4−1は、第2の実施形態に係る冗長データ位置テーブルに格納する情報の一例を説明するための図である。FIG. 4A is a diagram for explaining an example of information stored in the redundant data position table according to the second embodiment. 図4−2は、第2の実施形態に係る冗長データ位置テーブルに格納する情報とデータを格納するディスクとの対応を説明するための図である。FIG. 4B is a diagram for explaining the correspondence between the information stored in the redundant data position table according to the second embodiment and the disk storing the data. 図5は、第2の実施形態に係る処理対象リストに格納するデータの一例を示す図である。FIG. 5 is a diagram illustrating an example of data stored in the processing target list according to the second embodiment. 図6は、第2の実施形態に係るデータ配置制御部による、書込処理時のデータ配置制御処理の流れの一例を示すフローチャートである。FIG. 6 is a flowchart illustrating an example of the flow of the data arrangement control process during the writing process by the data arrangement control unit according to the second embodiment. 図7は、第2の実施形態に係るデータ配置制御部による、書込制御処理の流れの一例を示すフローチャートである。FIG. 7 is a flowchart illustrating an example of a flow of write control processing by the data arrangement control unit according to the second embodiment. 図8は、第2の実施形態に係る書込部による書込処理の流れの一例を示すフローチャートである。FIG. 8 is a flowchart illustrating an example of a flow of a writing process by the writing unit according to the second embodiment. 図9は、第2の実施形態に係るデータアクセス部における書込実行前処理の流れの一例を示すフローチャートである。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. 図10は、第2の実施形態に係るデータアクセス部における書込実行処理の流れの一例を示すフローチャートである。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. 図11は、第2の実施形態に係るデータ整合システムにおける正常時の処理の流れの一例を概括的に示す図である。FIG. 11 is a diagram schematically showing an example of a normal processing flow in the data matching system according to the second embodiment. 図12は、第2の実施形態に係るデータ配置制御部による、読出処理時のデータ配置制御処理の流れの一例を示すフローチャートである。FIG. 12 is a flowchart illustrating an example of the flow of the data arrangement control process during the reading process by the data arrangement control unit according to the second embodiment. 図13は、第2の実施形態に係る読出部による読出処理の流れの一例を示すフローチャートである。FIG. 13 is a flowchart illustrating an example of a flow of reading processing by the reading unit according to the second embodiment. 図14は、第2の実施形態に係るデータアクセス部における読出実行処理の流れの一例を示すフローチャートである。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. 図15は、第2の実施形態に係るデータアクセス部が、書込処理中に異常終了した場合の冗長データの状態を説明するための図である。FIG. 15 is a diagram for explaining the state of redundant data when the data access unit according to the second embodiment abnormally ends during the writing process. 図16は、第2の実施形態に係るデータ整合装置におけるデータ整合処理の流れの一例を示すフローチャートである。FIG. 16 is a flowchart illustrating an example of the flow of data matching processing in the data matching apparatus according to the second embodiment. 図17は、第2の実施形態に係るデータ整合装置における同一化処理の流れの一例を示すフローチャートである。FIG. 17 is a flowchart illustrating an example of the flow of the identification process in the data matching apparatus according to the second embodiment. 図18は、データ整合システムによる一連の処理を実行するプログラムであるデータ整合プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。FIG. 18 is a diagram showing that the information processing by the data matching program, which is a program for executing a series of processes by the data matching system, is specifically realized using a computer.

以下に、本発明にかかるデータ整合装置、データ整合方法およびデータ整合プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。   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 data matching apparatus 10 according to the first embodiment of the present invention. A data matching apparatus 10 according to the first embodiment will be described with reference to FIG. The data matching apparatus 10 according to the first embodiment detects an inconsistency of redundant data that occurs when a plurality of redundant data created by duplicating the same data is stored in different storage devices. Match the data length of the.

図1に示すように、データ整合装置10は、比較部11と同一化部12とを備える。比較部11は、データの複製を作成して冗長化した冗長データをそれぞれ格納する複数の記憶部(図示せず)に対して、冗長データのデータ長を比較する比較処理を実行する。同一化部12は、比較処理の結果、比較部11が冗長データのデータ長が同一ではないと判定した場合に、当該冗長データのうち、最も短いデータ長の冗長データに他の冗長データのデータ長を揃える。   As shown in FIG. 1, the data matching apparatus 10 includes a comparison unit 11 and an identification unit 12. The comparison unit 11 performs a comparison process for comparing the data lengths of the redundant data with respect to a plurality of storage units (not shown) that respectively store redundant data created by duplicating data. If the comparison unit 11 determines that the data length of the redundant data is not the same as a result of the comparison process, the identification unit 12 adds the data of the other redundant data to the redundant data having the shortest data length among the redundant data. Align the length.

データ整合装置10は、たとえば、分散型ファイルシステムのマスタ装置であってよい。また、たとえば、データ整合装置10の機能は、クライアントライブラリによって実現されるように構成してもよい。ただし、分散型ファイルシステムに限らず、複数の独立した記憶部を有し、記憶部各々に同一の複製データを格納することでシステムの冗長性を確保するシステムに適用することができる。たとえば、外部からのアクセスによって各記憶部に対する並列処理が実行され、複数の外部からの命令を調整して処理するシステムに適用することができる。   The data matching device 10 may be, for example, a master device of a distributed file system. Further, for example, the function of the data matching apparatus 10 may be configured to be realized by a client library. However, the present invention is not limited to a distributed file system, and can be applied to a system that has a plurality of independent storage units and stores the same replication data in each storage unit to ensure system redundancy. For example, the present invention can be applied to a system in which parallel processing for each storage unit is executed by external access, and a plurality of external instructions are adjusted and processed.

また、図1には図示しないが、データ整合装置10は、冗長データを格納する複数の記憶部や、記憶部に対するデータの読出要求や書込要求を送信する情報処理装置等とネットワーク等を介して接続される。複数の記憶部は例えば、物理サーバと当該サーバに接続されたディスク装置や、データセンタ内に仮想的に構築された仮想サーバと仮想ストレージ等であってよい。また、情報処理装置は、物理サーバやデータセンタを利用するクライアント装置であってよい。   Although not shown in FIG. 1, the data matching device 10 is connected to a plurality of storage units for storing redundant data, an information processing device for transmitting data read requests and write requests to the storage units, and the like via a network. Connected. The plurality of storage units may be, for example, a physical server and a disk device connected to the server, a virtual server and a virtual storage that are virtually constructed in the data center, and the like. Further, the information processing apparatus may be a client apparatus that uses a physical server or a data center.

また、ネットワークとして、ワイドエリアネットワーク(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 data matching apparatus 10 according to the first embodiment. With reference to FIG. 2, an example of the flow of data matching processing by the data matching apparatus 10 according to the first embodiment will be described.

図2に示すように、データ整合装置10はまず、整合要求を受ける(ステップS21)。整合要求はたとえば、データ整合装置10に接続され、記憶部に格納されたデータを利用するクライアントから発行される。クライアントはたとえば、記憶部にデータを書き込む処理が異常終了した場合等に、データ整合装置10に対して整合要求を発行する。ただし、整合要求は、クライアントにおいて記憶部への書込処理が異常終了したことを検出した場合に、自動的にデータ整合装置10に発行されるものとしてもよい。   As shown in FIG. 2, the data matching apparatus 10 first receives a matching request (step S21). For example, the matching request is issued from a client connected to the data matching apparatus 10 and using data stored in the storage unit. For example, the client issues a matching request to the data matching apparatus 10 when, for example, the process of writing data in the storage unit ends abnormally. However, the matching request may be automatically issued to the data matching apparatus 10 when it is detected that the writing process to the storage unit has ended abnormally in the client.

整合要求は、比較部11に渡される。比較部11は、整合要求によって特定される冗長データを格納する複数の記憶部にアクセスし、格納された冗長データのデータ長を抽出する(ステップS22)。そして比較部11は、抽出したデータ長を相互に比較する(ステップS23)。比較部11がデータ長は同一であると判定した場合(ステップS24、肯定)、データ整合処理は終了する。他方、比較部11がデータ長は同一ではないと判定した場合(ステップS24、否定)、比較部11は処理を同一化部12に渡す。同一化部12は、比較部11がデータ長を比較した冗長データのデータ長を揃える(ステップS25)。すなわち、同一化部12は、複数の冗長データのうち、最も短いデータ長の冗長データに他の冗長データのデータ長を揃える。これによってデータ整合処理は終了する。   The matching request is passed to the comparison unit 11. The comparison unit 11 accesses a plurality of storage units that store redundant data specified by the matching request, and extracts the data length of the stored redundant data (step S22). Then, the comparison unit 11 compares the extracted data lengths with each other (step S23). When the comparison unit 11 determines that the data lengths are the same (Yes at Step S24), the data matching process ends. On the other hand, when the comparison unit 11 determines that the data lengths are not the same (No at Step S24), the comparison unit 11 passes the processing to the identification unit 12. The identification unit 12 aligns the data lengths of the redundant data compared by the comparison unit 11 (step S25). That is, the identifying unit 12 aligns the data length of other redundant data with the redundant data having the shortest data length among the plurality of redundant data. This completes the data matching process.

[第1の実施形態の効果]
このように、第1の実施形態に係るデータ整合装置10は、複数の記憶部それぞれに格納される、同一のデータの複製である冗長データのデータ長を比較する比較部11と、比較部11が冗長データのデータ長が同一ではないと判定した場合に、複数の記憶部に格納された冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化部12と、を備える。このため、第1の実施形態に係るデータ整合装置10は、複数の記憶部が格納する冗長データ間で整合性を確保することができる。
[Effect of the first embodiment]
As described above, the data matching apparatus 10 according to the first embodiment includes the comparison unit 11 that compares the data length of redundant data that is a duplicate of the same data stored in each of the plurality of storage units, and the comparison unit 11. When the data lengths of the redundant data are not the same, the identification unit 12 aligns the data length of the other redundant data to the data length of the shortest redundant data among the redundant data stored in the plurality of storage units. . For this reason, the data matching apparatus 10 according to the first embodiment can ensure consistency among redundant data stored in a plurality of storage units.

また、データ整合装置10は、整合要求を受けたときにデータ整合処理を実行し、特に必要がない場合は冗長データ間の不整合に対処しないように構成してもよい。このように構成することで、クライアント側が利用するアプリケーションのニーズに合わせて、冗長データの整合性制御を実行することができる。   Further, the data matching apparatus 10 may be configured to perform data matching processing when receiving a matching request, and not to deal with inconsistencies between redundant data unless particularly necessary. With this configuration, it is possible to execute redundancy data consistency control in accordance with the needs of applications used on the client side.

たとえば、クライアント側が利用するアプリケーションが多少の冗長データの不整合があっても問題なく動作できるものであれば、クライアントは整合要求を発行せずに処理を継続する。そして、クライアントまたはデータ整合装置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 data matching apparatus 10 is low, a matching request can be issued to execute the data matching process. In addition, if the application used on the client side requires high consistency of redundant data, the client immediately issues a consistency request when the write operation is terminated unexpectedly. Consistency can be ensured.

また、データ整合装置10は、書込処理の異常終了が発生した場合は常にデータ整合処理を実行するように設定してもよい。また、データ整合装置10は、予め定められたアプリケーションからの書込要求に対応した書込処理が異常終了した場合はデータ整合処理を実行し、他のアプリケーションからの書込要求に対応した書込処理が異常終了した場合はデータ整合処理を実行しないように設定してもよい。   Further, the data matching apparatus 10 may be set to always execute the data matching process when an abnormal end of the writing process occurs. In addition, the data matching apparatus 10 executes the data matching process when the writing process corresponding to the writing request from the predetermined application is abnormally terminated, and the writing corresponding to the writing request from the other application is performed. It may be set so that the data matching process is not executed when the process ends abnormally.

このように、第1の実施形態のデータ整合装置10は、上位アプリケーションに係る負荷を抑制して処理性能の低下を防止しつつ、複数の記憶部に格納された冗長データ間の整合性を確保することができる。   As described above, the data matching apparatus 10 according to the first embodiment ensures consistency between redundant data stored in a plurality of storage units while suppressing a load related to a higher-level application and preventing a decrease in processing performance. can do.

[第2の実施形態]
図3は、本発明の第2の実施形態に係るデータ整合システム1の概要を示すブロック図である。図3を参照して、第2の実施形態に係るデータ整合システム1の構成の概要について説明する。
[Second Embodiment]
FIG. 3 is a block diagram showing an outline of the data matching system 1 according to the second embodiment of the present invention. With reference to FIG. 3, the outline of the configuration of the data matching system 1 according to the second embodiment will be described.

[データ整合システム]
図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 data matching system 1 includes a master 100, servers 200A, 200B, and 200C, disks 300A, 300B, and 300C, and clients 400A, 400B, and 400C. The master 100 is connected to the servers 200A, 200B, and 200C and the clients 400A, 400B, and 400C via the network, and transmits and receives information to and from each other. Further, the clients 400A, 400B, and 400C appropriately transmit a read command, a write command, or a data matching command to the servers 200A, 200B, and 200C based on the information transmitted from the master 100. The master 100 receives a request for reading or writing data from the clients 400A, 400B, and 400C, and transmits information for reading or writing or data alignment to the clients 400A, 400B, and 400C. Servers 200A, 200B, and 200C execute read processing, write processing, or data matching processing on disks 300A, 300B, and 300C based on instructions from clients 400A, 400B, and 400C.

マスタ100はたとえば、分散型ファイルシステムのマスタである。サーバ200A,200B,200Cはたとえば、分散型ファイルシステムのチャンクサーバである。クライアント400A,400B,400Cはたとえば、分散型ファイルシステムを利用するユーザである。   The master 100 is, for example, a distributed file system master. Servers 200A, 200B, and 200C are, for example, chunk servers of a distributed file system. Clients 400A, 400B, and 400C are, for example, users who use a distributed file system.

また、マスタ100は、インタークラウドシステムのインタークラウドサーバとして構成してもよい。その場合、サーバ200A,200B,200Cおよびディスク300A,300B,300Cは、クラウドシステムによって仮想的に構成してもよい。また、マスタ100、サーバ200A,200B,200C、ディスク300A,300B,300Cは、1つのデータセンタ内に構築したものであってもよいし、複数のデータセンタに分散して構築したものでもよい。   The master 100 may be configured as an intercloud server of an intercloud system. In that case, the servers 200A, 200B, and 200C and the disks 300A, 300B, and 300C may be configured virtually by a cloud system. Further, the master 100, the servers 200A, 200B, and 200C and the disks 300A, 300B, and 300C may be constructed in one data center or may be constructed in a distributed manner in a plurality of data centers.

サーバ200A,200B,200Cは、マスタ100およびクライアント400A,400B,400Cからの命令に応じて、各々の配下のディスク300A,300B,300Cにアクセスし、データの読み出しや書込みを行う。サーバ200A,200B,200Cはそれぞれ、配下のディスク300A,300B,300Cへのアクセスを制御するためのデータアクセス部201A,201B,201Cを備える。   The servers 200A, 200B, and 200C access the subordinate disks 300A, 300B, and 300C in accordance with commands from the master 100 and the clients 400A, 400B, and 400C, and read and write data. Each of the servers 200A, 200B, and 200C includes data access units 201A, 201B, and 201C for controlling access to the subordinate disks 300A, 300B, and 300C.

サーバ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 servers 200A, 200B, and 200C stores the same data as redundant data so that the data is not lost even if a failure occurs in any of the servers. The clients 400A, 400B, and 400C can execute parallel processing on the same data by accessing any of the servers 200A, 200B, and 200C. 3 shows three servers 200A, 200B, and 200C, the number of servers is not limited to three. In the second embodiment, the number of disks and servers that store redundant data will be described as 3. In the case of a data matching system including 10 servers, for example, redundant data of the same data is appropriately selected from 10 servers. It may be stored in a disk under the selected three servers. The master 100 determines and controls which server's disk stores redundant data, and instructs the clients 400A, 400B, and 400C. However, the clients 400A, 400B, and 400C may be configured to designate a server that stores redundant data.

ディスク300A,300B,300Cは、データを記憶するデータベース等の記憶装置である。ディスク300A,300B,300Cへのアクセスはそれぞれサーバ200A,200B,200Cにより制御される。   The disks 300A, 300B, and 300C are storage devices such as a database that stores data. Access to the disks 300A, 300B, and 300C is controlled by the servers 200A, 200B, and 200C, respectively.

クライアント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への書込命令、読出命令、データ整合命令を送信する。   Clients 400A, 400B, and 400C use data stored in disks 300A, 300B, and 300C. For example, the clients 400A, 400B, and 400C are user terminals that use an intercloud system. Each of the clients 400A, 400B, and 400C includes application execution units 401A, 401B, and 401C, writing units 402A, 402B, and 402C, reading units 403A, 403B, and 403C, and data matching devices 410A, 410B, and 410C. Each of the application execution units 401A, 401B, and 401C is a functional unit that executes a client application. The writing units 402A, 402B, and 402C, the reading units 403A, 403B, and 403C and the data matching devices 410A, 410B, and 410C are respectively written to the disks 300A, 300B, and 300C under the control of the application execution units 401A, 401B, and 401C. Send command, read command, data match command.

[データ整合装置の構成の一例]
クライアント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 clients 400A, 400B, and 400C include data matching devices 410A, 410B, and 410C, respectively. The data matching devices 410A, 410B, and 410C will be further described below. The data matching device 410 (hereinafter, “data matching device 410” indicates any one of the data matching devices 410A, 410B, 410C) is compared with the comparison unit 412 (hereinafter, “comparison unit 412” is the comparison unit 412A, 412B and 412C) and an identifying unit 413 (hereinafter, “identifying unit 413” represents any one of the identifying units 413A, 413B, and 413C).

比較部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 master 100 of the second embodiment, the same data is stored in the servers 200A, 200B, and 200C in order to ensure data redundancy. However, there may be a discrepancy between the data stored in the server 200A and the data stored in the server 200B, such as when the writing process ends abnormally. In addition, when the writing is abnormally terminated, one of the servers cannot be accessed from the outside, and it may not be possible to know from the outside (client) whether or not the data has been properly written to other servers. is there. Therefore, the comparison unit 412 detects the write target data of the abnormally terminated write process from the accessible server, and executes a comparison process for comparing the respective data lengths.

同一化部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 master 100 will be described. As shown in FIG. 3, the master 100 includes a data arrangement control unit 110, a storage unit 120, and an input / output unit 130. The data arrangement control unit 110 controls the function and operation of each unit in the master 100. The storage unit 120 appropriately stores information used for processing in the master 100 and information generated as a result of the processing. The input / output unit 130 exchanges information between the outside and the master 100. Information received by the input / output unit 130 is appropriately transferred to the data arrangement control unit 110 and the storage unit 120.

データ配置制御部110は、データの書込みおよび読み出しを行う場所を判定し、冗長データを識別するための情報や冗長データの所在を示す情報を記憶部120に記憶する処理を実行する。また、サーバ200A,200B,200Cにおける読出処理および書込処理およびデータ整合処理の結果に応じて、記憶部120に格納された情報を更新する。また、データ配置制御部110は、クライアント400A,400B,400Cからの要求に応じて、データの書込みおよび読み出しおよびデータ整合化に必要な情報をクライアント400A,400B,400Cに送信する。   The data arrangement control unit 110 determines a place where data is written and read, and executes processing for storing in the storage unit 120 information for identifying redundant data and information indicating the location of redundant data. Further, the information stored in the storage unit 120 is updated according to the results of the read process, the write process, and the data matching process in the servers 200A, 200B, and 200C. Further, the data arrangement control unit 110 transmits information necessary for writing and reading data and data alignment to the clients 400A, 400B, and 400C in response to requests from the clients 400A, 400B, and 400C.

[記憶部の構成および記憶する情報の一例]
次に、記憶部120の構成および記憶部120に記憶する情報の一例につき説明する。図3に示すように、記憶部120は、冗長データ位置テーブル121と、処理対象リスト(リースリスト)122と、を備える。
[Example of configuration of storage unit and stored information]
Next, the configuration of the storage unit 120 and an example of information stored in the storage unit 120 will be described. As illustrated in FIG. 3, the storage unit 120 includes a redundant data position table 121 and a processing target list (lease list) 122.

冗長データ位置テーブル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 servers 200A, 200B, and 200C and information of the server that stores the data. FIG. 4A is a diagram for explaining an example of information stored in the redundant data position table 121. FIG. 4B is a diagram for explaining the correspondence between the information stored in the redundant data position table 121 and the disk storing the data.

たとえば、クライアント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 disks 300A, 300B, and 300C in response to a write request from the client 400A. In this case, the data of the file ID “A” is first divided into fixed lengths to form a plurality of data blocks (see FIG. 4A). A handle name and a version number are assigned to each block. A combination of the handle name and the version number is the data ID of the block. For example, in the example of FIG. 4A, the data of the file ID “A” is divided into three fixed-length blocks. Then, the handle name “a1” and the version number “2” are assigned to the first block. Therefore, the data ID of the first block of the data of the file ID “A” is “a12”, and the data ID is stored in the redundant data position table 121 in association with the file ID “A”. Similarly, the handle name “a2” and the version number “3” are assigned to the second data block and stored in the redundant data position table 121. In addition, the handle name “a3” and the version number “3” are assigned to the third data block and stored in the redundant data position table 121.

なお、各データブロックに付与するデータ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 disks 300A, 300B, and 300C. Therefore, the redundant data position table 121 stores, for example, position information indicating the location where the redundant data is stored for each block of the data with the file ID “A”. In the example of FIG. 4B, the redundant data of the data block with the data ID “a33” in the data with the file ID “A” is transferred to the disk controlled by the servers with the server IDs “200A”, “200B”, and “200C”. It is shown that it is stored. That is, here, the location information specifies the server on which the data access unit that manages the data of the data block is operating.

なお、冗長データが格納されている場所を示す位置情報としては、たとえば、サーバの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 processing target list 122 is a list that identifies the server or data access unit that is executing the writing process and the processing target data at that time. FIG. 5 is a diagram illustrating an example of data stored in the processing target list 122.

処理対象リスト122は、その時点で書込処理を実行しているデータブロックを特定する情報と、当該データブロックへの書込処理を制御している機能部を特定する情報とを記憶する。たとえば、データID「a12」のデータブロックに対する書込処理を、データアクセス部「201A」が制御している場合、処理対象リスト122には、当該データのハンドル名である「a1」と、データアクセス部「201A」の位置情報である「201A」とが対応づけて格納される。データアクセス部「201A」による、ハンドル名「a1」のデータブロックに対する書込処理が終了すると、所定の時間が経過した後、データ配置制御部110が、処理対象リスト122からハンドル名「a1」とデータアクセス部「201A」の情報を削除する。なお、ここでは処理対象リスト122は、処理対象データのハンドル名のみを格納し、バージョン番号は格納しないものとする。   The processing target list 122 stores information for specifying the data block that is executing the writing process at that time, and information for specifying the functional unit that controls the writing process to the data block. For example, when the data access unit “201A” controls the writing process for the data block with the data ID “a12”, the processing target list 122 includes “a1”, which is the handle name of the data, and the data access The position information “201A” of the part “201A” is stored in association with each other. When the data access unit “201A” finishes writing the data block with the handle name “a1”, after a predetermined time has elapsed, the data placement control unit 110 changes the handle name “a1” from the processing target list 122. The information of the data access unit “201A” is deleted. Here, it is assumed that the processing target list 122 stores only the handle name of the processing target data and does not store the version number.

[書込処理時のデータ配置制御処理の流れの一例]
図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 master 100 according to the second embodiment. With reference to FIG. 6, the flow of data arrangement control processing by the master 100 will be described.

まず、たとえばクライアント400Aが、ファイルID「A」のデータの書込みを要求する書込要求をマスタ100に対して送信する。書込要求は、データを書き込む対象であるファイルのファイルIDと、ファイル中の書込データの位置を示すオフセット「Z」とを含む。なお、書込要求は後述する同一化部413によっても送信される。この場合の処理も以下と同様である。   First, for example, the client 400A transmits a write request for requesting writing of data of the file ID “A” to the master 100. The write request includes a file ID of a file to which data is to be written and an offset “Z” indicating the position of the write data in the file. The write request is also transmitted by the identifying unit 413 described later. The processing in this case is similar to the following.

データ配置制御部110は、書込要求を受信すると(ステップS601)、書込要求に含まれた情報に基づき、データを書き込む位置を特定する(ステップS602)。たとえば、書込要求に含まれたオフセット「Z」が正の数である場合、データ配置制御部110は、オフセット「Z」と予め定められたブロックサイズ(固定長)とを加算して、ブロックサイズで除算する。データ配置制御部110は、その結果得られた整商に応じた場所にあるブロックを、データを書き込むブロックであると判断する。また、書込要求に含まれたオフセット「Z」が負の数である場合、データ配置制御部110は、当該ファイルの終端ブロックがデータを書き込むブロックであると判断する。   When receiving a write request (step S601), the data arrangement control unit 110 specifies a position to write data based on information included in the write request (step S602). For example, when the offset “Z” included in the write request is a positive number, the data arrangement control unit 110 adds the offset “Z” and a predetermined block size (fixed length) to obtain a block Divide by size. The data arrangement control unit 110 determines that the block located at the place corresponding to the quotient obtained as a result is a block to which data is written. When the offset “Z” included in the write request is a negative number, the data arrangement control unit 110 determines that the end block of the file is a block in which data is written.

次に、データ配置制御部110は、データを書き込むブロックのデータIDの取得を試みる(ステップS603)。すなわち、データ配置制御部110は、冗長データ位置テーブル121を参照して、該当するデータIDのデータについての情報が格納されているか否かを判定する。情報が格納されていない場合(ステップS603、否定)、データ配置制御部110は、対応するデータがまだいずれのディスクにも格納されていないと判断して、新しいハンドル名を作成する(ステップS604)。そして、データ配置制御部110は、当該データの冗長データを格納するディスク(すなわち、対応するサーバまたはデータアクセス部)を決定する(ステップS605)。たとえば、データ配置制御部110は、予め作成すると定められている冗長データの数が3である場合、「3−1」個以上のスイッチ配下で動作するサーバを、作成する冗長データの数「3」だけ選択する。   Next, the data arrangement control unit 110 tries to acquire the data ID of the block to which data is written (step S603). That is, the data arrangement control unit 110 refers to the redundant data position table 121 and determines whether or not information about the data of the corresponding data ID is stored. If the information is not stored (No at Step S603), the data arrangement control unit 110 determines that the corresponding data is not yet stored on any disk, and creates a new handle name (Step S604). . Then, the data arrangement control unit 110 determines a disk (that is, a corresponding server or data access unit) that stores redundant data of the data (step S605). For example, when the number of redundant data determined to be created in advance is 3, the data placement control unit 110 creates a server that operates under “3-1” or more switches as the number of redundant data created “3”. "Only.

そして、データ配置制御部110は、ステップS604で作成したハンドル名にもとづくデータIDと、ステップS605で選択したサーバの位置情報と、を対応づけて冗長データ位置テーブル121に登録する。冗長データ位置テーブル121への登録が失敗した場合(ステップS606、否定)、データ配置制御部110は、書込処理が失敗したことを、書込要求を出したクライアント400A(要求元)に送信する(ステップS607)。そして、書込処理を終える。冗長データ位置テーブル121への登録が成功した場合(ステップS606、肯定)は、ステップS603において、データ書込ブロックのデータIDを冗長データ位置テーブル121から取得し、かつ、ステップS608において冗長データ位置テーブル121から位置情報を取得した場合と同じ処理となる(後述)。   Then, the data placement control unit 110 registers the data ID based on the handle name created in step S604 and the server location information selected in step S605 in the redundant data location table 121 in association with each other. When the registration to the redundant data position table 121 has failed (No at Step S606), the data arrangement control unit 110 transmits that the writing process has failed to the client 400A (request source) that has issued the write request. (Step S607). Then, the writing process is finished. If the registration to the redundant data position table 121 is successful (Yes in step S606), the data ID of the data writing block is acquired from the redundant data position table 121 in step S603, and the redundant data position table is stored in step S608. This is the same processing as when position information is acquired from 121 (described later).

ステップS603に戻り、データ配置制御部110は、データ書込ブロックのデータIDを冗長データ位置テーブル121から取得した場合(ステップS603、肯定)、次に、当該データIDに対応する冗長データが格納される位置情報を取得する(ステップS608)。すなわち、冗長データ位置テーブル121を参照して、当該データIDに対応づけて格納されている位置情報を取得する。位置情報を取得できなかった場合(ステップS608、否定)、ステップS607に進み、書込処理失敗をクライアント400Aに通知する。そして、処理を終える。   Returning to step S603, when the data placement control unit 110 acquires the data ID of the data writing block from the redundant data position table 121 (Yes in step S603), next, redundant data corresponding to the data ID is stored. Position information is acquired (step S608). That is, with reference to the redundant data position table 121, the position information stored in association with the data ID is acquired. When the position information cannot be acquired (No at Step S608), the process proceeds to Step S607, and the writing process failure is notified to the client 400A. Then, the process ends.

位置情報を取得できた場合(ステップS608、肯定)、データ配置制御部110は、位置情報によって示されるサーバまたはデータアクセス部に対する書込制御処理を実行する(ステップS609)。図7は、第2の実施形態に係るマスタ100による、書込制御処理の流れの一例を示すフローチャートである。図7を参照し、データ配置制御部110の書込制御処理の流れの一例を説明する。   If the position information can be acquired (Yes at Step S608), the data arrangement control unit 110 executes a write control process for the server or the data access unit indicated by the position information (Step S609). FIG. 7 is a flowchart illustrating an example of a flow of a write control process by the master 100 according to the second embodiment. With reference to FIG. 7, an example of the flow of the write control process of the data arrangement control unit 110 will be described.

データ配置制御部110は、クライアント400Aから受信した書込要求に対応するデータIDと書込場所を示す位置情報とを取得すると(図6、ステップS608、肯定)、取得したデータIDのハンドル名が、処理対象リスト122に登録されているか否かを判定する(ステップS701)。処理対象リスト122に当該データIDのハンドル名が登録されている場合、当該データIDに対応するデータブロックの書込処理が実行中であることを意味する。したがって、処理対象リスト122に当該データIDのハンドル名が登録されている場合(ステップS701、肯定)、データ配置制御部110は書込制御処理をそのまま終了する。   When the data placement control unit 110 acquires the data ID corresponding to the write request received from the client 400A and the position information indicating the write location (FIG. 6, step S608, positive), the handle name of the acquired data ID is Then, it is determined whether or not it is registered in the processing target list 122 (step S701). When the handle name of the data ID is registered in the processing target list 122, it means that the writing process of the data block corresponding to the data ID is being executed. Therefore, when the handle name of the data ID is registered in the processing target list 122 (Yes in step S701), the data arrangement control unit 110 ends the write control process as it is.

処理対象リスト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 arrangement control unit 110 proceeds to the next process, and selects one data access unit (or corresponding server or disk) included in the position information acquired in step S608 (step S702). For example, the data arrangement control unit 110 randomly selects a data access unit. Further, for example, a data access unit having the smallest number of switches via the client 400A may be selected. Then, the data arrangement control unit 110 transmits a write control command to the data access unit corresponding to the selected position information (step S703). The write control instruction includes information for specifying a data block to be written. The write control command is a command to perform write control for the data handle to be written.

そして、データ配置制御部110は、書込制御命令の送信先であるデータアクセス部から、命令受信応答を受信したか否かを判定する(ステップS704)。なお、命令受信応答は、書込制御命令に応じて、書込制御処理および書込処理が完了したことを意味するものではなく、書込制御命令を受信したことを意味するものである。   Then, the data arrangement control unit 110 determines whether or not a command reception response has been received from the data access unit that is the transmission destination of the write control command (step S704). The command reception response does not mean that the write control process and the write process have been completed in response to the write control command, but means that the write control command has been received.

データ配置制御部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 placement control unit 110 determines that the command reception response has not been received (No at Step S704), the data placement control unit 110 returns to Step S702 again to reselect the data access unit (Step S702), and the write control command. Is transmitted (step S703). As a case where the command reception response is not received, for example, a time-out or a case where the connection is cut off can be considered. On the other hand, if the data arrangement control unit 110 determines that the command reception response has been received (Yes in step S704), the data arrangement control unit 110 executes step from the position information stored in the redundant data position table 121 in association with the data ID. The position information corresponding to the data access unit selected in S702 is extracted, and the redundant data position table 121 is updated so that the position information comes to the top of the list (step S705). Then, the data placement control unit 110 adds, to the processing target list 122, the handle name of the write target data that is the target of the write control command and the position information of the data access unit that is the transmission destination of the write control command. Registration is performed (step S706). Then, the data arrangement control unit 110 updates the version number among the data IDs of the write target data registered in the redundant data position table 121 (step S707). The data arrangement control unit 110 notifies the updated version number to the data access unit included in the position information stored in association with the data ID (step S708). Thereby, the write control process by the data arrangement control unit 110 is completed.

再び図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 arrangement control unit 110 in step S609 is completed, the data arrangement control unit 110 transmits the information registered in the redundant data position table 121 to the client 400A that is the transmission source of the write request (step S609). S610). That is, the data placement control unit 110 associates the data ID of the data block that is the target of the write request stored in the redundant data position table 121 with the data ID through the write control process of FIG. Position information is transmitted to the client 400A.

そして、データ配置制御部110は、クライアント400Aからの情報を受信した旨の受信応答の受信有無によって、要求元への送信処理が成功したか否かを判定する(ステップS611)。送信処理が成功したと判定した場合(ステップS611、肯定)、データ配置制御部110は、データ配置制御処理を終了する。また、送信処理が失敗したと判定した場合(ステップS611、否定)、データ配置制御部110は、送信処理を行った回数がN回(Nは1以上の自然数)以下であるか否かを判定する(ステップS612)。N回以下であると判定した場合(ステップS612、肯定)、データ配置制御部110は、ステップS610に戻って再び情報を送信する。また、N回以下ではないと判定した場合(ステップS612、否定)、データ配置制御部110は、それ以上情報を送信することなく、データ配置制御処理を終了する。これによって、書込処理時の、データ配置制御部110によるデータ配置制御処理が終了する。   Then, the data arrangement control unit 110 determines whether or not the transmission process to the request source has been successful based on whether or not a reception response indicating that the information from the client 400A has been received has been received (step S611). When it is determined that the transmission process is successful (Yes in step S611), the data arrangement control unit 110 ends the data arrangement control process. If it is determined that the transmission process has failed (No in step S611), the data arrangement control unit 110 determines whether or not the number of times the transmission process has been performed is N or less (N is a natural number of 1 or more). (Step S612). If it is determined that the number is N or less (step S612, affirmative), the data arrangement control unit 110 returns to step S610 and transmits information again. If it is determined that it is not less than N times (No at Step S612), the data arrangement control unit 110 ends the data arrangement control process without transmitting any more information. Thereby, the data arrangement control process by the data arrangement control unit 110 at the time of the writing process is completed.

[書込部による書込処理の流れの一例]
図6及び図7に示すように、データ配置制御部110がデータ配置制御処理および書込制御処理を実行すると、要求元(クライアント)に対して、処理を実行するために必要なデータが送信される。クライアントは受信したデータを使用して、データアクセス部にアクセスし、データの書込みおよび読み出しを実行させる。次に、クライアント側からの書込処理の流れの一例を説明する。
[Example of flow of writing process by writing unit]
As shown in FIGS. 6 and 7, when the data arrangement control unit 110 executes the data arrangement control process and the write control process, the data necessary for executing the process is transmitted to the request source (client). The The client uses the received data to access the data access unit and execute data writing and reading. Next, an example of the flow of writing processing from the client side will be described.

図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 writing unit 402A included in the client 400A, for example. With reference to FIG. 8, an example of the flow of the writing process by the client 400A will be described.

まず、クライアント400Aがデータの書込処理を実行しようとする場合、アプリケーション実行部401Aは、書込要求を生成する。書込要求は、書き込むデータのファイルIDと、ファイル終端の位置を示すオフセットと、を含む。書込要求に含まれるファイルID、オフセットは、書き込む対象であるデータとともに、アプリケーション実行部401Aから書込部402Aに送られる(ステップS801)。また、書込部402Aが受けた書込要求は、書込部402Aからマスタ100に送信される(図6のS601参照)。   First, when the client 400A intends to execute a data write process, the application execution unit 401A generates a write request. The write request includes a file ID of data to be written and an offset indicating the position of the end of the file. The file ID and offset included in the write request are sent from the application execution unit 401A to the writing unit 402A together with the data to be written (step S801). The write request received by the writing unit 402A is transmitted from the writing unit 402A to the master 100 (see S601 in FIG. 6).

また、書込要求を受信したマスタ100のデータ配置制御部110は、書込要求に応じてデータを書き込む対象となるデータブロックのデータIDおよび当該データブロックの位置情報を、冗長データ位置テーブル121を参照して取得し、書込部402Aに送信する。これによって書込部402Aは、書き込む対象となるデータブロックのデータIDと当該データブロックの位置情報を取得する(ステップS802)。   In addition, the data arrangement control unit 110 of the master 100 that has received the write request stores the data ID of the data block to which data is to be written in response to the write request and the position information of the data block in the redundant data position table 121. The information is acquired by referring to the writing unit 402A. Thereby, the writing unit 402A acquires the data ID of the data block to be written and the position information of the data block (step S802).

次に、書込部402Aは、取得した位置情報から、書込対象データブロックが格納されるディスクを配下にもつサーバまたは書込対象データブロックへの書込アクセスを制御するデータアクセス部の情報を抽出する。そして、抽出したサーバまたはデータアクセス部のうち、書込部402Aから最も近いサーバまたはデータアクセス部を1つ選択する(ステップS803)。ここで、「最も近い」とは、たとえば、書込部402Aから当該サーバまたはデータアクセス部までの間に介装されているスイッチの数が最も少ないこと、さらに、経由するスイッチの数が最も少ないデータアクセス部が複数存在する場合は、「log(「自身のIPアドレス」EXOR「相手のIPアドレス」)」の値が最も小さい値、さらに、この値が同一となるデータアクセス部が複数存在する場合は、同一となるデータアクセス部のうち取得した位置情報の中で先に取得したデータアクセス部を選択する。   Next, the writing unit 402A obtains, from the acquired position information, information on a data access unit that controls write access to a server or a write target data block under the disk in which the write target data block is stored. Extract. Then, one server or data access unit closest to the writing unit 402A is selected from the extracted servers or data access units (step S803). Here, “closest” means, for example, that the number of switches interposed between the writing unit 402A and the server or the data access unit is the smallest, and further, the number of switches passing therethrough is the smallest. When there are a plurality of data access units, the value of “log (“ own IP address ”EXOR“ partner IP address ”)” is the smallest value, and there are a plurality of data access units with the same value. In this case, the previously acquired data access unit is selected from the acquired position information among the same data access units.

書込部402Aは、データアクセス部、たとえば、データアクセス部201Aを選択する。そして、書込部402Aは、選択したデータアクセス部201Aに対して、書込処理のための情報を送信する(ステップS804)。たとえば、書込部402Aは、書込対象ブロックのデータIDと、書込対象ブロックのオフセットと、実際に書き込むデータと(ステップS801で取得)、位置情報(ステップS802で取得)と、メッセージIDと、を送信する。メッセージIDとは、書込部402Aが、データ整合システム1において一意となるように生成して付与する識別子である。   Write unit 402A selects a data access unit, for example, data access unit 201A. Then, writing unit 402A transmits information for writing processing to selected data access unit 201A (step S804). For example, the writing unit 402A has a data ID of the writing target block, an offset of the writing target block, data to be actually written (obtained in step S801), position information (obtained in step S802), message ID, , Send. The message ID is an identifier generated and assigned by the writing unit 402A so as to be unique in the data matching system 1.

そして、データアクセス部201Aに書込処理のための情報を送信した後、書込部402Aは、メッセージIDに対応づけられた書込命令を、位置情報の中でリストの先頭のサーバ(すなわち、書込制御を行うデータアクセス部)に送信する(ステップS805)。書込命令は、メッセージIDに対応付けられたデータの書込を命令する。   Then, after transmitting the information for the writing process to the data access unit 201A, the writing unit 402A sends the write command associated with the message ID to the first server in the list (ie, the position information) The data is transmitted to a data access unit that performs write control (step S805). The write command instructs writing of data associated with the message ID.

そして、書込部402Aは、書込命令の送信先のデータアクセス部から命令受信応答を受信したか否かを判定する(ステップS806)。たとえば、予め所定の時間を設定しておき、当該所定の時間内に命令受信応答を受信した場合は受信したと判定し、当該所定の時間内に命令受信応答を受信していない場合は受信していないと判定すればよい。そして、命令受信応答を受信した場合(ステップS806、肯定)、書込部402Aは、アプリケーション実行部401Aに、データアクセス部201Aからの命令受信応答を受信した旨を通知できるか否かを判定する(ステップS807)。書込部402Aは、通知できると判定した場合(ステップS807、肯定)、アプリケーション実行部401Aに通知する(ステップS808)。そして、書込処理を正常終了する(ステップS809)。   Then, writing unit 402A determines whether or not a command reception response has been received from the data access unit that is the transmission destination of the write command (step S806). For example, a predetermined time is set in advance, and if a command reception response is received within the predetermined time, it is determined that it has been received. If a command reception response is not received within the predetermined time, it is received. What is necessary is just to determine that it is not. If a command reception response is received (Yes at step S806), the writing unit 402A determines whether or not the application execution unit 401A can be notified that the command reception response from the data access unit 201A has been received. (Step S807). If the writing unit 402A determines that notification can be made (Yes in step S807), the writing unit 402A notifies the application execution unit 401A (step S808). Then, the writing process ends normally (step S809).

これに対し、ステップS807において、書込部402Aは命令受信応答を受信した旨を通知できないと判定した場合(ステップS807、否定)、通知を行わずに、書込処理を異常終了する(ステップS810)。   On the other hand, when it is determined in step S807 that the writing unit 402A cannot notify that the instruction reception response has been received (No in step S807), the writing process is abnormally terminated without performing notification (step S810). ).

また、ステップ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 data access unit 201A (No in Step S806), the writing unit 402A notifies the application execution unit 401A that the writing command has failed. It is determined whether or not it can be performed (step S811). If it is determined that notification can be made (Yes at Step S811), the writing unit 402A notifies the application execution unit 401A that the write command has failed (Step S812). Then, the writing process ends abnormally (step S813). On the other hand, if it is determined that notification is not possible (No in step S811), the writing process is abnormally terminated without performing notification (step S810). This completes the writing process in the client 400A.

[データアクセス部における書込実行前処理の流れの一例]
図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 data access unit 201A receives information for executing data writing processing from the writing unit 402A or another data access unit (step S901). The information to be received is, for example, information transmitted by the writing unit 402A in step S804 in FIG. In the present embodiment, information for writing is transmitted from the writing unit 402A to one data access unit, and transmitted from the data access unit to another data access unit.

データアクセス部201Aは、受信した情報のうち、位置情報を抽出し、その中に、自身以外のデータアクセス部が含まれているか否かを判定する(ステップS902)。他のデータアクセス部が位置情報に含まれていない場合(ステップS902、否定)、データアクセス部201Aは、書込要求の送信元であるクライアント400Aに情報受信に成功した旨の通知を送信する(ステップS903)。   The data access unit 201A extracts position information from the received information, and determines whether or not a data access unit other than itself is included therein (step S902). If no other data access unit is included in the position information (No at Step S902), the data access unit 201A transmits a notification to the effect that the information has been successfully received to the client 400A that is the transmission source of the write request ( Step S903).

これに対して、他のデータアクセス部が位置情報に含まれている場合(ステップ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 data access unit 201A selects one other data access unit (step S904). At this time, the data access unit 201A may select the data access unit based on the same criteria as in step S803 in FIG. Then, the data access unit 201A creates position information excluding its own position information.

次に、データアクセス部201Aは、受信した書込処理のためのデータのうち、位置情報をステップS904において作成した位置情報と置き換えて、ステップS904で選択したデータアクセス部に送信する(ステップS905)。そして、データアクセス部201Aは、情報を受信した旨の応答が送信されるのを待つ。情報を受信した旨の応答を受信した場合(ステップS906、肯定)、データアクセス部201Aは、ステップS903に進み、送信元のクライアント400Aに、情報受信が成功した旨の通知を送信する。これに対して、情報を受信した旨の応答を受信しない場合(ステップS906、否定)、データアクセス部201Aは、送信元のクライアント400Aに、情報受信に失敗した旨の通知を送信する(ステップS907)。これによってデータアクセス部201Aでの処理が終了する。   Next, the data access unit 201A replaces the position information in the received data for writing processing with the position information created in step S904, and transmits it to the data access unit selected in step S904 (step S905). . Then, the data access unit 201A waits for a response indicating that the information has been received. If a response indicating that the information has been received is received (Yes at Step S906), the data access unit 201A proceeds to Step S903, and transmits a notification that the information reception has been successful to the transmission source client 400A. On the other hand, when the response indicating that the information has been received is not received (No at Step S906), the data access unit 201A transmits a notification that the information reception has failed to the transmission source client 400A (Step S907). ). As a result, the processing in the data access unit 201A ends.

[データアクセス部における書込実行処理の流れの一例]
次に、図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 data access unit 201A receives a write command from the writing unit 402A (step S1001). Until then, the data access unit 201A has received data for executing the writing process, for example, by the process of step S901 shown in FIG. Then, in response to the write command, the data access unit 201A executes a process of writing the write target data at the designated position (step S1002). At this time, the data access unit 201A specifies the data to be written based on the message ID included in the write command received from the writing unit 402A. Next, the data access unit 201A transmits a write command to other data access units in the position information included in the data received in step S703 (FIG. 7) (step S1003). Then, the data access unit 201A determines whether or not the command has been transmitted (step S1004). If it is determined that the command could not be transmitted (No at Step S1004), the data access unit 201A does not perform any more processing and ends abnormally (Step S1008).

これに対して、命令を送信できたと判定した場合(ステップ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 data access unit 201A determines whether there has been a command success response from the data access unit that is the transmission destination of the write command (step S1004). S1005). If it is determined that there has been a command success response from all the data access units (Yes at step S1005), the data access unit 201A transmits a notification to the effect that the writing has been completed to the transmission source client 400A (step S1006). . Then, the data access unit 201A normally ends the write execution process (step S1007). On the other hand, if it is determined that instruction success responses from all the data access units have not been received (No at step S1005), the data access unit 201A does not perform any further processing and ends abnormally (step S1008). ). This completes the write execution process.

[第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 data matching system 1 according to the second embodiment. With reference to FIG. 11, an example of a normal processing flow in the data matching system 1 according to the second embodiment will be described.

図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, “client 400” indicates one of the clients 400A, 400B, and 400C) transmits a write request to the master 100 ((( 1)). The write request includes a file ID and an offset. The master 100 that has received the write request refers to the redundant data position table 121 based on the file ID and the offset, and extracts the data ID and position information of the requested target data for the writing process. If the corresponding data ID is not registered in the redundant data position table 121, a new handle name is created and registered ((2) in FIG. 11).

マスタ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 master 100 refers to the processing target list 122 ((3) in FIG. 11), and if the handle name of the write target data is not registered, the master 100 selects one data access unit that performs the write processing control. ((4) in FIG. 11). Then, a write control command is transmitted to the selected data access unit ((5) in FIG. 11). When receiving a response from the data access unit ((6) in FIG. 11), the master 100 updates the redundant data position table 121 and the processing target list 122 ((7) in FIG. 11), and the updated version number Is notified to the data access unit ((8) in FIG. 11). Thereafter, the master 100 transmits to the client 400 the data ID of the target data to be written and the corresponding position information ((9) in FIG. 11).

クライアント400は、書込要求に含めたファイルIDおよびオフセット(図11の(1)参照)と、書込むデータと、マスタ100から受信したデータIDおよび位置情報(図11の(9))と、クライアント400において一意となるよう付与したメッセージIDと、を図8のステップS803と同様の基準で選択したデータアクセス部に送信する(図11の(10))。情報を受信したデータアクセス部は、位置情報を参照して、他のデータアクセス部が位置情報に含まれていれば、自身の情報を位置情報から削除した上で、当該他のデータアクセス部に受信した情報を送信する(図11の(11))。情報を受信した他のデータアクセス部も同様の処理を実行する(図11の(12))。   The client 400 includes the file ID and offset included in the write request (see (1) in FIG. 11), the data to be written, the data ID and position information received from the master 100 ((9) in FIG. 11), The message ID assigned to be unique in the client 400 is transmitted to the data access unit selected based on the same criteria as in step S803 in FIG. 8 ((10) in FIG. 11). The data access unit that has received the information refers to the location information, and if the other data access unit is included in the location information, deletes its own information from the location information, and then sends it to the other data access unit. The received information is transmitted ((11) in FIG. 11). Other data access units that have received the information also execute the same processing ((12) in FIG. 11).

その後、クライアント400は、書込制御を行うデータアクセス部(図11の(4)参照)に書込実行命令を送信する(図11の(13))。書込実行命令を受信したデータアクセス部は、データを配下のディスクに書き込んだ上で、書込実行命令を位置情報に含まれていた他のデータアクセス部(複数あれば全てに)送信する(図11の(14))。データが該当する全てのディスクに書き込まれると、書込制御を行うデータアクセス部に他のデータアクセス部から完了応答が送信される(図11の(15))。書込制御を行うデータアクセス部は、全ての完了応答を受信すると、クライアントに完了応答を送信する(図11の(16))。正常時の書込処理はこのようにして完了する。   Thereafter, the client 400 transmits a write execution command to the data access unit (see (4) in FIG. 11) that performs write control ((13) in FIG. 11). The data access unit that has received the write execution command writes the data to the subordinate disk, and then transmits the write execution command to other data access units (if there are a plurality of data access units) included in the position information ( (14) of FIG. When the data is written to all the corresponding disks, a completion response is transmitted from the other data access unit to the data access unit that performs write control ((15) in FIG. 11). When the data access unit that performs the write control receives all the completion responses, it transmits the completion response to the client ((16) in FIG. 11). The writing process at the normal time is completed in this way.

[読出処理時のデータ配置制御処理の流れの一例]
図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 arrangement control unit 110 according to the second embodiment. With reference to FIG. 12, an example of the flow of the data arrangement control process during the reading process in the master 100 according to the second embodiment will be described.

まず、たとえばクライアント400Aがマスタ100に読出要求を送信する。なお、読出要求は後述する比較部412によっても送信される。この場合の処理も以下と同様である。読出要求は、読み出す対象ファイルのファイルIDと、読み出す対象ファイルの終端位置を示すオフセット「Z」と、を含む。マスタ100のデータ配置制御部110は、読出要求を受信する(ステップS1201)と、読出要求に含まれるファイルIDとオフセット「Z」とを抽出する。そして、データ配置制御部110は、抽出した情報に基づき、当該ファイルの何番目のブロックからの読み出しを行うのかを特定する(ステップS1202)。この処理は図6のステップS602と同様である。   First, for example, the client 400A transmits a read request to the master 100. The read request is also transmitted by the comparison unit 412 described later. The processing in this case is similar to the following. The read request includes the file ID of the target file to be read and the offset “Z” indicating the end position of the target file to be read. Upon receiving the read request (step S1201), the data arrangement control unit 110 of the master 100 extracts the file ID and the offset “Z” included in the read request. Then, based on the extracted information, the data arrangement control unit 110 specifies from which block of the file the reading is to be performed (step S1202). This process is the same as step S602 in FIG.

次に、データ配置制御部110は、冗長データ位置テーブル121から、特定したブロックに対応するブロックデータのデータIDを取得することを試みる(ステップS1203)。データIDを取得できなかった場合(ステップS1203、否定)、データ配置制御部110は、読出要求を送信したクライアント400A(要求元)に対して、読出処理に失敗した旨を通知して(ステップS1204)、処理を終える。他方、データIDを取得できた場合(ステップS1203、肯定)、データ配置制御部110は、次に、当該データIDに対応する位置情報を、冗長データ位置テーブル121から取得することを試みる(ステップS1205)。位置情報を取得できなかった場合(ステップS1205、否定)は、データIDを取得できなかった場合(ステップS1203、否定)と同様に、クライアント400Aに読出処理に失敗した旨を通知して(ステップS1204)、処理を終える。   Next, the data arrangement control unit 110 tries to acquire the data ID of the block data corresponding to the identified block from the redundant data position table 121 (step S1203). When the data ID cannot be acquired (No at Step S1203), the data arrangement control unit 110 notifies the client 400A (request source) that has transmitted the read request that the read process has failed (Step S1204). ) Finish the process. On the other hand, if the data ID can be acquired (Yes at step S1203), the data arrangement control unit 110 then tries to acquire the position information corresponding to the data ID from the redundant data position table 121 (step S1205). ). When the position information cannot be acquired (No at Step S1205), the client 400A is notified that the reading process has failed (Step S1204), similarly to the case where the data ID cannot be acquired (No at Step S1203). ) Finish the process.

位置情報を取得できた場合(ステップS1205、肯定)は、データ配置制御部110は、冗長データ位置テーブル121から取得したデータID(ステップS1203)および位置情報(ステップS1205)を、クライアント400A(要求元)に送信する(ステップS1206)。そして、データ配置制御部110は、送信処理が成功したか否かを判定する(ステップS1207)。たとえば、クライアント400Aから受信応答を受け取ることによって、成功したか否かを判定すればよい。   If the position information can be acquired (Yes at Step S1205), the data arrangement control unit 110 uses the data ID (Step S1203) and the position information (Step S1205) acquired from the redundant data position table 121 as the client 400A (request source). ) (Step S1206). Then, the data arrangement control unit 110 determines whether or not the transmission process is successful (step S1207). For example, it may be determined whether or not it has succeeded by receiving a reception response from the client 400A.

送信処理が成功したと判定した場合(ステップ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 arrangement control unit 110 ends the process. On the other hand, if it is determined that the transmission process has failed (No in step S1207), the data arrangement control unit 110 determines whether the number of transmission process failures is N or less (N is a natural number equal to or greater than 1). (Step S1208). If it is determined that the number is N times or less (Yes at Step S1208), the data arrangement control unit 110 returns to Step S1206 and transmits information to the request source again. On the other hand, if it is determined that it is not less than N times (No in step S1208), the data arrangement control unit 110 ends the process as it is. Here, N may be determined in advance as the upper limit value of the number of retries.

[読出部による読出処理の流れの一例]
図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 reading unit 403A obtains a file ID for reading data from the application execution unit 401A (step S1301). Next, the reading unit 403A acquires the offset and data length of data read from the application execution unit 401A (step S1302). Next, the reading unit 403A acquires, from the data arrangement control unit 110, the data ID of the block holding the data to be read and the position information associated with the data ID based on the acquired file ID, offset, and data length. (Step S1303). The process of the data arrangement control unit 110 when acquiring the data ID and the position information associated with the data ID corresponds to the process of FIG.

次に、読出部403Aは、データ配置制御部110から取得した位置情報のうち最も近いデータアクセス部を1つ選択する(ステップS1304)。このとき、読出部403Aは、図8のステップS803と同様の基準でデータアクセス部を選択すればよい。   Next, reading unit 403A selects one of the closest data access units from the position information acquired from data arrangement control unit 110 (step S1304). At this time, the reading unit 403A may select the data access unit based on the same criteria as in step S803 in FIG.

そして、読出部403Aは、選択したデータアクセス部に読出命令を送信してデータを読み出す(ステップS1305)。読出命令は、当該処理でアプリケーション実行部401Aが指定したデータを読み出す命令である。   Then, reading unit 403A transmits a read command to the selected data access unit to read data (step S1305). The read command is a command for reading data designated by the application execution unit 401A in the processing.

読出部403Aは、読み出したデータをアプリケーション実行部401Aに送信する(ステップS1306)。これによって、読出処理が完了する。   The reading unit 403A transmits the read data to the application execution unit 401A (step S1306). This completes the reading process.

[データアクセス部における読出実行処理の流れの一例]
図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 reading unit 403A as shown in FIG. 13 will be described.

まず、データアクセス部、たとえばデータアクセス部201Aは、読出部403Aから読出命令を受信する(ステップS1401)。データアクセス部201Aは、読出命令に応じて、配下のディスクから該当するデータを読み出す(ステップS1402)。そして、データアクセス部201Aは、読み出したデータを読出部403Aに送信する(ステップS1403)。これによってデータアクセス部における読出実行処理が終了する。   First, the data access unit, for example, the data access unit 201A receives a read command from the read unit 403A (step S1401). In response to the read command, the data access unit 201A reads the corresponding data from the subordinate disk (step S1402). The data access unit 201A transmits the read data to the reading unit 403A (step S1403). This completes the read execution process in the data access unit.

[異常終了時の冗長データの状態]
図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 data access unit 201A does not receive an instruction success response from another data access unit in step S1005 of FIG. 10, normal writing of redundant data may not be completed in the other data access unit. Conceivable. If the data access unit that executes the write control for executing the processing of FIG. 10 stops for some reason after transmitting a write command to another data access unit (step S1003, FIG. 10), the data access The part becomes inaccessible from the outside. In addition, since the other data access units cannot send a response indicating whether or not the writing is successful to the data access unit, whether or not the redundant data writing is successful in these data access units, I can't know from outside.

図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 client 400 intends to execute the data matching process, a matching request is generated. The data matching apparatus 410 (comparison unit 412) receives the generated matching request (step S1601). For example, in the data access unit 201A, 201B, or 201C, the data write process does not end normally and any of the clients 400A, 400B, and 400C that is the request source of the write request Generated by the clients 400A, 400B, and 400C, for example, when a write completion notification is not transmitted. In the clients 400A, 400B, and 400C, the application execution units 401A, 401B, and 401C may determine whether to send a consistency request according to the importance of the write target data and the contents of the processing. The matching request includes a file ID to be matched. The matching request is also a request for aligning the data length of the last block of the specified file ID.

整合要求を受けたデータ整合装置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 arrangement control unit 110 in order to acquire a target data block whose data length is uniform. If the position controller 110 designates a negative number for the offset, the data is determined to be in agreement with the designation of the last block of the file. Therefore, in response to the command, the data placement control unit 110 transmits the data ID and position information at the end of the specified file ID to the identification unit 413 and sends a control command to the data access unit. The subsequent processing is the same as that illustrated in FIG.

なお、データ整合処理を行った場合の読出処理も図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 processing target list 122 are updated as in the normal writing process.

[第2の実施形態の効果]
このように第2の実施形態に係るデータ整合システム1は、1以上のクライアントとネットワークを介して接続されるシステムであって、同一のデータの複製である冗長データをそれぞれ格納する複数の記憶装置と、複数の記憶装置に格納される冗長データへのアクセスを制御し、それぞれ複数の記憶装置の1つに接続される複数のサーバと、クライアントからの要求に応じて、複数の記憶装置それぞれに格納される、冗長データのデータ長を比較する比較部412と、比較部412が冗長データのデータ長が同一ではないと判定した場合に、複数の記憶装置に格納された冗長データのうち最も短い冗長データのデータ長に他の冗長データのデータ長を揃える同一化部413と、を備える。このため、書込処理が異常終了した場合であっても、上位アプリケーション側の選択に応じて、冗長データのデータ長を揃えることができる。したがって、異なる記憶装置に格納される冗長データ相互間で不整合が生じることが防止されるとともに、データの信頼性を向上させることができる。また、上位アプリケーションは、異常終了した書込処理の対象データの特徴に応じて、データ整合処理の要否を判定した上で、整合要求を発行することができ、異常終了時に自動的に再書き込みを行う等の対処法に比べて、上位アプリケーションにかかる負荷を減じて、処理性能の低下を抑制することができる。
[Effects of Second Embodiment]
As described above, the data matching system 1 according to the second embodiment is a system connected to one or more clients via a network, and stores a plurality of storage devices each storing redundant data that is a duplicate of the same data. And controlling access to redundant data stored in a plurality of storage devices, each of a plurality of servers connected to one of the plurality of storage devices, and each of the plurality of storage devices in response to a request from a client The comparison unit 412 that compares the data lengths of the redundant data to be stored and the comparison unit 412 determine that the data lengths of the redundant data are not the same, the shortest of the redundant data stored in the plurality of storage devices And an identification unit 413 that aligns the data length of the redundant data with the data length of the redundant data. For this reason, even if the writing process ends abnormally, the data lengths of the redundant data can be made uniform according to the selection on the higher application side. Therefore, it is possible to prevent inconsistency between redundant data stored in different storage devices and improve data reliability. In addition, the upper application can issue an alignment request after determining whether data alignment processing is necessary according to the characteristics of the target data of the abnormally terminated write processing, and automatically rewrites upon abnormal termination Compared with a coping method such as performing the above, it is possible to reduce the load on the host application and suppress the degradation of the processing performance.

また、第2の実施形態に係るデータ整合システム1においては、複数の記憶部はそれぞれ、同一のファイルデータを固定長のブロックに分割し同一のデータブロックを複製して得た前記冗長データを格納し、比較部412は、データブロックの識別子と、当該データブロックの格納先として指定される複数の記憶部の中から選択された2以上の記憶部の位置情報と、を対応付けて記憶する冗長データ位置テーブル121を参照して、同一のデータブロックに対応づけて記憶される2以上の記憶部の冗長データのうち末尾のデータブロックのデータ長を比較する。このため、ファイル末尾のブロックの冗長データ間でデータ長が一致している場合は、データ長を揃える処理を実行しない。したがって、チェックサム等を用いて冗長データ間の不一致を検出する場合と比較して、短い処理時間で上位アプリケーションに応答を返すことができる。また、上位アプリケーションは、データ整合処理を実行するか否かを選択するのみで冗長データの整合性を維持することができ、処理負荷が低減される。また、書込処理が異常終了した場合には自動的にデータ整合処理を実行するものとしておけば、アプリケーション実行部自体が停止した場合でも、冗長データ間の整合性を維持することができる。   In the data matching system 1 according to the second embodiment, each of the plurality of storage units stores the redundant data obtained by dividing the same file data into fixed-length blocks and duplicating the same data block. The comparison unit 412 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. With reference to the data position table 121, the data length of the last data block is compared among redundant data of two or more storage units stored in association with the same data block. For this reason, when the data lengths match between the redundant data of the block at the end of the file, the process of aligning the data lengths is not executed. Therefore, a response can be returned to the upper application in a shorter processing time compared to the case where a mismatch between redundant data is detected using a checksum or the like. Further, the host application can maintain the consistency of redundant data only by selecting whether or not to execute the data matching process, and the processing load is reduced. If the data matching process is automatically executed when the writing process is abnormally terminated, the consistency between redundant data can be maintained even when the application execution unit itself stops.

[第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 client 400A has been described as including the application execution unit 401A, the writing unit 402A, the reading unit 403A, and the data matching device 410A. However, some of these functions are incorporated into the master 100. May be. For example, the data placement control unit 110 of the master 100 may be configured to transmit a write command, a read command, or a data matching command to the data access units 201A, 201B, and 201C. Also, some of the functions of the writing units 402A, 402B, 402C, the reading units 403A, 403B, 403C, or the data matching devices 410A, 410B, 410C are performed by the data access units 201A, 201B, 201C of the servers 200A, 200B, 200C. May be executed.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、図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 writing unit 402A, the reading unit 403A, and the data matching device 410A are illustrated as a part of the client 400A, but the writing unit 402A, the reading unit 403A, and the data A part of the function of the matching device 410A may be incorporated in the master 100. For example, the operations or functions described as the operations or functions of the client 400 </ b> A can be incorporated in the master 100.

[プログラム]
図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 data matching system 1 is specifically realized by using a computer. As illustrated in FIG. 18, the computer 3000 includes, for example, a memory 3010, a CPU (Central Processing Unit) 3020, a hard disk drive 3080, and a network interface 3070. Each part of the computer 3000 is connected by a bus 3100.

メモリ3010は、図18に例示するように、ROM3011及びRAM3012を含む。ROM3011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。   The memory 3010 includes a ROM 3011 and a RAM 3012 as illustrated in FIG. The ROM 3011 stores a boot program such as BIOS (Basic Input Output System).

ここで、図18に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係るデータ整合プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。例えば、データ配置制御部110、データ整合装置410、および、データアクセス部における処理と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。   Here, as illustrated in FIG. 18, the hard disk drive 3080 stores, for example, an OS 3081, an application program 3082, a program module 3083, and program data 3084. In other words, the data matching program according to the disclosed technique is stored in, for example, the hard disk drive 3080 as the program module 3083 in which instructions executed by the computer are described. For example, the data placement control unit 110, the data matching device 410, and a program module 3083 in which procedures for executing information processing similar to the processing in the data access unit are described are stored in the hard disk drive 3080.

また、記憶部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 storage unit 120, is stored as program data 3084 in, for example, the hard disk drive 3080. The CPU 3020 reads the program module 3083 and program data 3084 stored in the hard disk drive 3080 to the RAM 3012 as necessary, and executes various procedures.

なお、データ整合プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU3020は、ネットワークインタフェース3070を介して他のコンピュータにアクセスすることで各種データを読み出す。   Note that the program module 3083 and the program data 3084 related to the data matching program are not limited to being stored in the hard disk drive 3080. For example, the program module 3083 and the program data 3084 may be stored in a removable storage medium. In this case, the CPU 3020 reads data via a removable storage medium such as a disk drive. Similarly, the program module 3083 and the program data 3084 related to the update program may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). . In this case, the CPU 3020 reads various data by accessing another computer via the network interface 3070.

[その他]
なお、本実施例で説明したデータ整合プログラムは、インターネット等のネットワークを介して配布することができる。また、データ整合プログラムは、ハードディスク、フレキシブルディスク(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 SYMBOLS 1 Data alignment system 10,410A, 410B, 410C Data alignment apparatus 11 Comparison part 12 Identity part 100 Master 110 Data arrangement control part 120 Storage part 121 Redundant data position table 122 Processing object list 130 Input / output part 200A, 200B, 200C Server 201A, 201B, 201C Data access unit 300A, 300B, 300C Disk 400A, 400B, 400C Client 401A, 401B, 401C Application execution unit 402A, 402B, 402C Writing unit 403A, 403B, 403C Reading unit 412A, 412B, 412C Comparison unit 413A, 413B, 413C Identification unit 3000 Computer 3010 Memory 3011 ROM
3012 RAM
3020 CPU
3070 Network interface 3080 Hard disk drive 3081 OS
3082 Application program 3083 Program module 3084 Program data 3100 Bus

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
JP2012234965A 2012-10-24 2012-10-24 Data alignment apparatus, data alignment method, and data alignment program Active JP5475085B1 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016170619A1 (en) * 2015-04-22 2016-10-27 株式会社日立製作所 Computer system

Citations (4)

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

Patent Citations (4)

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

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