説明

データ複製システム、データ複製サーバ、データ複製方法、及び、データ複製プログラム

【課題】 再送専用サーバを必要とせず、信頼性を確保しながら、マスタサーバの負荷を軽減した、データ複製システムを提供する。
【解決手段】 本発明のデータ複製システムは、データを送信し、全データがいずれかのスレーブサーバで受信されるまで未受信データを再送するマスタサーバと、データを受信し、未受信のデータを示す応答を送信し、他のスレーブサーバの応答を受信し、自装置で受信済みのデータで応答に含まれる未受信のデータを送信するスレーブサーバとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの複製(レプリケーション:replication)に関し、特に、複数の相手に複製データを送信するデータ複製システムに関する。
【背景技術】
【0002】
コンピュータシステムは、ネットワークを介して多くの情報処理装置(コンピュータ、サーバ)が接続し、情報(データ)をやり取りする。
【0003】
ネットワーク介した装置間のデータ通信は、装置内部のデータのやり取りに比べ、多くの時間を必要とし、情報処理装置における処理のボトルネック(bottleneck)となっている。特に、ネットワークが大きく又は深くなっていくと、ネットワークを介した情報のやり取りのための通信時間が、増大する。特にメモリを主体としたメモリベースのデータベースシステムとって、このようなネットワークの通信時間は、かなり大きなものとなる。
【0004】
また、データの信頼性を確保するためにも、データに冗長性を持たせることが必要となっている。
【0005】
そこで、ネットワークに分散して接続する各装置に複製(レプリケーション:replication)データを配布し、各装置は受け取った複製データを用いて処理するデータ複製システムが、用いられる。このようなデータ複製システムに基づき、各装置は、データを予め受信しておき、データ処理の際にネットワークを介して取得しなくても処理できる。
【0006】
しかし、ネットワークが大きくなると、ネットワークに接続している装置の数も、増加する。その結果、データ複製システムは、複製データの送信先の増加に伴うデータ通信時間の増加が問題となる。
【0007】
一般的なネットワークを介したデータ送信は、TCP(Transmission Control Protocol)のようにデータ送信の結果を確認する送信と、UDP(User Datagram Protocol)のようにデータ送信の結果を確認しない送信とがある。
【0008】
データ送信の結果を確認する送信は、確実なデータの送信を確保できるが、確認のための時間を必要とするため、送信時間が長くなる。一方、データ送信の結果を確認しない送信は、データ到達確認を必要としないため、送信時間が短くなり、さらに、同時に複数の相手に送信することができる。そのため、データ複製システムは、複製データの送信時間を短くするため、UDPのような確認しないデータ送信を用いる。
【0009】
さらに、データ複製システムは、複製データをいくつかの部分に分け、複数のネットワークのコネクションを使用してデータ送信の時間を削減する(例えば、特許文献1を参照)。
【0010】
図15は、データ複製システムのデータ送信の一例を示す。図15に示すマスタサーバ60は、送信データ610をいくつかの小部分(ピース:piece、小片)に分割し、ネットワーク50に設けた複数のコネクション510に分けてスレーブサーバ65に送信する。スレーブサーバ65は、受け取ったピースを組み立てて受信データ651を構築する。このように、複数のコネクション510を使用して送信する図15に示すデータ複製システムは、コネクション510の数を多くするほど通信の時間を短くできる。
【0011】
図16は、複数の装置に複製データを送信するデータ複製システムの一例である。マスタサーバ60は、図15と同様に、ネットワーク50に各スレーブサーバ65用のコネクション510を設定して、送信データ610をピースに分割して送信する。各スレーブサーバ65は、個別にピースを受け取り、受信データ651を構築する。しかし、図16に示すマスタサーバ60において、スレーブサーバ65の数だけ送信動作が、必要となる問題点があった。
【0012】
そこで、マスタサーバの処理を少なくするため、マルチキャスト(multicast)を用いたデータ複製システムがある。図17は、マルチキャストを用いたデータ複製システムの一例を示す。図17に示すマスタサーバ60は、ネットワーク50にデータをマルチキャストする。マルチキャストとは、ネットワーク50に接続した決められた複数の装置(図17では、複数のスレーブサーバ65)に、同時にデータを送信する手法である。つまり、図17に示すマスタサーバ60は、1つのデータ送信動作で、複数の装置にデータを送信できる。このように図17に示すデータ複製システムは、データのピース化及びマルチキャストを用い、データの送信時間を削減できる。
【0013】
また、複製データは、ネットワークに接続した装置の間で同期していることが必要である。そこで、データ複製システムは、データを同期する仕組みを備えている(例えば、特許文献2、特許文献3を参照)。
【0014】
また、データ信頼性を確保するためにも、複製データの受信確認が、必要である。しかし、図15乃至図17に示すデータ複製システムは、複製として送信した複製データの受信を確認していない。
【0015】
そこで、送信したデータの受信を確認する仕組みを備えたデータ複製システムがある(例えば、特許文献4又は特許文献5を参照)。
【0016】
あるいは、データ複製システムは、RMTP(Reliable Multicast Transport Protocol )のような信頼性を高めたマルチキャストを用いて複製データを送信する。
【0017】
しかし、特許文献4又は特許文献5に記載に方法、及び、RMTPを用いたデータ複製システムにおいて、マスタサーバは、全てのスレーブサーバの受信が完了するまで、確認及び再送が必要なため、マスタサーバの負荷が大きくなるという問題点があった。
【0018】
そこで、マスタサーバ及びスレーブサーバとは別に、複製データを再送する再送専用サーバを備えるデータ複製システムが、ある(例えば、特許文献5を参照)。
【0019】
図18は、再送専用サーバ68を備えたデータ複製システムの一例を示す図である。
【0020】
図18に示すマスタサーバ60は、マルチキャストの送信先として、スレーブサーバ65に加え再送専用サーバ68も含む。再送専用サーバ68は、受信データ651を受け取る。そして、受信データ651を受け取った再送専用サーバ68は、スレーブサーバ65の受信状態を確認し、データを受け取れなかったスレーブサーバ65に複製データを再送する。このように特許文献5に記載の再送専用サーバ68を備えるデータ複製システムは、マスタサーバの負荷を削減できる。
【先行技術文献】
【特許文献】
【0021】
【特許文献1】特開2004−194234(特許3930802)
【特許文献2】再表2008/105098
【特許文献3】特開2002−297432(特許4131781)
【特許文献4】特開2009−212796
【特許文献5】特開2007−323433
【発明の概要】
【発明が解決しようとする課題】
【0022】
しかし、図18に示した又は特許文献5に記載のデータ複製システムにおいて、データ複製システムは、新たに再送専用サーバを備えること必要となる問題点があった。さらに、図18又は特許文献5に記載のデータ複製システムは、マスタサーバから再送専用サーバに複製データが送信できなかった場合、再送ができず、複製データの信頼性が損なわれる問題点があった。
【0023】
本発明の目的は、上記問題点を解決し、再送専用サーバを必要とせず、信頼性を確保しながら、マスタサーバの負荷を軽減した、データ複製システムを提供することにある。
【課題を解決するための手段】
【0024】
本発明のデータ複製システムは、データを送信する第1のデータ送信部と、前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する第1の応答処理部とを含み、前記第1の応答処理部の判定の結果として未受信の部分がある場合、前記第1のデータ送信部が前記未受信の部分のデータを再送し、前記第1の応答処理部の判定の結果として未受信の部分がない場合、データの送信を終了する第1のサーバと、前記データの少なくとも一部又は全てを受信する第1のデータ受信部と、前記データの受信状態に関する情報を含む第1の応答を送信する第1の応答返却部とを含む第2のサーバと、前記データの少なくとも一部又は全てを受信する第2のデータ受信部と、前記データの受信状態に関する情報を含む第2の応答を送信する第2の応答返却部と、前記第2のサーバの前記第1の応答を受信し、自装置で受信済みのデータに、前記第1の応答に含まれる未受信のデータがあるか否かを判定する第2の応答処理部と、前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する第2のデータ送信部とを含む第3のサーバと、前記第1のサーバと前記第2のサーバと前記第3のサーバとを接続するネットワークとを含む。
【0025】
本発明のデータ複製サーバは、データを受信するデータ受信部と、前記データの未受信の部分に関する情報を含む第1の応答を送信する応答返却部と、前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記受信した第2の応答に含まれる未受信のデータの少なくとも一部が含まれる否かを判定する応答処理部と、前記第2の応答に含まれる未受信のデータに含まれる前記受信済みでデータを送信するデータ送信部とを含む。
【0026】
本発明のデータ複製方法は、データを送信し、前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定し、前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送し、前記判定の結果として未受信の部分がない場合、データの送信を終了するデータ送信と、前記送信したデータの少なくとも一部又は全てを受信し、前記データの受信状態に関する情報を含む第1の応答を送信するデータ受信と、前記送信したデータの少なくとも一部又は全てを受信し、前記データの受信状態に関する情報を含む第2の応答を送信し、前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定し、前記受信済みのデータで前記第1の応答で未受信となっているデータを送信するデータ再送とを含む。
【0027】
また、本発明のデータ複製方法は、データを受信し、前記データの未受信の部分に関する情報を含む第1の応答を送信し、前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定し、前記応答の未受信のデータに含まれる前記受信済みのデータを送信する。
【0028】
本発明のデータ複製プログラムは、データを送信する処理と、前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する処理と、前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送する処理と、前記判定の結果として未受信の部分がない場合、データの送信を終了する処理とを含むデータ送信処理と、前記送信したデータの少なくとも一部又は全てを受信する処理と、前記データの受信状態に関する情報を含む第1の応答を送信する処理とを含むデータ受信処理と、前記送信したデータの少なくとも一部又は全てを受信する処理と、前記データの受信状態に関する情報を含む第2の応答を送信する処理と、前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定する処理と、前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する処理とを含むデータ再送処理とをコンピュータに実行させる。
【0029】
また、本発明のデータ複製プログラムは、データを受信する処理と、前記データの未受信の部分に関する情報を含む第1の応答を送信する処理と、前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定する処理と、前記応答の未受信のデータに含まれる前記受信済みのデータを送信する処理とをコンピュータに実行させる。
【発明の効果】
【0030】
本発明によれば、マスタサーバの負荷を低減し、信頼性を確保してスレーブサーバに複製データの送ることができる。
【図面の簡単な説明】
【0031】
【図1】本発明における第1の実施の形態に係るデータ複製システムの一例を示す図である。
【図2】第1の実施の形態に係るマスタサーバの構成の一例を示すブロック図である。
【図3】第1の実施の形態に係るスレーブサーバの構成の一例を示すブロック図である。
【図4】第1の実施の形態に係るマスタサーバの動作の一例を示すフローチャート図である。
【図5】第1の実施の形態に係るデータピースのマルチキャストの一例を示す図である。
【図6】第1の実施の形態に係る応答の一例を示す図である。
【図7】第1の実施の形態に係るデータピースの再送のマルチキャストの一例を示す図である。
【図8】第1の実施の形態に係るスレーブサーバの受信動作の一例を示すフローチャート図である。
【図9】第1の実施の形態に係るスレーブサーバの応答を受けたときの動作の一例を示すフローチャート図である。
【図10】第1の実施の形態に係るスレーブサーバにおけるデータ同期の一例を示す図である。
【図11】第1の実施の形態に係るデータ複製システムの別の一例を示す図である。
【図12】第2の実施の形態に係るスレーブサーバの構成の一例を示すブロック図である。
【図13】第2の実施の形態に係るスレーブサーバの応答を受けたときの動作の一例を示すフローチャート図である。
【図14】第2の実施の形態に係るスレーブサーバの受信動作の一例を示すフローチャート図である。
【図15】一般的なデータ複製システムのデータの送信を示す図である。
【図16】一般的なデータ複製システムのデータの送信を示す図である。
【図17】一般的なデータ複製システムのマルチキャストを用いたデータ送信を示す図である。
【図18】一般的な再送専用サーバを用いたデータ複製システムを示す図である。
【発明を実施するための最良の形態】
【0032】
次に、本発明における第1の実施の形態について図面を参照して詳細に説明する。
【0033】
(第1の実施の形態)
図1は、本実施の形態に係るデータ複製システム1の構成の一例を示すブロック図である。
【0034】
データ複製システム1は、マスタサーバ10と、スレーブサーバ20乃至スレーブサーバ22と、ネットワーク30とを含む。なお、図1に示すデータ複製システム1の構成は、説明のための例示である。データ複製システム1は、複数台のマスタサーバ10を含んでも良く、2台以下又は4台以上のスレーブサーバ20を含んでよい。さらに、データ複製システム1は、1つのネットワーク30を含んでよく、3つ以上のネットワーク30を含んでも良い。
【0035】
なお、データ複製システム1が複製(レプリケーション:replication)する複製データは、マスタサーバ10にとっては送信するデータであり、スレーブサーバ20乃至スレーブサーバ22にとっては受信するデータであり、各サーバにとって処理が異なるデータである。そのため、以下において、適宜、各サーバが送信する複製データを送信データ、受信する複製データを受信データと言うこともある。例えば、複製としてマスタサーバ10は、送信データ111を送信し、スレーブサーバ20は、そのデータを受信データ211として受信する。
【0036】
マスタサーバ10は、複製するデータである送信データ111を小部分(ピース:piece、小片)に分け、スレーブサーバ20乃至スレーブサーバ22にマルチキャスト(multicast)する。
【0037】
なお、本実施の形態に係るマスタサーバ10は、必ずしも送信データ111をピースに分けて送信する必要はないが、本実施の形態に係るマスタサーバ10は、送信データ111をピースに分けて送信するとして説明する。図1に示す送信データ111の各矩形枠が、各ピースに対応している。さらに、マスタサーバ10は、送信データ111のピースのスレーブサーバ20乃至スレーブサーバ22における受信状態を保存する応答表115も含む。送信データ111のピースに対応するため、応答表115は、送信データ111と同じ数だけ受信状態を保存する欄を備える。なお、送信データ111をピースに分けない場合、マスタサーバ10は、受信状態を格納する欄を1つ備えればよい。
【0038】
また、マスタサーバ10は、スレーブサーバ20乃至スレーブサーバ22それぞれに送信データ111を送信しても良いが、本実施の形態では、マルチキャストを使用するとして説明する。
【0039】
スレーブサーバ20乃至スレーブサーバ22は、マスタサーバ10からピースに分割されたデータを受け取り、合成して受信データ211として格納し、受信状態を応答として送信する。さらに、スレーブサーバ20乃至スレーブサーバ22は、後ほど説明するように受信データ211を再送データ(複製データ、同期データ)として再送する。
【0040】
なお、スレーブサーバ20乃至スレーブサーバ22は、以降で説明するように動作すれば、必ずしも同じ構成である必要はない。ただし、本実施の形態のスレーブサーバ20乃至スレーブサーバ22は、同じ構成として説明する。そのため、スレーブサーバ20乃至スレーブサーバ22に共通する説明は、スレーブサーバ20を用いて説明する。
【0041】
なお、スレーブサーバ20乃至スレーブサーバ22に異なる番号を付した理由は、後ほどの詳細の便宜のためである。スレーブサーバ20乃至スレーブサーバ22は、受信できたピースが異なる。後ほどの説明において、スレーブサーバ20及びスレーブサーバ22は、受信できないピースがあり、スレーブサーバ21は、全てのピースを受信できたとする。そのため、スレーブサーバ21が、データを再送する。
【0042】
ネットワーク30は、マスタサーバ10とスレーブサーバ20乃至スレーブサーバ22とを接続する通信路である。ネットワーク30は、マスタサーバ10とスレーブサーバ20乃至スレーブサーバ22とが接続できればよい。そのため、ネットワーク30は、例えば、一般的なLAN(Local Area Network)で使用されているIEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.3でもよく、無線LAN(IEEE802.11)でもよい。さらに、ネットワーク30は、一般的なネットワークに限られず、コンピュータ内のバスでもよい。このように、ネットワーク30は、一般的な通信路で良いため詳細な説明は省略する。
【0043】
なお、本実施に形態に係るデータ複製システム1が含むネットワーク30の数は、既に説明したとおり、図1に示す2つに限られず、1つでもよく、3つ以上でも良い。ここでのネットワーク30の数は、論理ネットワークの数である。そのため、データ複製システム1の各サーバは、ネットワーク30に関するデータを、ネットワーク30の数に対応して備えている。
【0044】
以下では、説明の便宜のため、ネットワーク30の数を2つとして説明する。
【0045】
また、データ複製システム1が含む物理ネットワークの数も、特に制限は無い。データ複製システム1は、1つの物理ネットワークに1つ又は複数の論理ネットワークを構築しても良く、各物理ネットワークに個別に論理ネットワークを構築しても良い。さらに、データ複製システム1は、複数の物理ネットワークを結合(aggregate)して論理ネットワークを構築してもよい。
【0046】
次に、本実施の形態に係るマスタサーバ10の構成について図面を参照して説明する。
【0047】
図2は、マスタサーバ10の構成の一例を示すブロック図である。
【0048】
マスタサーバ10は、データ格納部110と、データ送信部120と、応答処理部130とを含む。
【0049】
データ格納部110は、送信する送信データ111と、応答表115とを含んでいる。
【0050】
データ送信部120は、データ分割部121と、ピース送信部122と、マルチキャストアドレス格納部123とを含む。
【0051】
データ分割部121は、データ格納部110から送信データ111をピースに分割して取り出し、ピース送信部122に送る。なお、データ分割部121における送信データ111のピースへの分割は、特に制限はなく、どのように分割しても良い。例えば、データ分割部121は、送信データ111を、ネットワーク30のパケット(packet)のサイズに合わせるようにピースに分割しても良く、データ格納部110の格納単位に合わせてピースに分割しても良い。
【0052】
ピース送信部122は、データ分割部121からピースを受け取り、マルチキャストアドレス格納部123に格納されているアドレスを基に、ネットワーク30を介して、ピースをマルチキャストする。全てのピースを送信後、ピース送信部122は、送信終了を示すデータ、例えば、FINパケット(Finish packet)をマルチキャストして、送信の終了を通知する。また、ピース送信部122は、送信に使用するネットワーク30の数に基づき、ピースをネットワーク30に分配する。例えば、ネットワーク30が2つの場合、ピース送信部122は、奇数番のピースを1つのネットワーク30でマルチキャストし、偶数番のピースをもう1つのネットワーク30にマルチキャストする。このように、ピース送信部122は、ピースをネットワーク30に分散してマルチキャストする。
【0053】
マルチキャストアドレス格納部123は、ピース送信部122がマルチキャスト(Multicast)する場合のネットワーク30ごとの送信先アドレスを格納している。なお、マルチキャストアドレス格納部123が格納するアドレスは、一般的なマルチキャストのためのアドレスであり、予めマスタサーバ10の管理者又は図示しないネットワークの管理サーバが設定するものとし、詳細な説明は省略する。
【0054】
応答処理部130は、応答受信部131と、応答解析部132とを含む。
【0055】
応答受信部131は、ネットワーク30を介して、送信した送信データ111に対する「応答」を受信し、応答解析部132に送る。
【0056】
応答解析部132は、受け取った「応答」を判定(解析)し、受信済みのピースに対応する応答表115のデータを操作する。この操作については、後ほど説明する。また、応答解析部132は、応答に対する未受信のピースの送信を、データ分割部121に依頼する。
【0057】
続いて、本実施の形態に係るスレーブサーバ20の構成について図面を参照して説明する。なお、スレーブサーバ21及びスレーブサーバ22も同じ構成である。
【0058】
図3は、本実施の形態に係るスレーブサーバ20の構成の一例を示すブロック図である。
【0059】
スレーブサーバ20は、データ格納部210と、データ受信部220と、応答返却部230と、応答処理部240と、データ送信部250とを含む。
【0060】
データ格納部210は、複製データである受信データ211を格納する。
【0061】
データ受信部220は、ピース受信部221と、データ再構築部222とを含む。
【0062】
ピース受信部221は、ネットワーク30を介し、受信データ211のピースを受信する。本実施の形態に係るピース受信部221は、後ほど詳細に説明するように、このピースを、マスタサーバ10又はスレーブサーバ21から受け取る。ピース受信部221は、受け取ったピースをデータ再構築部222に送る。
【0063】
データ再構築部222は、受け取ったピースを受信データ211に再構築して、データ格納部210に格納する。
【0064】
応答返却部230は、応答作成部231と、応答送信部232と、マルチキャストアドレス格納部233とを含む。
【0065】
応答作成部231は、マスタサーバ10から送信終了の受信後、受信データ211のピースの受信状態を表す「応答」を作成し、応答送信部232に送る。この「応答」は、受信できなかったピースの情報(例えば、ピースの番号)を含む。
【0066】
応答送信部232は、マルチキャストアドレス格納部233が格納するアドレスを基に、応答作成部231から受け取った「応答」を、ネットワーク30を介してマルチキャストする。
【0067】
マルチキャストアドレス格納部233は、応答送信部232が使用するマルチキャスト用のアドレスを格納している。なお、ネットワーク30が複数の場合、マルチキャストアドレス格納部233は、各ネットワーク30に対応した複数のマルチキャスト用のアドレスを格納する。なお、マルチキャストアドレス格納部233が格納するアドレスも、一般的なマルチキャストのためのアドレスであり、予めスレーブサーバ20の管理者又は図示しないネットワークの管理サーバが設定するものとし、詳細な説明は省略する。
【0068】
応答処理部240は、応答受信部241と、応答解析部242とを含む。
【0069】
応答受信部241は、ネットワーク30を介して、「応答」を受信し、応答解析部242に送る。
【0070】
応答解析部242は、受け取った応答を判定(解析)し、応答に含まれる受信できなかったピースの番号を確認し、自装置が受信済みのピースの番号と比較する。もし、自装置が受信済みのピースに、応答に含まれる未受信のピースがあった場合、応答解析部242は、データ分割部251にそのピースの番号を通知する。
【0071】
データ送信部250は、データ分割部251と、ピース送信部252と、マルチキャストアドレス格納部253とを含む。
【0072】
データ分割部251は、応答解析部242からの通知に基づき、データ格納部210から対応するピースを取り出し、ピース送信部252に送る。
【0073】
ピース送信部252は、マルチキャストアドレス格納部253が格納するアドレスを基に、受け取ったピースを再送としてマルチキャストする。なお、ピース送信部252は、マスタサーバ10のピース送信部122と同様に、ピースをネットワーク30に振り分ける。
【0074】
マルチキャストアドレス格納部253は、ピース送信部252が使用するマルチキャスト用のアドレスを格納する。なお、ネットワーク30が複数の場合、マルチキャストアドレス格納部253は、ネットワーク30に対応した複数のマルチキャスト用のアドレスを格納する。ただし、マルチキャストアドレス格納部253の格納しているアドレスは、再送に使用するアドレスのため、マスタサーバ10のアドレスは含まなくてもよい。また、マルチキャストアドレス格納部253が格納するアドレスも、一般的なマルチキャストのためのアドレスであり、予めスレーブサーバ20の管理者又は図示しないネットワークの管理サーバが設定するものとし、詳細な説明は省略する。
【0075】
次に、本実施の形態に係るデータ複製システム1の各サーバの動作について、図面を参照して説明する。
【0076】
まず、マスタサーバ10の動作について図面を参照して説明する。
【0077】
図4は、本実施の形態に係るマスタサーバ10の動作の一例を示すフローチャート図である。
【0078】
データの更新など、送信データ111を送信する必要が発生すると、マスタサーバ10のデータ分割部121は、送信する送信データ111をピースに分割する(ステップ1001)。
【0079】
データ分割部121は、分割したピースに対応する応答表115をすべて初期(未受信)状態にする(ステップ1002)。データ分割部121は、分割したピースをピース送信部122に送る。
【0080】
ピースを受けたピース送信部122は、マルチキャストアドレス格納部123が格納しているアドレスに基づき、ネットワーク30を介して、ピースをマルチキャストする(ステップ1003)。
【0081】
図5は、データ複製システム1の送信データ111のピースのマルチキャストの一例を示す図である。図5は、送信データ111を6個のピースに分割し、2つのネットワーク30に分けて送信した場合を示している。奇数番ピース群41は、第1ピースと第3ピースと第5ピースとを含むピース群である。偶数番ピース群42は、第2ピースと第4ピースと第6ピースを含むピース群である。
【0082】
なお、図示していないが、各ピース群は、ネットワーク30を介して送信するための情報、例えば送信先を示すヘッダ部を含んでいる。また、各ピース群は、最後に送信終了を示すFINパケット45が続いている。
【0083】
マスタサーバ10のピース送信部122は、ネットワーク30を介して、奇数番ピース群41と偶数番ピース群42とFINパケット45とを、マルチキャストする。
【0084】
また、応答表115は、第1ピースから第6ピースまでを初期化(未受信と)する。図5では、未受信を黒塗りで示している。
【0085】
図4のマスタサーバ10の動作の説明に戻る。
【0086】
データをマルチキャスト後、マスタサーバ10の応答受信部131は、応答を待つ(ステップ1004)。
【0087】
応答を受けた応答受信部131は、応答を応答解析部132に送る。応答解析部132は、受け取った応答を解析し、応答に含まれないピース番号、つまりスレーブサーバ20乃至スレーブサーバ22が受信したピースに対応する応答表115を受信済みにする(ステップ1005)。
【0088】
図6は、マスタサーバ10がスレーブサーバ20から応答を受け取る一例を示している。図6は、スレーブサーバ20が、第2ピースと第5ピースとが未受信である応答をマルチキャストしている。なお、応答も、図示しない送信のためのヘッダ部を含んでいる。また、スレーブサーバ20が応答をマルチキャストしているため、スレーブサーバ21及びスレーブサーバ22も、応答を受信する。
【0089】
この応答を受けたマスタサーバ10の応答解析部132は、応答表115の第2ピースと第5ピースの除き、他のピースを受信済みとする。なお、図5は、応答表115の第2ピースと第5ピースを未受信として黒塗りを残し、他のピースを受信済みとして白塗りに変更した例を示している。
【0090】
図4のマスタサーバ10の動作の説明に戻る。
【0091】
続いて、応答解析部132は、応答に含まれるピース、つまり応答に含まれる未受信のピースで、応答表115で未受信となっているピースが有るか否かを確認する(ステップ1006)。
【0092】
未受信のピースが有る場合(ステップ1005でyes)、応答解析部132は、データ分割部121に、未受信のピースの再送を依頼する。依頼を受けたデータ分割部121は、依頼されたピースをデータ格納部110から取り出し、ピース送信部122に送る。ピース送信部122は、マルチキャストアドレス格納部123が格納しているアドレスに基づき、受け取った未受信のピースをマルチキャストする(ステップ1008)。
【0093】
図7は、マスタサーバ10が、未受信のピース(第2ピース44と第5ピース43)を再送としてマルチキャストする一例を示す図である。第5ピース43及び第2ピース44は、FINパケット45を伴ってマルチキャストされている。
【0094】
図4のマスタサーバ10の動作の説明に戻る。
【0095】
未受信ピースを送信後、マスタサーバ10は、ステップ1004に戻り、応答を待つ。
【0096】
ステップ1006で未受信のピースがない場合(ステップ1006でno)、応答解析部132は、全てのピースがスレーブサーバ20乃至スレーブサーバ22に受け取られたか否かを確認する(ステップ1007)。この確認として、応答解析部132は、応答表115に未受信のピースが有るか否かを確認する。つまり、応答表115の全てのピースが受信済みとなっている場合、応答解析部132は、全てのピースが受信済みと判定する。
【0097】
受信済みとなっていないピースがある場合(ステップ1007でno)、マスタサーバ10は、ステップ1004に戻り、応答を待つ。
【0098】
全てのピースが受け取られた場合(ステップ1007でyes)、マスタサーバ10は、複製データの送信を終了する。
【0099】
このように、全てのピースがスレーブサーバ20乃至スレーブサーバ22で受信済みとなるまで、マスタサーバ10は、再送としてピースをマルチキャストする。そのため、図4に示す動作が終了した場合、全てのピースが、スレーブサーバ20乃至スレーブサーバ22のいずれかで受信されている。
【0100】
なお、ここでのいずれかで受信とは、スレーブサーバ20乃至スレーブサーバ22のいずれかの1台が、全てのピースを受信することに限られない。スレーブサーバ20乃至スレーブサーバ22のいずれもが全ピースを受信していなくても、スレーブサーバ20乃至スレーブサーバ22のいずれかがピースを受信していればよい。例えば、スレーブサーバ20が第1ピースを受信し、スレーブサーバ21が第4ピース乃至第6ピースを受信し、スレーブサーバ22が第2ピース及び第3ピースを受信した状態は、全ピース(第1ピース乃至第6ピース)をスレーブサーバ20乃至スレーブサーバ22のいずれかが受信したこととなる。
【0101】
このような動作に基づき、マスタサーバ10は、複製データと未受信ピースをマルチキャストし、全てのピースがいずれかのスレーブサーバ20乃至スレーブサーバ22で受信すると、送信データ111の送信を終了する。
【0102】
次の本実施の形態に係るスレーブサーバ20乃至スレーブサーバ22の動作について図面を参照して説明する。
【0103】
まず、スレーブサーバ20が受信データ211のピースを受け取る受信データ211の受信動作について説明する。
【0104】
図8は、本実施の形態に係るスレーブサーバ20の受信動作の一例を示すフローチャート図である。
【0105】
スレーブサーバ20のピース受信部221は、マスタサーバ10からネットワーク30を介して受信データ211のピースを受け取る(ステップ1101)と、受け取ったピースをデータ再構築部222に送る。
【0106】
データ再構築部222は、受け取ったピースを用いて受信データ211を再構築し、データ格納部210に格納する(ステップ1102)。さらに、データ再構築部222は、再構築したピースの情報を応答作成部231に送り、応答作成を依頼する。
【0107】
データ再構築部222の動作をさらに詳細に説明する。
【0108】
データ再構築部222は、ピースを受け取ったときにピースを判定し、データ格納部210の対応する位置にピースを格納する。データ再構築部222は、この動作をマスタサーバ10から送信終了(FINパケット45)を受け取るまで続ける。全てのネットワーク30から送信終了(FINパケット45)を受け取ると、データ再構築部222は、再構築したピースの状態、つまり受け取っていないピースの情報(ピース番号)を応答作成部231に送り、応答作成を依頼する。
【0109】
ただし、データ再構築部222の動作は、これに限られない。例えば、データ再構築部222は、受信完了までピースを受け取り保持し、送信終了(FINパケット45)を受けると、格納している受信データ211を再構築し、再構築した受信データ211をデータ格納部210に格納しても良い。このような動作の場合も、応答作成部231への依頼は、同じである。
【0110】
応答作成部231は、データ再構築部222からの未受信のピースの情報を基に、全てのピースを受信できたか、つまり受信データ211の状態を確認(判定)する(ステップ1103)。
【0111】
全てのピースを受信した場合(ステップ1103でyes)、応答作成部231は、ピース情報(番号)を含まない応答を作成する(ステップ1104)。
【0112】
未受信のピースが有る場合(ステップ1103でno)、応答作成部231は、未受信のピース番号を含む応答を作成する(ステップ1105)。
【0113】
なお、本実施の形態に係るデータ複製システム1の応答は、ここでの例示に限らず、マスタサーバ10とスレーブサーバ20との間で取り決めた形式でよい。例えば、応答は、受信できないピース番号を含む応答ではなく、受信できたピース番号を含む応答でもよい。また、応答は、他の情報、例えば応答であることを示す情報、スレーブサーバ20を示す情報を含んでも良い。
【0114】
応答作成部231は、作成した応答を応答送信部232に送る。
【0115】
応答を受け取った応答送信部232は、マルチキャストアドレス格納部233のアドレスを用いて応答をマルチキャストする(ステップ1106)。なお、スレーブサーバ20が応答のマルチキャストに使用するネットワーク30は、データの受信に使用したネットワーク30のいずれかを使用してもよく、全てのネットワーク30にマルチキャストしても良い。
【0116】
このような動作に基づき、スレーブサーバ20は、受信データ211を受信し、応答を送信する。
【0117】
次に、いずれかのスレーブサーバ20の応答を受けた場合における、スレーブサーバ21の再送動作について説明する。
【0118】
図9は、スレーブサーバ21が応答を受けたときの動作の一例を示すフローチャート図である。
【0119】
既に説明したとおり、本実施の形態に係るスレーブサーバ20は、応答をマルチキャストする。そのため、スレーブサーバ21の応答受信部241は、ネットワーク30を介して、スレーブサーバ20から応答を受け取る(ステップ1201)。応答を受けた応答受信部241は、応答を応答解析部242に送る。
【0120】
応答を受け取った応答解析部242は、応答を判定(解析)し、応答に未受信のピースを示す情報が有るか否かを確認する(ステップ1202)。
【0121】
未受信のピースに関する情報がない場合(ステップ1202でno)、スレーブサーバ21は、動作を終了する。つまり、スレーブサーバ21は、何も動作しない。
【0122】
未受信のピースに関する情報が有った場合(ステップ1202でyes)、応答解析部242は、応答に含まれる未受信のピースで、自装置で受信済みのピースが有るか否かを確認する(ステップ1203)。
【0123】
自装置で受信済みのピースがない場合(ステップ1203でno)、スレーブサーバ21は、動作を終了する。つまり、スレーブサーバ21は、何も動作しない。
【0124】
自装置で受信済みのピースが有る場合(ステップ1203でyes)、応答解析部242は、データ分割部251に、受け取った応答に未受信として含まれ、自装置で受信済みのピースを、マルチキャストするように依頼する。
【0125】
依頼を受けデータ分割部251は、受信データ211から依頼されたピースを取り出し、ピース送信部252に送る。
【0126】
ピースを受け取ったピース送信部252は、マルチキャストアドレス格納部253のアドレスを用いてピースをマルチキャストする(ステップ1204)。このマルチキャストは、再送ピースのマルチキャストとなる。なお、スレーブサーバ21は、再送ピースをマスタサーバ10にマルチキャストする必要が無いため、マルチキャストアドレス格納部253のアドレスは、マスタサーバ10のアドレスを含む必要はない。
【0127】
ピースをマルチキャストすると、スレーブサーバ21は、動作を終了する。
【0128】
図10は、スレーブサーバ21の再送動作を示す図である。なお、スレーブサーバ21の再送動作は、データの同期動作でもある。
【0129】
図10は、スレーブサーバ21が、スレーブサーバ20の応答に含まれる未受信のピースを送信した場合の一例を示している。送信しているピースの番号は、図7と同様に第5ピース43と第2ピース44である。送信されたピースは、スレーブサーバ20及びスレーブサーバ22に送られる。
【0130】
なお、図10において、スレーブサーバ21で全ピースを受信済みのため、マスタサーバ10の応答表115は、すべて受信済み(白塗り)となっている。
【0131】
本実施の形態に係るスレーブサーバ21は、このように動作し、スレーブサーバ20が未受信のピースを再送する。
【0132】
このように、本実施の形態に係るデータ複製システム1のスレーブサーバ21は、未受信のスレーブサーバ20の応答を基に、マスタサーバ10に負荷を掛けずに、スレーブサーバ20が未受信のピースを、再送(データの同期が)できる。
【0133】
なお、本実施の形態に係るデータ複製システム1に含まれるマスタサーバ10又はスレーブサーバ20乃至スレーブサーバ22の構成は、これらに限られるわけではない。
【0134】
各サーバの構成は、複数の構成を含む構成、例えば、応答解析部132とデータ分割部121を1つの構成として実現しても良い。また、各サーバの構成は、1つの装置に限られず、別の装置、例えば、データ格納部110を、マスタサーバ10の外部の記憶装置として実現しても良い。
【0135】
図11は、本実施の形態に係る別の構成のデータ複製システム2の構成の一例を示す図である。
【0136】
まず、データ複製システム2の構成について説明する。
【0137】
データ複製システム2は、マスタサーバ14と、スレーブサーバ26と、スレーブサーバ27と、ネットワーク30とを含む。
【0138】
ネットワーク30は、図1のネットワーク30と同等である。
【0139】
また、各サーバは、データ及びアドレスをサーバとバスなどで接続した図示しない別の記憶装置に格納する。そのため、図11では、各格納部の表示を省略した。
【0140】
マスタサーバ14は、マスタサーバ10と同様に、データを送信及び再送する。そのため、マスタサーバ14は、データ送信部120と、応答処理部130とを含む。
【0141】
スレーブサーバ26は、スレーブサーバ20における、データの受信と応答の送信を行う。そのため、スレーブサーバ26は、データ受信部220と、応答返却部230とを含む。
【0142】
スレーブサーバ27は、スレーブサーバ20と同等の動作を行う。そのため、スレーブサーバ27は、データ受信部220と、応答返却部230と、応答処理部240と、データ送信部250とを含む。
【0143】
なお、スレーブサーバ26は、スレーブサーバ27と同様の構成を備えても良いが、説明の便宜のため、図11では省略した。
【0144】
次にデータ複製システム2の動作について説明する。
【0145】
ここでは、スレーブサーバ27が全ピースを受信し、スレーブサーバ26が未受信のピースがある場合について説明する。
【0146】
まず、マスタサーバ14のデータ送信部120は、データのピースをマルチキャストする。
【0147】
スレーブサーバ27のデータ受信部220は、全ピースを受信し、応答返却部230がピースの情報を含まない応答をマルチキャストする。
【0148】
同様にスレーブサーバ26のデータ受信部220は、ピースを受信するが、一部ピースを受信できない。そのため、スレーブサーバ26の応答返却部230は、ピースの情報を含む応答をマルチキャストする。
【0149】
マスタサーバ14は、スレーブサーバ27からの応答がピース情報を含まないため、送信処理を終了する。これ以降、マスタサーバ10は、別の動作に移行する。
【0150】
スレーブサーバ27の応答処理部240は、スレーブサーバ26の応答を受信し、判定(解析)する。その結果、応答処理部240は、スレーブサーバ26の未受信のピースが有ることが分かる。そして、応答処理部240は、データ送信部250にスレーブサーバ26が未受信のピースの送信を依頼する。依頼を受けたデータ送信部250は、スレーブサーバ26が未受信のピースをマルチキャストする。
【0151】
ただし、スレーブサーバ27は、マスタサーバ10にマルチキャストする必要はない。また、図11に示すネットワーク30に接続している装置は、マスタサーバ14を除くと2台となる。そのため、マスタサーバ14に送信しない場合、スレーブサーバ27のマルチキャストは、実施的にスレーブサーバ26へのユニキャストとなる。
【0152】
スレーブサーバ26は、スレーブサーバ27からの未受信のピースの再送を受ける。
【0153】
このようにデータ複製システム2は、データ複製システム1と同様に、スレーブサーバ27に基づき、マスタサーバ14の負荷を削減し、スレーブサーバ26にデータを再送できる。
【0154】
なお、データ複製システム2は、本実施の形態の最小構成である。
【0155】
さらに、本発明の実施の形態の各サーバの構成は、すべてCPU(Central Process Unit)で実行されるプログラムの制御に基づいて処理を実行しても良い。その場合、各サーバは、CPUと、プログラムを記録した記録媒体と、プログラムを実行するための作業領域とデータの格納場所としてのデータ記憶部とを含んでも良い。
【0156】
以上説明したとおり、本実施の形態に係るデータ複製システム1は、複製データの信頼性を確保しながら、マスタサーバ10の負荷を減らした複製データを作成できる効果を得ることができる。
【0157】
その理由は、次のとおりである。
【0158】
本実施の形態に係るマスタサーバ10は、全てのピースが、いずれかのスレーブサーバ20乃至スレーブサーバ22で受信されるまで、ピースを再送する。つまり、本実施の形態に係るデータ複製システム1は、全ピースをスレーブ20乃至スレーブ22のいずれから保持するため、データの信頼性を確保できる。
【0159】
さらに、本実施の形態に係るスレーブサーバ20乃至スレーブサーバ22は、受信したピースを再送する。このため、データ複製システム1は、全ピースがいずれかのスレーブサーバ20乃至スレーブサーバ22で受信されると、それ以降、マスタサーバ10の動作を必要とせずに、データの複製(再送)できる。そのため、データ複製システム1は、マスタサーバ10の負荷を削減できる。
【0160】
(第2の実施の形態)
第1の実施の形態に係るデータ複製システム1で説明したマスタサーバ10及びスレーブサーバ21は、スレーブサーバ20の応答に含まれる未受信のピースを再送する。
【0161】
このようにスレーブサーバ20の応答、特に未受信のピースを含む応答は、未受信のピースの再送を依頼する応答である。そのため、スレーブサーバ20は、ピースを再送できないスレーブサーバ22に未受信のピースを含む応答を送らなくてもよい。不必要な応答の送信を減らすことは、ネットワーク30の通信資源の節約につながる。
【0162】
また、全ピースがいずれかのスレーブサーバ20乃至スレーブサーバ22で受信された場合、マスタサーバ10は、ピースの再送を終了する。そのため、全ピースがいずれかのスレーブサーバ20乃至スレーブサーバ22で受信された場合、スレーブサーバ20は、マスタサーバ10に応答を送信する必要がない。
【0163】
さらに、全ピースを受信済みのスレーブサーバ21が有る場合、スレーブサーバ20は、全ピースを受信済みのスレーブサーバ21に応答を送信して、再送を依頼すればよい。
【0164】
そこで、第2の実施の形態に係るスレーブサーバ23は、全ピースを受信したスレーブサーバ24がある場合、そのスレーブサーバ24に応答を送信する。
【0165】
ただし、マスタサーバ10が再送を終了するのは、全ピースがいずれかのスレーブサーバに受信された場合である。つまり、マスタサーバ10は、各ピースが分散受信された状態でも送信を終了する。しかし、ピースが分散受信の状態で再送の依頼先を指定するためには、スレーブサーバ23は、複数のスレーブサーバのピースの受信状態を管理することが必要となる。
【0166】
そこで、本実施の形態に係るスレーブサーバ23は、各ピースが分散されている場合、第1の実施の形態と同様に応答をマルチキャストする。そして全てのピースを受信したスレーブサーバ24を検出すると、スレーブサーバ23は、全てのピースを受信したスレーブサーバ24に、未受信のピースを含む応答を送信する。
【0167】
第2の実施の形態に係るスレーブサーバ23について図面を参照して説明する。なお、説明の便宜のため、全てのピースを受信したスレーブサーバ24も、スレーブサーバ23と同じ構成とする。
【0168】
図12は、第2の実施の形態に係るスレーブサーバ23の構成の一例を示すブロック図である。図12において、図3と同じ構成には同じ番号を付し、詳細な説明は省略する。
【0169】
図12に示す本実施の形態に係るスレーブサーバ23は、第1の実施の形態に係るスレーブサーバ20の構成に加え、応答返却部260と、応答送信先格納部270と、応答処理部280とを含む。
【0170】
応答返却部260は、応答作成部261と、応答送信部262と、マルチキャストアドレス格納部233とを含む。
【0171】
応答処理部280は、応答解析部282と、応答受信部241とを含む。
【0172】
応答作成部261は、第1の実施の形態に係る応答作成部231と同様に応答を作成する。ただし、応答作成部261は、応答に自装置つまり応答の送信元を識別する装置識別情報(例えば、装置名、装置アドレス、ID(identification))を含む。この応答を受け取ったスレーブサーバ23は、応答の送信元のスレーブサーバ24を識別できる。そのため、スレーブサーバ23は、識別の結果に基づいて、特定のスレーブサーバ24に応答を送信できる。
【0173】
応答解析部282は、第1の実施の形態に係る応答解析部242と同等の判定(解析)動作に加え、ピースを含まない応答の場合は、その応答に含まれる送信元のスレーブサーバ24の装置識別情報を取り出し、応答送信先格納部270に送る。
【0174】
応答送信先格納部270は、応答解析部282から受け取った装置識別情報を、応答送信部262が使用する送信先として格納し、必要に応じて応答送信部262に送る。
【0175】
応答送信部262は、第1の実施の形態に係る応答送信部232と同等の動作に加え、応答送信先格納部270に送信先を示す装置識別情報が格納されている場合、応答を装置識別情報が示す装置に送信する。この場合、応答送信部262は、応答を、マルチキャストではなく、ユニキャストする。
【0176】
ここでユニキャストを使用する理由は、次のとおりである。
【0177】
この装置識別情報が示す送信先は、ピース番号を含まない応答を送信したスレーブサーバ24である。つまり、このスレーブサーバ24は、全てのピースを受信済みであり、全てのピースを再送できる。
【0178】
したがって、未受信のピースがあるスレーブサーバ23は、このスレーブサーバ24に再送を依頼し、ピースの再送を受けることができる。そして、依頼先が分かっているため、スレーブサーバ23は、応答をユニキャストできる。また、ユニキャストは、マルチキャストに比べ、通信資源を節約する。そこで、スレーブサーバ23は、ユニキャストを使用する。
【0179】
次に、第2の実施の形態に係るスレーブサーバ23及びスレーブサーバ24の動作について図面を参照して説明する。
【0180】
なお、ピースを再送する動作は、第1の実施の形態と同じため、詳細な説明は省略し、第2の実施の形態に特有の動作について説明する。そのため、スレーブサーバ23を用いて説明する。
【0181】
まず、応答を受けた場合のスレーブサーバ23の動作について説明する。
【0182】
図13は、本実施の形態に係るスレーブサーバ23が応答を受けたときの動作の一例を示すフローチャート図である。図13において、図9と同等の動作には同じ番号を付し、詳細な説明は省略する。
【0183】
スレーブサーバ23は、応答を受け(ステップ1201)、応答に含まれるピースを確認する(ステップ1202)。
【0184】
ピースが含まれない応答の場合(ステップ1202でno)、第1の実施の形態に係るスレーブサーバ23は、処理を終了したが、第2の実施の形態に係る応答解析部282は、応答に含まれる送信元を示す装置識別情報を抽出し、応答送信先格納部270に格納し(ステップ1305)、処理を終了する。
【0185】
その他の処理は、第1の実施の形態(図9のステップ1203と1204)と同様のため、詳細な説明は、省略する。
【0186】
次に、本実施の形態に係るスレーブサーバ23がピースを受信した場合の動作について説明する。
【0187】
図14は、第2の実施の形態に係るスレーブサーバ23の受信動作の一例を示すフローチャート図である。
【0188】
図14において、図8と同じ動作には同じ番号を付し、詳細な説明は省略する。
【0189】
第2の実施の形態に係るスレーブサーバ23は、受信できなかったピースの情報を含む応答の作成(ステップ1105)に続く動作が、第1の実施の形態に係るスレーブサーバ20と異なる。そこで、ステップ1105以降の動作について詳細に説明する。
【0190】
応答作成部261から応答を受け取った応答送信部262は、応答にピースの情報を含む場合、応答送信先格納部270に応答の送信先となる装置識別情報が格納されているか否かを確認する(ステップ1407)。
【0191】
装置識別情報が格納されていない場合(ステップ1407でno)、応答送信部262は、第1の実施の形態と同様に、応答をマルチキャストする(ステップ1106)。なお、ピースの情報を含まない応答の場合(ステップ1104)も、本実施の形態に係る応答送信部262は、応答をマルチキャストする(ステップ1106)。
【0192】
応答の送信先の装置識別情報が格納されている場合(ステップ1407でyes)、応答送信部262は、格納されている装置識別情報で示される送信先に、応答をユニキャストする(ステップ1408)。なお、複数の装置識別情報が格納されている場合、応答送信部262は、所定の手法(例えば、ラウンドロビン(round robin))を用いていずれかの送信先を選択して、応答をユニキャストする。
【0193】
このような動作に基づき、第2の実施の形態に係るスレーブサーバ23は、第1の実施の形態に係る効果に加え、ネットワーク30の資源を節約し、マスタサーバ10の負荷を減らす効果を得ることができる。
【0194】
その理由は、スレーブサーバ23が、応答をマルチキャストではなく、ユニキャストで送信するためである。
【0195】
また、スレーブサーバ23が、応答をユニキャストするため、マスタサーバ10は、送信終了後の応答を受けなくなるためである。
【0196】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0197】
(付記)
(付記1)
データを送信する第1のデータ送信部と、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する第1の応答処理部とを含み、
前記第1の応答処理部の判定の結果として未受信の部分がある場合、前記第1のデータ送信部が前記未受信の部分のデータを再送し、
前記第1の応答処理部の判定の結果として未受信の部分がない場合、データの送信を終了する
第1のサーバと、
前記データの少なくとも一部又は全てを受信する第1のデータ受信部と、
前記データの受信状態に関する情報を含む第1の応答を送信する第1の応答返却部と
を含む第2のサーバと、
前記データの少なくとも一部又は全てを受信する第2のデータ受信部と、
前記データの受信状態に関する情報を含む第2の応答を送信する第2の応答返却部と、
前記第2のサーバの前記第1の応答を受信し、自装置で受信済みのデータに、前記第1の応答に含まれる未受信のデータがあるか否かを判定する第2の応答処理部と、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する第2のデータ送信部と
を含む第3のサーバと
を含むデータ複製システム。
(付記2)
前記第1のデータ送信部が、前記データを複数の小部分に分割して送信し、
前記第1の応答返却部が、前記小部分の受信状態を含む第1の応答を送信し、
前記第2のデータ送信部が、前記未受信のデータの小部分を送信することを特徴とする付記1に記載のデータ複製システム。
(付記3)
前記第1のサーバが、
前記小部分の受信状態を示す応答表をさらに含み、
前記第1の応答処理部が、
前記第1及び第2の応答に基づき前記応答表の小部分の受信状態を更新し、
全ての小部分が受信済みとなった場合に受信部分がないと判定する
ことを特徴とする付記2に記載のデータ複製システム。
(付記4)
前記第2のサーバが、
前記第3のサーバの前記第2の応答を受信し、前記第2の応答に含まれる未受信のデータがあるか否かを判定する第3の応答処理部をさらに含み、
前記第1の応答返却部が、
前記第2の応答が未受信のデータを含まない場合、前記第1の応答を前記第3のサーバに送信することを特徴とする付記1乃至付記3に記載のデータ複製システム。
(付記5)
データを受信するデータ受信部と、
前記データの未受信の部分に関する情報を含む第1の応答を送信する応答返却部と、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記受信した第2の応答に含まれる未受信のデータの少なくとも一部が含まれる否かを判定する応答処理部と、
前記受信済みでデータで前記第2の応答に含まれる未受信のデータを送信するデータ送信部と
を含むデータ複製サーバ。
(付記6)
前記第2の応答が未受信のデータを含まない場合、
前記応答返却部が、前記第2の応答を送信した装置に、前記第1の応答を送る
ことを特徴とする付記5に記載のデータ複製サーバ。
(付記7)
データを送信し、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定し、
前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送し、
前記判定の結果として未受信の部分がない場合、データの送信を終了する
データ送信と、
前記送信したデータの少なくとも一部又は全てを受信し、
前記データの受信状態に関する情報を含む第1の応答を送信する
データ受信と、
前記送信したデータの少なくとも一部又は全てを受信し、
前記データの受信状態に関する情報を含む第2の応答を送信し、
前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定し、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する
データ再送と
を含むデータ複製方法。
(付記8)
前記データを複数の小部分に分割して送信する前記データ送信と、
前記小部分の受信状態を含む第1の応答を送信する前記データ受信と、
前記第1の応答に含まれる未受信の小部分を送信する前記データ再送と
を特徴とする付記7に記載のデータ複製方法。
(付記9)
前記第1及び第2の応答に基づき前記データの小部分の受信状態を示す応答表を更新し、
全ての小部分が受信済みとなった場合に受信部分がないと判定する
ことを特徴とする付記9に記載のデータ複製方法。
(付記10)
前記第2の応答を受信し、前記第2の応答に含まれる未受信のデータがあるか否かを判定し、
前記第2の応答が未受信のデータを含まない場合、前記第1の応答を前記第2の応答を送信した送信元に送信する前記データの受信
を特徴とする付記7乃至付記9に記載のデータ複製方法。
(付記11)
データを受信し、
前記データの未受信の部分に関する情報を含む第1の応答を送信し、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定し、
前記応答の未受信のデータに含まれる前記受信済みのデータを送信する
データ複製方法。
(付記12)
前記第2の応答が未受信のデータを含まない場合、
前記第1の応答を前記第2の応答を送信した送信元に送る
ことを特徴とする付記11に記載のデータ複製方法。
(付記13)
データを送信する処理と、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する処理と、
前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送する処理と、
前記判定の結果として未受信の部分がない場合、データの送信を終了する処理と
を含むデータ送信処理と、
前記送信したデータの少なくとも一部又は全てを受信する処理と、
前記データの受信状態に関する情報を含む第1の応答を送信する処理と
を含むデータ受信処理と、
前記送信したデータの少なくとも一部又は全てを受信する処理と、
前記データの受信状態に関する情報を含む第2の応答を送信する処理と、
前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定する処理と、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する処理と
を含むデータ再送処理と
をコンピュータに実行させるデータ複製プログラム。
(付記14)
前記データを複数の小部分に分割して送信する処理をさらに含むデータ送信処理と、
前記小部分の受信状態を含む第1の応答を送信する処理をさらに含むデータ受信処理と、
前記第1の応答に含まれる未受信の小部分を送信する処理をさらに含むデータ再送処理と
を特徴とする付記13に記載のデータ複製プログラム。
(付記15)
前記第1及び第2の応答に基づき前記データの小部分の受信状態を示す応答表を更新する処理と、
全ての小部分が受信済みとなった場合に受信部分がないと判定する処理と
を含むことを特徴とする付記14に記載のデータ複製プログラム。
(付記16)
前記第2の応答を受信し、前記第2の応答に含まれる未受信のデータがあるか否かを判定する処理と、
前記第2の応答が未受信のデータを含まない場合、前記第1の応答を前記第2の応答を送信した送信元に送信する処理と
を特徴とする付記13乃至付記15に記載のデータ複製プログラム。
(付記17)
データを受信する処理と、
前記データの未受信の部分に関する情報を含む第1の応答を送信する処理と、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定する処理と、
前記応答の未受信のデータに含まれる前記受信済みのデータを送信する処理と
をコンピュータに実行させるデータ複製プログラム。
(付記18)
前記第2の応答が未受信のデータを含まない場合、
前記第1の応答を前記第2の応答を送信した送信元に送る処理
を特徴とする付記17に記載のデータ複製プログラム。
【符号の説明】
【0198】
1 データ複製システム
2 データ複製システム
10 マスタサーバ
14 マスタサーバ
20 スレーブサーバ
21 スレーブサーバ
22 スレーブサーバ
23 スレーブサーバ
24 スレーブサーバ
26 スレーブサーバ
27 スレーブサーバ
30 ネットワーク
41 奇数番ピース群
42 偶数番ピース群
43 第5ピース
44 第2ピース
45 FINパケット
50 ネットワーク
60 マスタサーバ
65 スレーブサーバ
68 再送専用サーバ
110 データ格納部
111 送信データ
115 応答表
120 データ送信部
121 データ分割部
122 ピース送信部
123 マルチキャストアドレス格納部
130 応答処理部
131 応答受信部
132 応答解析部
210 データ格納部
211 受信データ
220 データ受信部
221 ピース受信部
222 データ再構築部
230 応答返却部
231 応答作成部
232 応答送信部
233 マルチキャストアドレス格納部
240 応答処理部
241 応答受信部
242 応答解析部
250 データ送信部
251 データ分割部
252 ピース送信部
253 マルチキャストアドレス格納部
260 応答返却部
261 応答作成部
262 応答送信部
270 応答送信先格納部
280 応答処理部
282 応答解析部
510 コネクション
610 送信データ
651 受信データ

