(57)【特許請求の範囲】
【請求項１】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、
上記チェックポイントが取得される度に各チェックポイントを識別するためのチェックポイント順次番号を更新して管理する手段と、
通信パケットを作成するときに、その作成した通信パケットに現在のチェックポイント順次番号を付加する手段と、
上記通信パケットを送信するときに、その通信パケットに付加されたチェックポイント順次番号と現在のチェックポイント順次番号とを比較する手段と、
この比較によるその通信パケットに付加されたチェックポイント順次番号が現在のチェックポイント順次番号と異なるときに、即ちにその通信パケットを送信し、一致するときには、その通信パケットの送信を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とするチェックポイント通信処理システム。
【請求項２】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、
ある特定の通信プロトコルで作成された通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成するときに、その作成した伝送パケットが上記複数の伝送パケットの中の最後のものであるか否かを示す情報を付加する手段と、
上記伝送パケットを伝送するときに、その伝送パケットが上記複数の伝送パケットの中の最後のものか否かを判定する手段と、
この判定によりその伝送パケットが上記最後のものでなかったときに、即座にその伝送パケットを伝送し、上記最後のものであったときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とするチェックポイント通信処理システム。
【請求項３】
上記通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成し、
その複数の伝送パケットの中の最後のもの以外をチェックポイントを待機せずに即座に伝送して一番最後のもののみをチェックポイントまで待機させる処理を一体として行い、
伝送パケットへの情報の付加を不要とすることを特徴とする請求項２記載のチェックポイント通信処理システム。
【請求項４】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、
通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、
最後のチェックポイント取得以後に発生した上記分割された伝送パケットのうち、同一の送信先への最初のパケットか否かを判定する手段と、
この判定によりその伝送パケットが上記最初のものであるときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる手段とを具備していることを特徴とするチェックポイント通信処理システム。
【請求項５】
故障により直前のチェックポイント迄ロールバックした際には、伝送パケットの順序番号をリセットし、２つ目の伝送パケットには順序番号初期化のメッセージを付加して伝送し、その伝送パケットを受信した計算機では、不完全な伝送パケットを破棄し、順序番号を初期化した上で伝送パケットを受信することを特徴とする請求項４記載のチェックポイント通信処理システム。
【請求項６】
遅延せずに送出した２つ目以降の連続する伝送パケット数が、予め設定された閾値を超えたときに、次のチェックポイント取得を開始することを特徴とする請求項４記載のチェックポイント通信処理システム。
【請求項７】
分割された２つ目以降の伝送パケットを遅延せずに送出した通信相手よりオーバーフローを告知するパケットが到着した際には、その通信相手へのパケットの伝送を停止し、次のチェックポイントを開始することを特徴とする請求項４記載のチェックポイント通信処理システム。
【請求項８】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポインから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、
上記チェックポイントが取得される度に各チェックポイントを識別するためのチェックポイント順次番号を更新し、通信パケットを作成するときに、その作成した通信パケットに現在のチェックポイント順次番号を付加し、上記通信パケットを送信するときに、その通信パケットに付加されたチェックポイント順次番号と現在のチェックポイント順次番号とを比較し、この比較によるその通信パケットに付加されたチェックポイント順次番号が現在のチェックポイント順次番号と異なるときに、即ちにその通信パケットを送信し、一致するときには、その通信パケットの送信を次のチェックポイントが取得されるまで遅延させることを特徴とするチェックポイント通信処理方法。
【請求項９】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、
ある特定の通信プロトコルで作成された通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成するときに、その作成した伝送パケットが上記複数の伝送パケットの中の最後のものであるか否かを示す情報を付加し、上記伝送パケットを伝送するときに、その伝送パケットが上記複数の伝送パケットの中の最後のものか否かを判定し、この判定によりその伝送パケットが上記最後のものでなかったときに、即座にその伝送パケットを伝送し、上記最後のものであったときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させることを特徴とするチェックポイント通信処理方法。
【請求項１０】
上記通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成し、その複数の伝送パケットの中の最後のもの以外をチェックポイントを待機せずに即座に伝送して一番最後のもののみをチェックポイントまで待機させる処理を一体として行い、伝送パケットへの情報の付加を不要とすることを特徴とする請求項９記載のチェックポイント通信処理方法。
【請求項１１】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、最後のチェックポイント取得以後に発生した上記分割された伝送パケットのうち、同一の送信先への最初のパケットか否かを判定し、この判定によりその伝送パケットが上記最初のものであるときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させることを特徴とするチェックポイント通信処理方法。
【請求項１２】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、故障により直前のチェックポイント迄ロールバックした際には、伝送パケットの順序番号をリセットし、２つ目の伝送パケットには順序番号初期化のメッセージを付加して伝送し、その伝送パケットを受信した計算機では、不完全な伝送パケットを破棄し、順序番号を初期化した上で伝送パケットを受信することを特徴とする請求項１１記載のチェックポイント通信処理方法。
【請求項１３】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、遅延せずに送出した２つ目以降の連続する伝送パケット数が、予め設定された閾値を超えたときに、次のチェックポイント取得を開始することを特徴とする請求項１１記載のチェックポイント通信処理方法。
【請求項１４】
チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、分割された２つ目以降の伝送パケットを遅延せずに送出した通信相手よりオーバーフローを告知するパケットが到着した際には、その通信相手へのパケットの伝送を停止し、次のチェックポイントを開始することを特徴とする請求項１１記載のチェックポイント通信処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムに適用して好適なチェックポイント通信処理システムに係り、特に次のチェックポイント取得まで待機させなければならないパケット数を最小限にすることにより、コンピュータシステムにおける通信処理の大幅な高速化を図ることを可能とするチェックポイント通信処理システム、及びチェックポイント通信処理方法に関する。
【０００２】
【従来の技術】
従来、チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいては、通信入出力の発行を次のチェックポイント取得後まで遅延させなければならなかった。
【０００３】
この理由は、システムにおいて障害が発生したときには、システムの状態を最後に取得したチェックポイントの状態に戻さなければならず、最後のチェックポイント取得以降に実行した処理を常にキャンセルできるようにしておく必要があるからである。
【０００４】
すなわち、通信処理においても、障害が発生した場合には、最後のチェックポイント取得以降に発行した通信処理を全てキャンセルする必要がある。しかし、このようなことを通信処理で行なうことは困難であるために、通信処理の発行を次のチェックポイントが取得されるまで遅延させることで対処しなければならなかった。
【０００５】
このときの動作原理を図１０を参照して説明する。
たとえば、アプリケーションが送信要求を発行した場合（図１０の（１））、通信処理システムは、この送信要求にしたがって通信パケット（トランスポートレイヤにおけるトランスポートパケット、たとえばＩＰパケット）を作成する（図１０の（２））。
【０００６】
しかしながら、実際にこの作成した通信パケットを送信する際には、即座に送信するようなことはせずに、次のチェックポイントが取得されるまで（図１０の（３））、その送信を待機させる。
【０００７】
これは障害が発生した場合、システムを直前のチェックポイントの状態（図６の（５））にロールバックし、そこから再実行を行うタイミング等に起因して、直前のチェックポイント以後の送信が（図１０の（１））が必ずしも再び要求されるわけではないためである。
【０００８】
そして、次のチェックポイントが取得された後に、ドライバを介してこの通信パケットを送信する（図１０の（４））。
上記の動作を、本発明の実施形態のタイミングチャート図８を用いて、詳細に説明する。
【０００９】
たとえば、アプリケーションが送信要求を発行した場合（図８の（１））、通信処理のシステムは、この送信要求にしたがって通信パケット（トランスポートレイヤにおけるトランスポートパケット、たとえばＩＰパケット）を作成する（図８の（２））。
【００１０】
作成された通信パケットを物理的な伝送媒体に合わせて、複数の伝送パケット（データリンクレイヤにおけるデータリンクパケット、たとえばｅｔｈｅｒｎｅｔパケット）に分割する（図８の（３））。
【００１１】
しかしながら、実際にこの伝送パケットを送信する際には、即座に送信するようなことはせずに、次のチェックポイントが取得されるまで（図８の（８））、その送信で待機させる。
【００１２】
これは障害が発生した場合、システムを直前のチェックポイントの状態（図８の（６））にロールバックし、そこから再実行を行うのだが、タイミング等に起因して、直前のチェックポイント以後の送信（図８の（５））が必ずしも再び要求されるわけではないためである。
【００１３】
そして、次のチェックポイントが取得された後に、ドライバを介してこの伝送パケットを送信する（図８の（５））。
したがって、耐障害性を保証するシステムの動作手順について通信処理にのみ着目してみると、次のチェックポイントまで処理を遅延させるため性能低下のおそれがある。
【００１４】
すなわち、近年、通信処理の高速化がますます要求されているにも関わらず、耐障害性を保証するシステムの通信処理では、上述したチェックポイント取得に伴う遅延が高速化を阻害してしまっているといった問題があった。
【００１５】
【発明が解決しようとする課題】
上述したように、従来のチェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を表現するコンピュータシステムにおいては、伝送パケットの発行を次のチェックポイント取得後まで遅延させなければならないといった問題があった。
【００１６】
そこで、本発明は上記事情を考慮して成されたもので、上記不具合を解消し、従来であれば、次のチェックポイントが取得されるまで待機させていた通信処理を可能な限りチェックポイントを待たずに即時に発行させることにより通信処理の大幅な高速化を図ることを可能とするチェックポイント通信処理システム、及びチェックポイント通信処理方法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明は、上記目的を達成するため、本発明のチェックポイント通信処理システムは、チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、上記チェックポイントが取得される度に各チェックポイントを識別するためのチェックポイント順次番号を更新して管理する手段と、通信パケットを作成（トランスポートレイヤにおけるトランスポートパケットの作成、たとえばＩＰレイヤにおけるＩＰパケットの作成）するときに、その作成した通信パケットに現在のチェックポイント順次番号を付加する手段と、上記通信パケットを送信するときに、その通信パケットに付加されたチェックポイント順次番号と現在のチェックポイント順次番号とを比較する手段と、この比較によりその通信パケットに付加されたチェックポイント順次番号が現在のチェックポイント順次番号と異なっているときに、即座にその通信パケットを送信し、一致するときには、その通信パケットの送信を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とする。
【００１８】
また、本発明のチェックポイント通信処理システムは、チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、ある特定の通信プロトコルで作成された通信パケット（トランスポートレイヤで作成されたトランスポートパケット、たとえばＩＰレイヤで作成されたＩＰパケット）を伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成（データリンクレイヤにおけるデータリンクパケットの作成、たとえばｅｔｈｅｒｎｅｔドライバにおけるｅｔｈｅｒｎｅｔパケットの作成）するときに、その作成した伝送パケットが上記複数の伝送パケットの中の最後のものであるか否かを示す情報を付加する手段と、上記伝送パケットを伝送するときに、その伝送パケットが上記複数の伝送パケットの中の最後のものか否かを判定する手段と、この判定によりその伝送パケットが上記最後のものでなかったときに、即座にその伝送パケットを伝送し、上記最後のものであったときには、その伝送パケットの伝送を次のチェックポイントが取得される後まで遅延させる手段とを具備してなることを特徴とする。
【００１９】
また、本発明のチェックポイント通信処理システムは、上記通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成し、その複数の伝送パケットの中の最後のもの以外をチェックポイントを待機せずに即座に伝送してー番最後のもののみをチェックポイントまで待機させる処理をー体として行うことを特徴とする。
【００２０】
また、本発明のチェックポイント通信処理システムは、チェックポイントを取得しながら処理を続けていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルを使用する場合において、最後のチェックポイント取得以降に発生した上記分割された伝送パケットのうち、同一の送信先への最初のパケットか否かを判定する手段と、この判定によりその伝送パケットが上記最初のものでなかったときに、即座にその伝送パケットを伝送し、上記最初のものであった時には、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる手段を具備していることを特徴とする。
【００２１】
また、本発明のチェックポイント通信処理システムは、上記特徴に加え、故障により直前のチェックポイント迄ロールバックした際には、伝送パケットの順序番号をリセットし、２つ目の伝送パケットには順序番号初期化のメッセージを付加して伝送し、その伝送パケットを受信した計算機では、不完全な伝送パケットを破棄し、順序番号を初期化した上で伝送パケットを受信する手段を具備していることを特徴とする。
【００２２】
また、本発明のチェックポイント通信処理システムは、上記特徴に加え、遅延せずに送出した２つ目以降の連続する伝送パケット数が、予め設定された閾値を超えたときに、次のチェックポイント取得を開始する手段を具備していることを特徴とする。
【００２３】
また、本発明のチェックポイント通信処理システムは、上記特徴に加え、分割された２つ目以降の伝送パケットを遅延せずに送出した通信相手よりオーバーフローを告知するパケットが到着した際には、その通信相手へのパケットの伝送を停止し、次のチェックポイントを開始することを具備していることを特徴とする。
【００２４】
上記構成によれば、本発明のチェックポイント通信処理システムでは、周期的に取得されるチェックポイントを識別するためのチェックポイント順次番号を管理し、この管理したチェックポイント順次番号に基づいて送信処理を制御する。
【００２５】
すなわち、通信パケットを作成するときに、その時点で採番されているチェックポイント順次番号をその通信パケットに付加しておき、実際にこの通信パケットを送信するときに、この通信パケットに付加されたチェックポイント順次番号と送信時のチェックポイント順次番号とを比較する。
【００２６】
上記の動作をもう少し正確に述べると、通信パケット（トランスポートレイヤにおけるトランスポートパケット、たとえばＵＤＰパケット）は物理的伝送媒体と合わせて、複数の伝送パケット（データリンクレイヤにおけるデータリンクパケット、たとえばＩＰパケットやｅｔｈｅｒｎｅｔパケット）に分割される。この時、通信パケットに付加されているチェックポイント順次番号を伝送パケットに付加する。そして、伝送パケットは送信する際に、その伝送パケットに付加されたチェックポイント順次番号と、送信時のチェックポイント順次番号とを比較する。たとえば、通信パケットが作成された後、送信処理が行われるまでの間に、チェックポイント取得された場合には、通信パケット（正確には伝送パケット）に付加されたチェックポイント順次番号と現時点のチェックポイント順次番号は異なっているはずである。したがって、このような通信パケットは、即座に送信して良い。これにより、すべての通信パケットについての次のチェックポイント取得を待機するのではなく、必要最小限の通信パケットのみについて次のチェックポイント取得まで待機させることにより、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００２７】
また、本発明のチェックポイント通信処理システムにおける２番目の方法では一つの通信パケットが複数の伝送パケットに分割されることに着目し、このパケットの相対位置を判定して送信処理を制御する。
【００２８】
すなわち、通信パケットを伝送媒体のパケットサイズで分割して複数の伝送パケットを作成する際に、これらの伝送パケットそれぞれに、その複数作成された伝送パケットの中の最後の伝送パケットかどうかを示す情報を付加しておき、実際にこの伝送パケットを送信するときに、この伝送パケットに付加された情報からこの伝送パケットが最後の伝送パケットであるかどうかを判定する。そして、この判定により最後のものでなかった場合には、チェックポイントの取得を待機せずに即座に送信する。
【００２９】
したがって、たとえば次のチェックポイントが取得される前に障害が発生したとしても、最後の伝送パケットは送信されておらず、すなわち分割前の通信パケットは送信完了とはなっていないため、受信側システムによるタイムアウト検知などにより通信パケットの再送が促されることになる。
【００３０】
これにより、すべての伝送パケットについて次のチェックポイント取得を待機するのではなく、上述と同様、必要最小限の伝送パケットのみについて次のチェックポイント取得後まで、その送信を待機させることにより、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００３１】
また、本発明のチェックポイント通信処理システムにおける３番目の方法では、伝送パケットを作成する処理と、伝送パケットのうちで最後のもの以外をチェックポイントまで待機せずに伝送する処理とをー体として実行することにより、伝送パケットにそれが最後のものであるか否を示す情報を付加する処理を不要にできる。
【００３２】
また、本発明のチェックポイント通信処理システムでは、順序番号を使った確認応答を行う通信プロトコルにおいても、パケットの相対位置を判定して送信処理を制御する。
【００３３】
一般に、確認応答を行う通信プロトコルでは、各伝送パケットに対する確認応答を待ってから次の伝送パケットを送信するが、性能劣化を防ぐために、送信データをいくつかの伝送パケットに分割し、各伝送パケットと確認応答パケットに順序番号を付加した上で、それらのパケットをー括して送信するという工夫が行われている。そして、通信相手は受信したパケットの順序番号を判定し、完全に受信している部分までのパケットに対する確認応答を返す。送り元はさらにその確認応答パケットの順序番号を判定して次のー括送信を開始する。これにより送信順序の乱れにも対応できるようになっている。
【００３４】
しかし、チェックポイントの取得を待ってから伝送パケットを送出する通信方法では、この工夫による効果が得られない。本発明では、最後のチェックポイント取得以降に発生した上記分割された伝送パケットのうち、同一の送信先への最初のパケットか否かを判定し、その伝送パケットが最初のものでなかったときに、チェックポイントを待たずに即座にそれらの伝送パケットを伝送する。そして、上記最初のものであった時には、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる。
【００３５】
したがって、例えば次のチェックポイントが取得される前に障害が発生したとしても、最初のパケットは送信されておらず、通信相手からの確認応答のパケットは来ない。通信相手側でも受信は完了していないことになる。
【００３６】
そして、直前のチェックポイント迄ロールバックした際には、伝送パケットの順序番号をリセットし、２つ目の伝送パケットには順序番号初期化のメッセージを付加して伝送し、順序番号を初期化した上で伝送パケットを受信することにより、通信相手側の不完全な伝送パケットを破棄することができる。
【００３７】
これにより、確認応答を伴う通信プロトコルにおいても、全てのパケットについて次のチェックポイント取得を待機するのではなく、必要最小限のパケットのみについて次のチェックポイント取得を待機させることにより、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００３８】
また、本発明のチェックポイント通信処理システムでは、上記、順序番号を使った確認応答を行う通信プロトコルにおいて、遅延せずに送出した２つ目以降の連続する伝送パケット数が、予め設定された閾値を超えたときに、次のチェックポイント取得を開始する。さらに、通信相手よりオーバーフローを告知するパケットが到着した際に、その通信相手へのパケットの伝送を停止し、次のチェックポイントを開始する。
これにより、性能劣化や、通信相手のバッファオーバーフローやタイムアウトによる再送を減らすことができる。
【００３９】
【発明の実施の形態】
本発明の概要は、次の通りである。
（１）チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、上記チェックポイントが取得される度に各チェックポイントを識別するためのチェックポイント順次番号を更新して管理する手段と、通信パケットを作成するときに、その作成した通信パケットに現在のチェックポイント順次番号を付加する手段と、上記通信パケットを送信するときに、その通信パケットに付加されたチェックポイント順次番号と現在のチェックポイント順次番号とを比較する手段と、この比較によるその通信パケットに付加されたチェックポイント順次番号が現在のチェックポイント順次番号と異なるときに、即座にその通信パケットを送信し、一致するときには、その通信パケットの送信を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とするチェックポイント通信処理システムである。そして、この構成によれば、すべての通信パケットについての次のチェックポイント取得を待機するのではなく、必要最小限の通信パケットのみについて次のチェックポイント取得まで待機させることにより、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００４０】
（２）チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムにおいて、ある特定の通信プロトコルで作成された通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成するときに、その作成した伝送パケットが上記複数の伝送パケットの中の最後のものであるか否かを示す情報を付加する手段と、上記伝送パケットを伝送するときに、その伝送パケットが上記複数の伝送パケットの中の最後のものか否かを判定する手段と、この判定によりその伝送パケットが上記最後のものでなかったときに、即座にその伝送パケットを伝送し、上記最後のものであったときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とするチェックポイント通信処理システムである。そして、この構成によれば、すべての伝送パケットについて次のチェックポイント取得を待機するのではなく、必要最小限の伝送パケットのみについて次のチェックポイント取得後まで、その送信を待機させることにより、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００４１】
（３）上記（２）記載のチェックポイント通信処理システムにおいて、上記通信パケットを伝送媒体の伝送パケットサイズで分割して複数の伝送パケットを作成し、その複数の伝送パケットの中の最後のもの以外をチェックポイントを待機せずに即座に伝送して一番最後のもののみをチェックポイントまで待機させる処理を一体として行い、伝送パケットへの情報の付加を不要とすることを特徴とする。この構成によれば、全ての伝送パケットの送信を次のチェックポイント取得まで一律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００４２】
（４）チェックポイントを取得しながら処理を進めていき、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、最後のチェックポイント取得以後に発生した上記分割された伝送パケットのうち、同一の送信先への最初のパケットか否かを判定する手段と、この判定によりその伝送パケットが上記最初のものであるときには、その伝送パケットの伝送を次のチェックポイントが取得されるまで遅延させる手段とを具備してなることを特徴とするチェックポイント通信処理システムを提供する。この構成によれば、確認応答を伴う通信プロトコルにおいても、全ての伝送パケットの送信を次のチェックポイント取得まで一律に待機させるのではなく、必要最小限の伝送パケットのみについてチェックポイント取得を待機させることとにより、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００４３】
（５）上記（４）記載のチェックポイント通信処理システムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、故障により直前のチェックポイント迄ロールバックした際には、伝送パケットの順序番号をリセットし、２つ目の伝送パケットには順序番号初期化のメッセージを付加して伝送し、その伝送パケットを受信した計算機では、不完全な伝送パケットを破棄し、順序番号を初期化した上で伝送パケットを受信することを特徴とする。この構成によれば、確認応答を伴う通信プロトコルにおいても、全ての伝送パケットの送信を次のチェックポイント取得まで一律に待機させるのではなく、必要最小限の伝送パケットのみについてチェックポイント取得を待機させることとにより、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００４４】
（６）上記（４）記載のチェックポイント通信処理システムにおいて、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、遅延せずに送出した２つ目以降の連続する伝送パケット数が、予め設定された閾値を超えたときに、次のチェックポイント取得を開始することを特徴とする。この構成によれば、性能劣化や、通信相手のバッファオーバーフローやタイムアウトによる再送を減らすことができる。
【００４５】
（７）上記（４）記載のチェックポイント通信処理システムであって、通信パケットを複数の伝送パケットに分割し、上記伝送パケットに順序番号を付けた上で送信し、順序番号付きの応答パケットにより送信完了を確認する通信プロトコルにおいて、分割された２つ目以降の伝送パケットを遅延せずに送出した通信相手よりオーバーフローを告知するパケットが到着した際には、その通信相手へのパケットの伝送を停止し、次のチェックポイントを開始することを特徴とする。この構成によれば、性能劣化や、通信相手のバッファオーバーフローやタイムアウトによる再送を減らすことができる。
【００４６】
以下、図面を参照して本発明の実施形態を説明する。
（実施形態１）
まず、図１乃至図３を参照して本発明の実施形態１を説明する。
【００４７】
図１は、実施形態１に係るチェックポイント通信処理システムの概略構成を示す図である。
図１に示すように、同実施形態に係るチェックポイント通信処理システム２は、制御部２１、順次番号インクリメント部２２、通信パケット作成部２３、属性情報付加部２４、および比較判断部２５を有してなる。
【００４８】
制御部２１は、チェックポイント通信処理システム２全体の制御を司るところである。順次番号インクリメント部２２は、周期的に所定のタイミングで取得されるチェックポイントそれぞれを識別するためのチェックポイント順次番号を管理するところであり、チェックポイントが取得される度にチェックポイント順次番号を更新する。
【００４９】
また、通信パケット作成部２３は、アプリケーション１からの送信要求にしたがって通信パケット（トランスポートレイヤにおけるトランスポートパケット、たとえばＵＤＰパケット）を作成する。
【００５０】
属性情報付加部２４は、パケット作成部２３により、通信パケットが作成された際に、この作成通信パケットに順次番号インクリメント部２２が管理する現時点でのチェックポイント順次番号を付加する。
【００５１】
そして、比較判断部２５は、通信パケットを実際に送信する際に、その通信パケットに付加されたチェックポイント順次番号と、順次番号インクリメント部２２が管理する現時点でのチェックポイント順次番号とを比較する。
【００５２】
ここで、図２を参照して同実施形態の動作原理について説明する。
図２は、同実施形態の動作原理を説明するためのタイミングチャートである。アプリケーション１が送信要求を発行すると（図２の（１））、チェックポイント通信処理システム２の制御部２１は、通信パケット作成部２３によりこの送信要求にしたがった通信パケットを作成する（図２の（２））。
【００５３】
ここでは、この送信要求に対し通信パケット４ａ〜４ｃの３つの通信パケットが作成されるものとする。
またこのとき、制御部２１は、属性情報付加部２４により通信パケット作成部２３が作成した通信パケットそれぞれに、順次番号インクリメント部２２の管理する作成時のチェックポイント順次番号を付加しておく。
【００５４】
ここでは、通信パケット４ａが作成された直後にチェックポイントが取得されたことを前提とし（図２の（３））。
さらに、この状態で、このチェックポイント取得後、次のチェックポイント取得前に、この通信パケット４ａ〜４ｃを送信する場合を考える。
【００５５】
制御部２１は、通信パケット４ａ〜４ｃを送信する際、比較判断部２５によりその通信パケット４ａ〜４ｃそれぞれに付加されたチェックポイント順次番号と、順次番号インクリメント部２２により管理された現時点でのチェックポイント順次番号とを比較する。
【００５６】
ここで、その通信パケットに付加されたチェックポイント順次番号が、順次番号インクリメント部２２により管理された現時点でのチェックポイント順次番号と異なる場合には（ここでは通信パケット４ａが該当する）、通信パケット作成後にチェックポイントが取得されていることになるため、その通信パケットを即座に送信する（図２の（４））。なぜなら、これらの通信パケットは、障害発生時にも、キャンセルする必要がないからである。
【００５７】
一方、一致する場合には（ここでは通信パケット４ｂおよび４ｃが該当する）、次のチェックポイント取得（図２の（５））を待って、その通信パケットを送信する（図２の（６））。なぜならこれらの通信パケットは、障害が次のチェックポイント以前に発生した場合にはキャンセルする必要があるからである。
【００５８】
すなわち、通信パケットを送信する際に、すべての通信パケットの送信を次のチェックポイント取得までー律に待機させるのではなく、その必要のあるものだけ、すなわち障害発生時にはキャンセルする必要がある通信パケットだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００５９】
次に、図３を参照して同実施形態の動作手順を説明する。
図３は、同実施形態の動作手順を説明するためのフローチャートである。
アプリケーション１が送信要求を発行すると、チェックポイント通信処理システム２の制御部２１は、通信パケット作成部２３によりこの送信要求にしたがった通信パケットを作成する（図３のステップＡ１）。
【００６０】
そして、制御部２１は、属性情報付加部２４により通信パケット作成部２３が作成した通信パケットそれぞれに、順次番号インクリメント部２２の管理する作成時のチェックポイント順次番号を付加する（図３のステップＡ２）。
【００６１】
制御部２１は、通信パケットを送信する際、比較判断部２５によりその通信バケットそれぞれに付加されたチェックポイント順次番号と、順次番号インクリメント部２２により管理された現時点でのチェックポイント順次番号とを比較する（図３のステップＡ３）。
【００６２】
そして、その通信パケットに付加されたチェックポイント順次番号が、順次番号インクリメント部２２により管理された現時点でのチェックポイント順次番号と異なる場合には（図３のステップＡ３のＹ）、その通信パケットを即座に送信する（図３のステップＡ５）。
【００６３】
また、上記通信パケットに付加されたチェックポイント順次番号が、順次番号インクリメント部２２により管理された現時点でのチェックポイント順次番号と一致する場合には（図３のステップＡ３のＮ）、次のチェックポイント取得を待って（図３のＡ４）、その通信パケットを送信する（図３のステップＡ５）。
【００６４】
上記動作をさらに詳細に述べると、通信パケットは物理的な伝送媒体に合わせて、複数の伝送パケット（データリンクレイヤにおけるデータパケット、たとえばＩＰパケットやｅｔｈｅｒｎｅｔパケット）に分割される。
【００６５】
このとき、通信パケットに付加されているチェックポイント順次番号を伝送パケットに付加する。そして、伝送パケットを送信する際に、その伝送パケットに付加されたチェックポイント順次番号と、送信時のチェックポイント順次番号とを比較する。
【００６６】
これにより通信パケットを送信する際に、すべての通信パケットの送信を次のチェックポイント取得までー律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００６７】
（実施形態２）
次に、図６、図４、および図５を参照して本発明の実施形態２を説明する。
同実施形態では、属性情報付加部２４が、伝送パケット作成部２６が作成する伝送パケットの相対位置情報を付加する。
【００６８】
ここでは、通信パケット作成部２２が、アプリケーション１からの送信要求にしたがって通信パケットを作成し、さらにこの通信パケットを伝送媒体のパケットサイズで分割して複数の伝送パケットを作成する場合に、その伝送パケットそれぞれが、その複数作成された伝送パケットの中の最後の伝送パケットかどうかを示す情報を相対位置情報として付加する。
【００６９】
ここで、図４を参照して同実施形態の動作原理について説明する。
図４は同実施形態の動作原理を説明するためのタイミングチャートである。
アプリケーション１が送信要求を発行すると（図４の（１））、チェックポイント通信処理システム２の制御部２１は、通信パケット作成部２２によりこの送信要求にしたがって通信パケットを作成する（図４の（２））。
【００７０】
そして、この通信パケットを伝送媒体のバケットサイズで分割して複数の伝送パケットを作成する（図４の（３））。ここでは、３つの伝送パケット５ａ〜５ｃが作成されるものとする。
【００７１】
このとき、制御部２１は、属性情報付加部２４により伝送パケット作成部２６が作成した伝送パケットそれぞれに、その伝送パケットが複数の作成された伝送パケットの中の最後の伝送パケットかどうかを示す情報を付加しておく。
【００７２】
そして、制御部２１は、伝送パケット５ａ〜５ｃを送信する際、比較判断部２５によりその伝送パケット５ａ〜５ｃそれぞれが最後の伝送パケットかどうかを判断する。
【００７３】
ここで、その伝送パケットが最後の伝送パケットでない場合には（ここでは伝送パケット５ａおよび５ｂが該当する）、その伝送パケットを即座に送信する。一方、それ以外の場合には（ここでは伝送パケット５ｃが該当する）、次のチェックポイント取得（図４の（４））を待って、その通信パケットを送信する。
【００７４】
障害発生時、最後のチェックポイント以降に作成された伝送パケットは、全てキャンセルする。しかし、この発明を用いると、本来なら障害発生時にキャンセルすべきパケットが、既に送信されている。
【００７５】
しかし、そのような場合でも、最後の伝送パケットは送信されておらず、すなわち分割前の通信パケットは送信完了とはなっていないため、受信側システムによるタイムアウト検知などにより通信パケットの再送が促されることになり、障害発生時にキャンセルすべきパケットが既に送信されていることになるが、問題ない。
【００７６】
すなわち、伝送パケットを送信する際に、すべての伝送パケットの送信を次のチェックポイント取得までー律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００７７】
次に、図５を参照して同実施形態の動作手順を説明する。
図５は、同実施形態の動作手順を説明するためのフローチャートである。
アプリケーション１が送信要求を発行すると、チェックポイント通信処理システム２の制御部２１は、パケット作成部２３によりこの送信要求にしたがった通信パケットを作成し（図５のステップＢ１）、さらにこの通信パケットを伝送媒体のパケットサイズで分割して複数の伝送パケットを作成する（図５のステップＢ２）。
【００７８】
そして、制御部２１は、属性情報付加部２４によりパケット作成部２３が作成した伝送パケットそれぞれに、その伝送パケットが複数作成された伝送パケットの中の最後の伝送パケットかどうかを示す情報を付加する（図５のステップＢ３）。
【００７９】
制御部２１は、伝送パケットを送信する際、比較判断部２５によりその伝送パケット５ａ〜５ｃそれぞれが最後の伝送パケットかどうかを判断する（図５のステップＢ４）。
【００８０】
そして、その伝送パケットが最後の伝送パケットでない場合には（図５のステップＢ４のＹ）、その伝送パケットを即座に送信する（図５のステップＢ６）。一方、それ以外の場合には（図５のステップＢ４のＮ）、次のチェックポイント取得を待って（図５のステップＢ５）、その伝送パケットを送信する（図５のステップＢ６）。
【００８１】
これにより、伝送パケットを送信する際に、すべての伝送パケットの送信を次のチェックポイント取得までー律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることとなる。
【００８２】
（実施形態３）
次に、図７、図８及び図９を参照して本発明の実施形態３を説明する。
図７は実施形態３に係るチェックポイント通信処理システムの概略構成を示す図である。
【００８３】
図７に示すように、同実施形態に係るチェックポイント通信処理システム５は、制御部５１、パケット生成部５２、送信パケット属性情報付加部５３、送信パケット比較判断部５４、受信パケット属性判断部５５を有してなる。
【００８４】
一方、通信相手側の通信処理システム７は、制御部７１、パケット生成部７２、受信パケット属性判断部７３を有してなる。
チェックポイント通信処理システム５と通信処理システム７は、それぞれ通信コントローラ６，９を介して接続されている。
【００８５】
チェックポイント通信システム５は、チェックポイントを取得しながら処理を進め、障害が発生したときに、最後に取得したチェックポイントから処理を再実行することにより障害からの回復を実現するコンピュータシステムの通信処理部分である。一方、通信処理システムはチェックポイント取得は行わないコンピュータシステムの通信処理部分である。
【００８６】
チェックポイント通信処理システム５の制御部５１は、チェックポイント通信処理システム５全体の制御を司る。
パケット生成部５２は、アプリケーション４からの送信要求に従って通信用の各種パケットを作成する。確認応答を伴うプロトコルのパケットもここで作成される。
【００８７】
送信パケット比較判断部５４は送信パケットのプロトコル種別の判断と、通信相手先及び順序番号の判定を行う。
送信パケット属性情報付加部５３は、故障が発生し直前のチェックポイント迄ロールバックした際に、２つ目の伝送パケットには順序番号初期化のメッセージを付加する部分である。
【００８８】
受信パケット属性判断部５５は、通信相手から、オーバーフローを告知するバケットが到着したかどうかを判定する部分である。
一方、通信処理システム７の制御部７１が従来の通信処理システムと異る部分は、受信パケット属性判断部７３である。すなわち、上記チェックポイント通信処理システム５から順序番号初期化のメッセージが到着したかを判定する部分である。
【００８９】
ここで、図８を参照して同実施形態の動作原理について説明する。
図８は、同実施形態の動作原理を説明するためのタイミングチャートである。アプリケーション４が送信要求を発行すると（第８図（１））、チェックポイント通信処理システム５の制御部５１は、パケット生成部５２によりこの送信要求に従った通信パケットを生成する（図８の（２））。
【００９０】
ここではこの通信要求に対し通信パケット６ａ〜６ｃの３つの順序番号付きの通信パケットが作成されるものとする。
また、このとき、制御部５１は送信パケット比較判断部５４により、２つ目以降のパケット（図８の６ｂ、６ｃ）はチェックポイントを待たずに通信コントローラを介して送信する（図８の（４）、（５））。先頭のパケット６ａについてはチェックポイント取得後に送信する（図８の（９））。
【００９１】
通信相手である、通信処理システム７の制御部７１では、順序番号で受信パケットを管理している。すなわち、先にパケット６ａ、６ｃを受信していても、パケット６ａを受信する迄はパケット６ｂ、６ｃの受信は完了していない。パケット６ａを受信した後に、パケット６ｃに対応する確認応答を発行する（図８の（１１）、（１２））。
【００９２】
チェックポイント通信処理システム５の制御部は、パケット６ｃの確認応答を受け取ったのちに次のパケットの送信を開始する（図８の（１３））。
ここで、もしチェックポイント取得以前（図８の（８）より以前）で故障が発生した場合には、先頭のパケットを通信相手側は受信していないため、少なくとも正しく再実行されない恐れのあるデータが、相手側に渡されることを防ぐことができる。
【００９３】
既に渡されている部分的なデータは、タイムアウト等により破棄されることになる。しかし、タイムアウトによる破棄は通信の接続を遮断してしまい、以降のアプリケーション（図７の４、８）間の通信に支障を来す可能性がある。これを防ぐために、本発明では順序番号の初期化と受信済の部分的なパケットの破棄を行う手段を追加する。これについては以下の動作手順で示す。
【００９４】
すなわち、第２実施形態と同様に、パケットを送信する際に、全てのパケットの送信を次のチェックポイント取得までー律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【００９５】
次に、図９を参照して、同実施形態の動作手順を説明する。
図９は、同実施形態の動作手順を説明するためのチェックポイント通信処理のフローチャートである。
【００９６】
アプリケーション４が送信要求を発行すると、チェックポイント通信処理システム５の制御部５１は、パケット生成部５２によりこの送信要求に従った通信パケットを生成し分割する（図９のステップＣ１、Ｃ２）。
【００９７】
そして、送信パケット比較部５４は、分割された伝送パケットのプロトコルを判定し（図９のステップＣ３）、確認応答手順のプロトコルでない場合には、例えば第１実施形態の処理を行う（図９のステップＣ４）。
【００９８】
一方、確認応答手順のプロトコルの場合にはさらに伝送パケットが最初のものであるか判定し（図９のステップＣ５）、最初のものである場合は次のチェックポイント採取迄待機させる（図９のステップＣ）。
【００９９】
２つ目以降の伝送パケットの場合には送信パケット数をカウントして実際に送信する（図９のステップＣ９、Ｃ１０）。
しかし、前回のチェックポイント採取以降の送信パケット数が閾値を超えた場合にはチェックポイントを採取してカウンタをリセットした後に実際の送信処理を行う（図９のステップＣ７、Ｃ８）。
【０１００】
また、故障により最後のチェックポイントに戻って処理が再実行された場合には、２つ目のパケットには順序番号初期化情報を付加した後に送信する（図９のステップＣ５、Ｃ１１）。
【０１０１】
通信相手側の通信処理システムは、順序番号初期化情報が付加されたパケットを受信した場合には、既に受信済の通信データの順序番号をリセットするだけでよい。
【０１０２】
一方、受信処理では、通信相手からオーバーフロー情報が付加されたパケットを受信した場合には、その通信相手へのパケットの伝送をー旦停止し、次のチェックポイントを開始する。パケットの伝送はチェックポイント採取後に再開される（図９のステップＤ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５）。
【０１０３】
これにより、第２実施形態と同様にパケットを送信する際に、全てのパケットの送信を次のチェックポイント取得まで一律に待機させるのではなく、その必要のあるものだけを待機させることとなり、耐障害性を保証しつつ通信処理の高速化が図れることになる。
【０１０４】
以上、第１、第２および第３の実施形態として、チェックポイント順次番号の管理およびパケットの相対位直の判定により通信制御を行なう例を示したが、これらを組み合わせた構成とすれば、さらに一層の高速化が図れることとなる。
【０１０５】
【発明の効果】
以上詳述したように本発明のチェックポイント通信処理システム、及びチェックポイント通信処理方法によれば、従来であればチェックポイント取得後まで遅延されていた通信処理を可能な限りチェックポイントを待たずに即時に発行させることができ、チェックポイント方式における通信処理のレイテンシを改善させることができる。
【図面の簡単な説明】
【図１】本発明の実施形態１に係るチェックポイント通信処理システムの概略構成を示すブロック図。
【図２】同実施形態１の動作原理を説明するためのタイミングチャート。
【図３】同実施形態１の動作手順を説明するためのフローチャート。
【図４】本発明の実施形態２の動作原理を説明するためのタイミングチャート。
【図５】同実施形態２の動作手順を説明するためのフローチャート。
【図６】同実施形態２に係るチェックポイント通信処理システムの概略構成を示すブロック図。
【図７】本発明の実施形態３に係るチェックポイント通信処理システムの概略構成を示すブロック図。
【図８】同実施形態３の動作原理を説明するためのタイミングチャート。
【図９】同実施形態３の動作手順を説明するためのフローチャート。
【図１０】従来の通信処理手順を説明するためのタイミングチャート。
【符号の説明】
１…アプリケーション、
２…チェックポイント通信処理システム、
３…通信コントローラ、
４…アプリケーション、
４ａ，４ｂ，４ｃ…通信パケット、
５…チェックポイント通信処理システム、
５ａ，５ｂ，５ｃ…伝送パケット、
６…通信コントローラ、
７…通信処理システム、
８…アプリケーション、
９…通信コントローラ、
１０…ネットワーク、
２１…制御部、
２２…順次番号インクリメント部、
２３…通信パケット作成部、
２４…属性情報付加部、
２５…比較部、
２６…伝送パケット作成部、
５１…制御部、
５２…パケット生成部、
５３…送信パケット属性情報付加部、
５４…送信パケット比較判断部、
５５…受信パケット属性判断部、
７１…制御部、
７２…パケット生成部、
７３…受信パケット属性判断部。
【図１】
0003833746.tif 000002
【図２】
0003833746.tif 000003
【図３】
0003833746.tif 000004
【図４】
0003833746.tif 000005
【図５】
0003833746.tif 000006
【図６】
0003833746.tif 000007
【図７】
0003833746.tif 000008
【図８】
0003833746.tif 000009
【図９】
0003833746.tif 000010
【図１０】
0003833746.tif 000011