【特許請求の範囲】
【請求項1】
データを送信する第1のデータ送信部と、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する第1の応答処理部とを含み、
前記第1の応答処理部の判定の結果として未受信の部分がある場合、前記第1のデータ送信部が前記未受信の部分のデータを再送し、
前記第1の応答処理部の判定の結果として未受信の部分がない場合、データの送信を終了する
第1のサーバと、
前記データの少なくとも一部又は全てを受信する第1のデータ受信部と、
前記データの受信状態に関する情報を含む第1の応答を送信する第1の応答返却部と
を含む第2のサーバと、
前記データの少なくとも一部又は全てを受信する第2のデータ受信部と、
前記データの受信状態に関する情報を含む第2の応答を送信する第2の応答返却部と、
前記第2のサーバの前記第1の応答を受信し、自装置で受信済みのデータに、前記第1の応答に含まれる未受信のデータがあるか否かを判定する第2の応答処理部と、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する第2のデータ送信部と
を含む第3のサーバと
を含むデータ複製システム。
【請求項2】
前記第1のデータ送信部が、前記データを複数の小部分に分割して送信し、
前記第1の応答返却部が、前記小部分の受信状態を含む第1の応答を送信し、
前記第2のデータ送信部が、前記未受信のデータの小部分を送信することを特徴とする請求項1に記載のデータ複製システム。
【請求項3】
前記第1のサーバが、
前記小部分の受信状態を示す応答表をさらに含み、
前記第1の応答処理部が、
前記第1及び第2の応答に基づき前記応答表の小部分の受信状態を更新し、
全ての小部分が受信済みとなった場合に受信部分がないと判定する
ことを特徴とする請求項2に記載のデータ複製システム。
【請求項4】
前記第2のサーバが、
前記第3のサーバの前記第2の応答を受信し、前記第2の応答に含まれる未受信のデータがあるか否かを判定する第3の応答処理部をさらに含み、
前記第1の応答返却部が、
前記第2の応答が未受信のデータを含まない場合、前記第1の応答を前記第3のサーバに送信することを特徴とする請求項1乃至請求項3に記載のデータ複製システム。
【請求項5】
データを受信するデータ受信部と、
前記データの未受信の部分に関する情報を含む第1の応答を送信する応答返却部と、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記受信した第2の応答に含まれる未受信のデータの少なくとも一部が含まれる否かを判定する応答処理部と、
前記受信済みでデータで前記第2の応答に含まれる未受信のデータを送信するデータ送信部と
を含むデータ複製サーバ。
【請求項6】
前記第2の応答が未受信のデータを含まない場合、
前記応答返却部が、前記第2の応答を送信した装置に、前記第1の応答を送る
ことを特徴とする請求項5に記載のデータ複製サーバ。
【請求項7】
データを送信し、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定し、
前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送し、
前記判定の結果として未受信の部分がない場合、データの送信を終了する
データ送信と、
前記送信したデータの少なくとも一部又は全てを受信し、
前記データの受信状態に関する情報を含む第1の応答を送信する
データ受信と、
前記送信したデータの少なくとも一部又は全てを受信し、
前記データの受信状態に関する情報を含む第2の応答を送信し、
前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定し、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する
データ再送と
を含むデータ複製方法。
【請求項8】
データを受信し、
前記データの未受信の部分に関する情報を含む第1の応答を送信し、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定し、
前記応答の未受信のデータに含まれる前記受信済みのデータを送信する
データ複製方法。
【請求項9】
データを送信する処理と、
前記送信したデータの受信の状態を含む応答を受け、前記応答に基づき、前記データの未受信の部分があるか否かを判定する処理と、
前記判定の結果として未受信の部分がある場合、前記未受信の部分のデータを再送する処理と、
前記判定の結果として未受信の部分がない場合、データの送信を終了する処理と
を含むデータ送信処理と、
前記送信したデータの少なくとも一部又は全てを受信する処理と、
前記データの受信状態に関する情報を含む第1の応答を送信する処理と
を含むデータ受信処理と、
前記送信したデータの少なくとも一部又は全てを受信する処理と、
前記データの受信状態に関する情報を含む第2の応答を送信する処理と、
前記第1の応答を受信し、受信済みのデータで、前記第1の応答に含まれる未受信のデータがあるか否かを判定する処理と、
前記受信済みのデータで前記第1の応答で未受信となっているデータを送信する処理と
を含むデータ再送処理と
をコンピュータに実行させるデータ複製プログラム。
【請求項10】
データを受信する処理と、
前記データの未受信の部分に関する情報を含む第1の応答を送信する処理と、
前記データの受信結果を含む第2の応答を受信し、受信済みのデータに、前記第2の応答に含まれる未受信のデータの少なくとも一部があるか否かを判定する処理と、
前記応答の未受信のデータに含まれる前記受信済みのデータを送信する処理と
をコンピュータに実行させるデータ複製プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2012−88955(P2012−88955A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−235429(P2010−235429)
【出願日】平成22年10月20日(2010.10.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】