(57)【要約】  現用系のノード装置（１０1）が、アプリケーションサーバ（２０）により行われるトランザクション処理によって、メモリに格納された業務データに対する更新指示が送信された場合に、その更新指示に基づいて、メモリに格納された業務データに対する更新内容を示す更新ログを生成し、生成した更新ログを、メモリを有する他の待機系のノード装置（１０2および１０3）に対してマルチキャストで配信することによって、複数のメモリ間におけるデータのミラー化を制御する。
2008105098.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ間におけるデータのミラー化をコンピュータに制御させるメモリミラー化制御プログラムであって、  アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手順と、  前記更新ログ生成手順により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手順と、  をコンピュータに実行させることを特徴とするメモリミラー化制御プログラム。
【請求項２】
前記メモリミラー化制御手順により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手順をさらにコンピュータに実行させることを特徴とする請求項１に記載のメモリミラー化制御プログラム。
【請求項３】
前記データ更新手順は、前記メモリミラー化制御手順により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする請求項２に記載のメモリミラー化制御プログラム。
【請求項４】
前記メモリミラー化制御手順は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする請求項１、２または３に記載のメモリミラー化制御プログラム。
【請求項５】
前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、  前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、  前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手順により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手順と、  をさらにコンピュータに実行させることを特徴とする請求項１に記載のメモリミラー化制御プログラム。
【請求項６】
前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、  前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、  前記更新ログ受信手順により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手順により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手順と、  をさらにコンピュータに実行させることを特徴とする請求項１に記載のメモリミラー化制御プログラム。
【請求項７】
複数のメモリ間におけるデータのミラー化をコンピュータが制御するメモリミラー化制御方法であって、前記コンピュータが、  アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成工程と、  前記更新ログ生成工程により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御工程と、  を実行することを特徴とするメモリミラー化制御方法。
【請求項８】
前記コンピュータが、さらに、  前記メモリミラー化制御工程により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成工程により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新工程を実行することを特徴とする請求項７に記載のメモリミラー化制御方法。
【請求項９】
前記データ更新工程において前記コンピュータは、前記メモリミラー化制御工程により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成工程により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする請求項８に記載のメモリミラー化制御方法。
【請求項１０】
前記メモリミラー化制御工程において前記コンピュータは、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする請求項７、８または９に記載のメモリミラー化制御方法。
【請求項１１】
前記コンピュータが、さらに、  前記メモリミラー化制御工程によりマルチキャストで配信された更新ログを受信する更新ログ受信工程と、  前記更新ログ受信工程により受信された更新ログを記憶装置に記憶させる更新ログ記憶工程と、  前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶工程により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製工程と、  を実行することを特徴とする請求項７に記載のメモリミラー化制御方法。
【請求項１２】
前記コンピュータが、さらに、  前記メモリミラー化制御工程によりマルチキャストで配信された更新ログを受信する更新ログ受信工程と、  前記更新ログ受信工程により受信された更新ログを記憶装置に記憶させる更新ログ記憶工程と、  前記更新ログ受信工程により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶工程により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製工程と、  をさらに含んだことを特徴とする請求項７に記載のメモリミラー化制御方法。
【請求項１３】
複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御装置であって、  アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手段と、  前記更新ログ生成手段により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手段と、  を備えたことを特徴とするメモリミラー化制御装置。
【請求項１４】
前記メモリミラー化制御手段により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手段をさらに備えたことを特徴とする請求項１３に記載のメモリミラー化制御装置。
【請求項１５】
前記データ更新手段は、前記メモリミラー化制御手段により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする請求項１４に記載のメモリミラー化制御装置。
【請求項１６】
前記メモリミラー化制御手段は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする請求項１３、１４または１５に記載のメモリミラー化制御装置。
【請求項１７】
前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、  前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、  前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手段により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、  をさらに備えたことを特徴とする請求項１３に記載のメモリミラー化制御装置。
【請求項１８】
前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、  前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、  前記更新ログ受信手段により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手段により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、  をさらに備えたことを特徴とする請求項１３に記載のメモリミラー化制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置に関するものである。
【背景技術】
【０００２】  従来、金融機関や交通機関のオンラインシステムに代表されるミッションクリティカルシステムは、「高信頼性」および「高速性」をともに実現することが求められている。【０００３】  このうち、高信頼性を実現するための技術としては、クラスタ技術やレプリケーション技術など、データベースの二重化を行う技術が一般的に用いられている。【０００４】  図６は、従来のデータベースにおけるクラスタ技術を示す図である。同図に示すように、クラスタ技術は、クラスタソフトウェアを使用してデータベースを冗長化構成とする方式であり、ハードウェアを冗長構成にする（同図に示す「ノード＃１」，「ノード＃２」，「ノード＃３」，・・・）ことによってデータベースを高信頼化させる技術として、社会基盤システムなどで採用されている。かかるクラスタ技術では、データの保全は共有ディスク（同図に示す「ディスク」）で保証される。【０００５】  図７は、従来のデータベースにおけるレプリケーション技術を示す図である。同図に示すように、レプリケーション技術は、複写元データベース（同図に示す「ノード＃１」）の更新結果のみを複写先データベース（同図に示す「ノード＃２」）に搬送して適用する方式であり、データベースの複製（レプリカ）を作る技術として、災害対策システムなどで採用されている。かかるレプリケーション技術では、複写先へのデータの転送方式としてＦＴＰ（File  Transfer  Protocol）転送が利用されている。【０００６】  一方、高速化を実現するための技術としては、近年、インメモリ・データベースが注目されている。インメモリ・データベースとは、データをディスク上ではなくメインメモリ上に格納することによって、アプリケーションからデータへのアクセスの高速化や負荷分散を実現したデータベースである（例えば、非特許文献１参照。）。【０００７】  図８は、インメモリ・データベースを説明するための図である。同図に示すように、インメモリ・データベースでは、ハードディスクに格納されたユーザデータがメモリに常駐され、業務アプリケーションは、メモリ内のユーザデータに対して更新を行う。メモリにアクセスするため、高速性を実現することができる。【０００８】  かかるインメモリ・データベースでは、高速性を実現するとともに、トランザクション処理を保証するためのログをディスクに書き出すことによって、データベースとしての信頼性を実現している。ログを用いて信頼性を実現する方式は、インメモリ・データベースに限らず、ディスクを記憶媒体とする従来のデータベースでも用いられていたものであり、この方式で用いられるログには、一般的には、ＢＩ(Before  Image)ログおよびＡＩ(After  Image)ログがある。【０００９】  ＢＩログは、データベースの更新前の内容を保持するログであり、主に、ロールバック時にデータベースの内容をトランザクションの更新前の状態に戻すために用いられる。一方、ＡＩログは、データベースの更新後の内容を保持するログであり、主に、ダウンリカバリ時に完結していたトランザクションのデータベースの更新内容を保証するために用いられる。【００１０】  ここで、ダウンリカバリについて説明すると、従来のダウンリカバリでは、ダウン後のデータベースの再���動時にトランザクションを認識し、ダウン時のトランザクションの状態によって、そのトランザクションを有効にするか無効にするかが選択される。【００１１】  具体的には、従来のダウンリカバリでは、ダウン時にコミット処理が完了していなかったトランザクションは無効とし、そのトランザクション中に行われたデータ更新も無効になる。一方、ダウン時にコミット処理が完了していたトランザクションは有効とし、そのトランザクション中に行われたデータ更新も有効になる。【００１２】  図９は、従来のデータベースにおけるダウンリカバリを説明するための図である。例えば、同図（１）に示すように、業務アプリケーションがユーザデータである「あ」を「い」に更新した後に、コミット処理を実行したとする。この時、同図（２）に示すように、ユーザデータである「あ」が「い」に更新されたことを示すログが、ハードディスクに保持される。【００１３】  そして、この後に、同図（３）に示すように、サーバダウンが発生したとする。この場合、データベースが再起動された際には、ログの情報に基づいてデータベースのユーザデータが最新状態に復旧される。例えば、同図（４）に示すように、データベースのユーザデータが「あ」から「い」に復旧される。【００１４】  このように、従来の技術では、インメモリ・データベースを用いることによって高速性を実現し、さらに、データの更新内容を示すログ（以下、「更新ログ」と呼ぶ）をハードディスクに保持することによって障害発生時のデータの復旧を可能にし、これにより、高信頼性を実現している。【００１５】
【非特許文献１】「Oracle  TimesTen  In-Memory  Database」、［平成１７年２月１５日検索］、インターネット＜URL:  http://otn.oracle.co.jp/products/timesten/＞
【発明の開示】
【発明が解決しようとする課題】
【００１６】  しかしながら、上述した従来の技術では、高信頼性を実現するためディスクに対して更新ログの書き込みを行うが、その際に発生するディスクへのアクセスによって、データベースの高速性が損なわれているという問題があった。この問題を解決するためには、インメモリ・データベースにおけるディスクへのアクセスを完全に排除する必要がある。【００１７】  しかし、ディスクへのアクセスを完全に排除する場合には、これまでディスクを用いて行われていた高信頼性を実現するための技術に替わって、ディスクを用いずに高信頼性を実現するための新たな技術が必要になり、これが、次世代に向けてミッションクリティカルシステムのさらなる高速性を追求するための大きな課題となっている。【００１８】  この発明は、上述した従来技術による課題を解決するためになされたものであり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるメモリミラー化制御プログラム、メモリミラー方法およびメモリミラー装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】  上述した課題を解決し、目的を達成するため、本発明は、複数のメモリ間におけるデータのミラー化をコンピュータに制御させるメモリミラー化制御プログラムであって、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手順と、前記更新ログ生成手順により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手順と、をコンピュータに実行させることを特徴とする。【００２０】  また、本発明は、上記の発明において、前記メモリミラー化制御手順により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手順をさらにコンピュータに実行させることを特徴とする。【００２１】  また、本発明は、上記の発明において、前記データ更新手順は、前記メモリミラー化制御手順により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする。【００２２】  また、本発明は、上記の発明において、前記メモリミラー化制御手順は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする。【００２３】  また、本発明は、上記の発明において、前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手順により記憶された更新ログに基づいて、当該メモリに格納されたデータを実更新するデータ複製手順と、をさらにコンピュータに実行させることを特徴とする。【００２４】  また、本発明は、上記の発明において、前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、前記更新ログ受信手順により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手順により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手順と、をさらにコンピュータに実行させることを特徴とする。【００２５】  また、本発明は、複数のメモリ間におけるデータのミラー化をコンピュータが制御するメモリ���ラー化制御方法であって、前記コンピュータが、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成工程と、前記更新ログ生成工程により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御工程と、を実行することを特徴とする。【００２６】  また、本発明は、上記の発明において、前記コンピュータが、さらに、前記メモリミラー化制御工程により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成工程により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新工程を実行することを特徴とする。【００２７】  また、本発明は、上記の発明において、前記データ更新工程において前記コンピュータは、前記メモリミラー化制御工程により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成工程により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする。【００２８】  また、本発明は、上記の発明において、前記メモリミラー化制御工程において前記コンピュータは、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする。【００２９】  また、本発明は、上記の発明において、前記コンピュータが、さらに、前記メモリミラー化制御工程によりマルチキャストで配信された更新ログを受信する更新ログ受信工程と、前記更新ログ受信工程により受信された更新ログを記憶装置に記憶させる更新ログ記憶工程と、前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶工程により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製工程と、を実行することを特徴とする。【００３０】  また、本発明は、上記の発明において、前記コンピュータが、さらに、前記メモリミラー化制御工程によりマルチキャストで配信された更新ログを受信する更新ログ受信工程と、前記更新ログ受信工程により受信された更新ログを記憶装置に記憶させる更新ログ記憶工程と、前記更新ログ受信工程により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶工程により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製工程と、をさらに含んだことを特徴とする。【００３１】  また、本発明は、複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御装置であって、アプリケーションにより行われるトランザクション処理によって、���定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手段と、前記更新ログ生成手段により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手段と、を備えたことを特徴とする。【００３２】  また、本発明は、上記の発明において、前記メモリミラー化制御手段により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手段をさらに備えたことを特徴とする。【００３３】  また、本発明は、上記の発明において、前記データ更新手段は、前記メモリミラー化制御手段により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする。【００３４】  また、本発明は、上記の発明において、前記メモリミラー化制御手段は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする。【００３５】  また、本発明は、上記の発明において、前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手段により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、をさらに備えたことを特徴とする。【００３６】  また、本発明は、上記の発明において、前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、前記更新ログ受信手段により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手段により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、をさらに備えたことを特徴とする。
【発明の効果】
【００３７】  本発明によれば、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成し、生成した更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間におけるデータのミラー化を制御するので、複数のメモリに同じデータを保持することが可能になり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるという効果を奏する。【００３８】  また、本発明によれば、配信した更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、生成した更新ログに基づいて、所定のメモリに格納されたデータを実更新するので、アプリケーションにより行われるトランザクション処理のレスポンスに影響を与えずに、メモリ間のミラー化を行うことができるという効果を奏する。【００３９】  また、本発明によれば、更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、生成した更新ログに基づいて、所定のメモリに格納されたデータを実更新するので、更新ログが全てのノード装置に到達したことを確認した上で、メモリに格納されたデータを更新することが可能になり、インメモリ・データベースの信頼性をさらに高めることができるという効果を奏する。【００４０】  また、本発明によれば、トランザクション処理が完結したことを示すコミット情報がアプリケーションから送信された場合に、更新ログを他のノード装置に対してマルチキャストで配信し、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、更新ログを破棄するので、トランザクション処理が正常に終了した場合のみメモリ間のミラー化を行うことが可能になり、トランザクション処理に異常が発生した際の影響範囲を最小限にとどめることができるという効果を奏する。【００４１】  また、本発明によれば、他のノード装置からマルチキャストで配信された更新ログを記憶装置に記憶させ、トランザクション処理によって、データに対する更新指示がマルチキャストで配信された場合に、記憶させておいた更新ログに基づいて、メモリに格納されたデータを実更新するので、マルチキャストで配信される更新指示を用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができるという効果を奏する。【００４２】  また、本発明によれば、他のノード装置からマルチキャストで配信された更新ログを記憶装置に記憶させ、更新ログを受信した場合に、その時点ですでに記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するので、マルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができるという効果を奏する。
【図面の簡単な説明】
【００４３】
【図１】図１は、本実施の形態に係るノード装置によるメモリミラー化の概念を説明するための図である。
【図２】図２は、本実施の形態に係るノード装置の構成を示す機能ブロック図である。
【図３】図３は、本実施の形態に係るノード装置の処理手順を示すフローチャートである。
【図４】図４は、本実施の形態に係るメモリミラー化プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図５】図５は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【図６】図６は、従来のデータベースにおけるクラスタ技術を示す図である。
【図７】図７は、従来のデータベースにおけるレプリケーション技術を示す図である。
【図８】図８は、インメモリ・データベースを説明するための図である。
【図９】図９は、従来のデータベースにおけるダウンリカバリを説明するための図である。
【符号の説明】
【００４４】１０1，１０2，１０3    ノード装置１１    トランザクション通信制御部１２    ノード間通信制御部１３    メモリ１３ａ    更新ログ１３ｂ    業務データ１４    制御部１４ａ    ログ生成部１４ｂ    ログ配信制御部１４ｃ    データ更新部１００    コンピュータ１１０    ＲＡＭ１１１    メモリミラー化プログラム１２０    ＣＰＵ１２１    メモリミラー化プロセス１３０    ＨＤＤ１４０    ＬＡＮインタフェース１５０    入出力インタフェース１６０    ＤＶＤドライブ１００１    市場管理サーバ１００２    ＤＢサーバ１００３    ネットワーク１００４    売買管理端末１００５    所内Ｗｅｂサーバ１００６    参加者ゲートウエイ１００７    参加者サーバ１００８    トレーディングサーバ１００１１    ステータス指示手段１００１２，１００１４    高信頼マルチキャスト１００１３    ステータス指示１００２１    スケジュール管理１００５１    規制指示手段１００６１    参加者連携アダプタ１００８１    注文ＤＡＭ１００８２    特別気配ＤＡＭ１００８３    板ＤＡＭ
【発明を実施するための最良の形態】
【００４５】  以下に添付図面を参照して、この発明に係るメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置の好適な実施の形態を詳細に説明する。なお、本実施の形態では、所定の業務サービスを提供するアプリケーションサーバのバックエンドで各種業務データをインメモリ・データベースに保持するノード装置において、複数のメモリ間におけるデータのミラー化を制御する場合について説明する。【００４６】  まず、本実施の形態に係るノード装置によるメモリミラー化の概念について説明する。図１は、本実施の形態に係るノード装置によるメモリミラー化の概念を説明するための図である。同図に示すように、本実施の形態に係るノード装置１０1〜１０3は、ノード装置１０1が現用系（Ａｃｔｉｖｅ）として、ノード装置１０2および１０3が待機系（Ｓｔａｎｄｂｙ）として動作するよう設定されており、図示していないネットワークを介して互いに接続され、さらに、所定の業務アプリケーションを用いて各種トランザクション処理を行うアプリケーションサーバ２０とも通信可能に接続されている。【００４７】  そして、かかる構成のもと、本実施の形態に係るノード装置は、アプリケーションサーバ２０により行われるトランザクション処理によって、メモリに格納された業務データに対する更新指示が送信された場合に、その更新指示に基づいて、メモリに格納された業務データに対する更新内容を示す更新ログを生成し、生成した更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間におけるデータのミラー化を制御する点に主な特徴がある。【００４８】  具体的には、ノード装置１０1は、アプリケーションサーバ２０により行われるトランザクション処理によって、業務データに対する更新指示がマルチキャストで配信されると（同図（１）参照）、その更新指示に基づいて、当該業務データに対する更新内容を示す更新ログを生成して、自装置のメモリに保持する（同図（２）参照）。一方、ノード装置１０2および１０3は、同様に更新指示が配信されても何ら処理を行わず、配信された更新指示を破棄する（同図（３）および（４）参照）。【００４９】  その後、ノード装置１０1は、トランザクション処理が完結したことを示すコミット情報がアプリケーションサーバ２０から送信されると、生成した更新ログを、同じ業務グループに属する他のノード装置（ここでは、ノード装置１０2および１０3）に対してマルチキャストで配信する（同図（５）参照）。更新ログを受信したノード装置１０2および１０3は、それぞれ、受信した更新ログを自装置のメモリに保持するとともに、更新ログを受信したことを示すＡＣＫ応答をノード装置１０1に対して返信する（同図（６）および（７）参照）。【００５０】  そして、ノード装置１０1は、ノード装置１０2および１０3の両方からＡＣＫ応答が返信されると、メモリに保持しておいた更新ログに基づいて、メモリに格納された業務データを実更新する（同図（８）参照）。一方、ノード装置１０2および１０3は、ノード装置１０1における業務データの更新とは非同期な所定のタイミングで、メモリに保持しておいた更新ログに基づいて、メモリに���納された業務データを実更新する（同図（９）および（１０）参照）。【００５１】  このような特徴により、本実施の形態に係るノード装置１０1、１０2および１０3は、複数のノード装置のメモリに同じ業務データを保持することを可能にし、これにより、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるようにしている。【００５２】  次に、本実施の形態に係るノード装置１０1〜１０3の構成について説明する。なお、これらノード装置１０1〜１０3はいずれも同様の構成を有するので、ここでは、ノード装置１０1を例にとって説明する。図２は、本実施の形態に係るノード装置１０1の構成を示す機能ブロック図である。同図に示すように、ノード装置１０1は、トランザクション通信制御部１１と、ノード間通信制御部１２と、メモリ１３と、制御部１４とを有する。【００５３】  トランザクション通信制御部１１は、アプリケーションサーバ２０との間でやり取りされるデータの送受信を制御する処理部である。具体的には、このトランザクション通信制御部１１は、ノード装置１０1が現用系として設定されていた場合には、アプリケーションサーバ２０からマルチキャストで配信される業務データの更新指示を受信すると、受信した更新指示を後述するログ生成部１４ａに引き渡す。【００５４】  また、トランザクション通信制御部１１は、トランザクション処理が完結したことを示すコミット情報をアプリケーションサーバ２０から受信すると、受信したコミット情報を後述するログ配信制御部１４ｂに引き渡す。【００５５】  また、トランザクション通信制御部１１は、後述するデータ更新部１４ｃから、メモリ１３に格納された業務データ１３ｂの実更新が完了したことが通知されると、アプリケーションサーバ２０に対して、業務データの更新が完了したことを示すコミット情報を送信する。【００５６】  一方、ノード装置１０1が待機系として設定されていた場合には、トランザクション通信制御部１１は、アプリケーションサーバ２０から業務データに対する更新指示を受信すると、受信した更新指示を破棄するとともに、後述するデータ更新部１４ｃに対して、当該更新指示を受信したことを通知する。【００５７】  ノード間通信制御部１２は、他のノード装置との間でやり取りされるデータの送受信を制御する処理部である。具体的には、このノード間通信制御部１２は、ノード装置１０1が現用系として設定されていた場合には、後述するログ配信制御部１４ｂから引き渡される更新ログ１３ａを他のノード装置に対してマルチキャストで配信する。また、ノード間通信制御部１２は、更新ログを受信したことを示すＡＣＫ応答を他のノード装置から受信すると、後述するデータ更新部１４ｃに対して、当該ＡＣＫ応答を受信したことを通知する。【００５８】  一方、ノード装置１０1が待機系として設定されていた場合には、ノード間通信制御部１２は、現用系として設定されている他のノード装置からマルチキャストで配信される更新ログを受信すると、受信した更新ログを後述するログ配信制御部１４ｂに引き渡すとともに、当該更新ログを受信したことを示すＡＣＫ応答を、現用系のノード装置に対して返信する。【００５９】  メモリ１３は、各種のデ��タやプログラムを記憶する記憶部であり、本発明に関連するものとしては、更新ログ１３ａと、業務データ１３ｂとを記憶する。ここで、更新ログ１３ａは、業務データ１３ｂに対する更新内容を示すデータであり、アプリケーションサーバ２０によって配信される更新指示に基づいて生成される。また、業務データ１３ｂは、アプリケーションサーバ２０が提供する業務サービスに関する各種の業務データであり、図示していないインメモリ・データベースによって管理される。【００６０】  制御部１４は、ノード装置１０1の全体制御を行う制御部であり、本発明に関連するものとしては、ログ生成部１４ａと、ログ配信制御部１４ｂと、データ更新部１４ｃとを有する。【００６１】  ログ生成部１４ａは、業務データ１３ｂに対する更新内容を示す更新ログ１３ａを生成する処理部である。具体的には、このログ生成部１４ａは、トランザクション通信制御部１１から業務データに対する更新指示が引き渡されると、その更新指示に基づいて、更新ログ１３ａを生成し、生成した更新ログ１３ａをメモリ１３に記憶させる。【００６２】  ログ配信制御部１４ｂは、ログ生成部１４ａにより生成された更新ログ１３ａを他の複数のノード装置に対して配信したり、他のノード装置から配信された更新ログをメモリ１３に記憶させることによって、複数のメモリ間におけるデータのミラー化を制御する処理部である。【００６３】  具体的には、このログ配信制御部１４ｂは、ノード装置１０1が現用系として設定されていた場合には、トランザクション通信制御部１１から、トランザクション処理が完結したことを示すコミット情報が引き渡されると、メモリ１３に保持されている更新ログ１３ａをノード間通信制御部１２に引き渡すことによって、当該更新ログ１３ａを、他の複数のノード装置に対してマルチキャストで配信する。【００６４】  なお、ログ配信制御部１４ｂは、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、メモリ１３に保持されている更新ログ１３ａを破棄する。これにより、異常となったトランザクション処理による業務データ１３ｂに対する更新は、他のノード装置の業務データには反映されないように制御することができる。【００６５】  一方、ノード装置１０1が待機系として設定されていた場合には、ログ配信制御部１４ｂは、ノード間通信制御部１２から更新ログが引き渡されると、当該更新ログをメモリ１３に記憶させる。【００６６】  データ更新部１４ｃは、メモリ１３に保持されている更新ログ１３ａに基づいて、他の複数のノード装置において行われる業務データの更新とは非同期に、業務データ１３ｂを実更新する処理部である。【００６７】  具体的には、このデータ更新部１４ｃは、ノード装置１０1が現用系として設定されていた場合には、ノード間通信制御部１２によって、ログ配信制御部１４ｂにより更新ログが配信された全てのノード装置からＡＣＫ応答を受信したことが通知されると、メモリ１３に保持されている更新ログ１３ａに基づいて、業務データ１３ｂを実更新する。そして、業務データ１３ｂの実更新が完了した後に、データ更新部１４ｃは、業務データの更新が完了したことを示すコミット情報を、トランザクション通信制御部１１に通知することによって、当該コミット情報をアプリケーションサーバ２０に対して送信する。【００６８】  一方、ノード装置１０1が待機系として設定されていた場合には、データ更新部１４ｃは、トランザクション通信制御部１１から、業務データに対する更新指示を受信したことが通知されると、メモリ１３に保持されている更新ログ１３ａに基づいて、業務データ１３ｂを実更新する。【００６９】  このように、現用系として設定されているノード装置において行われる業務データの更新と、待機系として設定されているノード装置において行われる業務データの更新とは、それぞれ非同期に行われる。【００７０】  次に、本実施の形態に係るノード装置の処理手順について説明する。図３は、本実施の形態に係るノード装置の処理手順を示すフローチャートである。同図は、図１に示したノード装置１０1〜１０3の処理手順を示しており、ノード装置１０1が現用系のノード装置（以下、「Ａｃｔｉｖｅノード」と呼ぶ）として、ノード装置１０2および１０3が待機系のノード装置（以下、「Ｓｔａｎｄｂｙノード」と呼ぶ）として、それぞれ設定されているとする。【００７１】  同図に示すように、まず、アプリケーションサーバ２０から業務データに対する更新指示がマルチキャストで配信されると（ステップＳ１０１）、ノード装置１０1では、トランザクション通信制御部１１が、配信された更新指示を受信し、ログ生成部１４ａが、当該更新指示に基づいて更新ログ１３ａを生成する（ステップＳ１０２）。【００７２】  一方、ノード装置１０2および１０3では、それぞれのトランザクション通信制御部が、配信された更新指示を受信し、受信した更新指示を破棄する（ステップＳ１０３およびＳ１０４）。【００７３】  その後、アプリケーションサーバ２０からコミット情報（ＣＯＭＭＩＴ）が送信（発行）されると（ステップＳ１０５）、ノード装置１０1では、トランザクション通信制御部１１が、送信されたコミット情報を受信し、ログ配信制御部１４ｂが、更新ログ１３ａをＳｔａｎｄｂｙノード（ノード装置１０2および１０3）にマルチキャストで配信する（ステップＳ１０６）。【００７４】  更新ログ１３ａが配信されると、ノード装置１０2および１０3では、それぞれのノード間通信制御部が、更新ログ１３ａを受信し、それぞれ、Ａｃｔｉｖｅノード（ノード装置１０1）に対してＡＣＫ応答を返信する（ステップＳ１０７およびＳ１０８）。【００７５】  そして、全てのＳｔａｎｄｂｙノード装置からＡＣＫ応答が返信されると、ノード装置１０1では、ノード間通信制御部１２が、それぞれのＡＣＫ応答を受信し（ステップＳ１０９）、データ更新部１４ｃが、メモリ１３に保持された業務データ１３ｂを実更新し（ステップＳ１１０）、トランザクション通信制御部１１が、アプリケーションサーバ２０に対してコミット情報（ＣＯＭＭＩＴ）を送信（復帰）する（ステップＳ１１１）。【００７６】  そして、上述したノード装置１０1（Ａｃｔｉｖｅノード）における業務データの更新とは非同期に、ノード装置１０2および１０3では、それぞれのデータ更新部１４ｃが、自装置のメモリに保持された業務データを実更新する（ステップＳ１１２およびＳ１１３）。【��０７７】  上述してきたように、本実施の形態では、アプリケーションサーバ２０により行われるトランザクション処理によって、メモリに格納された業務データに対する更新指示が送信された場合に、当該更新指示に基づいて、ログ生成部１４ａが、メモリ１３に格納された業務データ１３ｂに対する更新内容を示す更新ログ１３ａを生成し、生成した更新ログ１３ａを、ログ配信制御部１４ｂが、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間における業務データのミラー化を制御するので、複数のメモリに同じ業務データを保持することが可能になり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができる。【００７８】  また、本実施の形態では、データ更新部１４ｃが、配信した更新ログ１３ａに基づいて他の複数のノード装置において行われる業務データの更新とは非同期に、生成した更新ログ１３ａに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、アプリケーションサーバ２０により行われるトランザクション処理のレスポンスに影響を与えずに、メモリ間のミラー化を行うことができる。【００７９】  また、本実施の形態では、データ更新部１４ｃが、更新ログ１３ａが配信された全てのノード装置から更新ログ１３ａを受信したことを示すＡＣＫ応答が返信された場合に、生成した更新ログ１３ａに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、更新ログ１３ａが全てのノード装置に到達したことを確認した上で、メモリ１３に格納された業務データ１３ｂを更新することが可能になり、インメモリ・データベースの信頼性をさらに高めることができる。【００８０】  また、本実施の形態では、ログ配信制御部１４ｂが、トランザクション処理が完結したことを示すコミット情報がアプリケーションサーバ２０から送信された場合に、更新ログ１３ａを他のノード装置に対してマルチキャストで配信し、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、更新ログを破棄するので、トランザクション処理が正常に終了した場合のみメモリ間のミラー化を行うことが可能になり、トランザクション処理に異常が発生した際の影響範囲を最小限にとどめることができる。【００８１】  また、本実施の形態では、ログ配信制御部１４ｂが、他のノード装置からマルチキャストで配信された更新ログをメモリ１３に記憶させ、アプリケーションサーバ２０によるトランザクション処理によって、業務データに対する更新指示がマルチキャストで配信された場合に、記憶させておいた更新ログに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、アプリケーションサーバ２０からマルチキャストで配信される更新指示を用いて、各ノード装置における業務データの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。【００８２】  また、本実施の形態では、ログ配信制御部１４ｂが、他のノード装置からマルチキャストで配信された更新ログをメモリ１３に記憶させ、更新ログを受信した場合に、その時点ですでに記憶されていた更新ログに基づいて、メモリ１３に格納された業務データ１３��を実更新するので、他のノード装置からマルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。【００８３】  なお、本実施の形態では、データ更新部１４ｃが、ノード装置１０1が待機系として設定されていた場合に、アプリケーションサーバ２０からマルチキャストで配信される更新指示を契機に業務データ１３ｂを更新する場合について説明したが、本発明はこれに限られるわけではない。【００８４】  例えば、ノード間通信制御部１２が、現用系として設定されている他のノード装置からマルチキャストで配信される更新ログを受信した際に、当該更新ログを受信したことをデータ更新部１４ｃに対して通知し、データ更新部１４ｃが、その通知を受け付けた場合に、その時点ですでにメモリ１３により保持されていた更新ログ１３ａに基づいて、業務データ１３ｂを実更新するようにしてもよい。【００８５】  これにより、マルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。【００８６】  また、本実施の形態では、メモリミラー化を行うノード装置について説明したが、かかるノード装置が有する構成をソフトウェアによって実現することで、同様の機能を有するメモリミラー化プログラムを得ることができる。そこで、このメモリミラー化プログラムを実行するコンピュータについて説明する。【００８７】  図４は、本実施の形態に係るメモリミラー化プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ１００は、ＲＡＭ（Random  Access  Memory）１１０と、ＣＰＵ（Central  Processing  Unit）１２０と、ＨＤＤ（Hard  Disk  Drive）１３０と、ＬＡＮ（Local  Area  Network）インタフェース１４０と、入出力インタフェース１５０と、ＤＶＤ（Digital  Versatile  Disk）ドライブ１６０とを有する。【００８８】  ＲＡＭ１１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、図２に示したメモリ１３に対応し、更新ログ１３ａや業務データ１３ｂなども記憶する。ＣＰＵ１２０は、ＲＡＭ１１０からプログラムを読み出して実行する中央処理装置である。【００８９】  ＨＤＤ１３０は、プログラムやデータを格納するディスク装置である。ＬＡＮインタフェース１４０は、コンピュータ１００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースであり、ノード装置として動作するコンピュータ１００を、アプリケーションサーバ２０や他のノード装置に接続する。【００９０】  入出力インタフェース１５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ１６０は、ＤＶＤの読み書きを行う装置である。【００９１】  そして、このコンピュータ１００において実行されるメモリミラー化プログラム１１１は、ＤＶＤに記憶され、ＤＶＤドライブ１６０によってＤＶＤから読み出されてコンピュータ１００にインストールされる。【００９２】  あるいは、このメモリミラー化プログラム１１１は、ＬＡＮインタフェース１４０を介して接続され��他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ１００にインストールされる。【００９３】  そして、インストールされたメモリミラー化プログラム１１１は、ＨＤＤ１３０に記憶され、ＲＡＭ１１０に読み出されてＣＰＵ１２０によってメモリミラー化プロセス１２１として実行される。【００９４】  また、本実施の形態では、説明の便宜上、２台のノード装置を待機系として設定した場合について説明したが、本発明はこれに限られるわけではなく、待機系として設定されるノード装置は１台であってもよいし、３台以上であってもよい。すなわち、本実施の形態では、信頼性の要件によって、複数台のノード装置を待機系として設定して、データベースの冗長化を行うことができる。【００９５】  そして、待機系として設定されたノード装置には、現用系として設定されたノード装置と同じ内容の業務データが保持されるので、ネットワーク障害などによって現用系のノード装置の業務データを参照できないような場合でも、待機系のノード装置のデータベースを参照することによって、業務データの確認を行うことができる。【００９６】  さらに、本実施の形態に係るノード装置では、障害が発生した場合に、所定のリカバリ処理手段を用いて、以下のようにしてリカバリを行うことができる。【００９７】  まず、現用系のノード装置に障害が発生した場合には、リカバリ処理手段は、その現用系のノード装置を停止するとともに、待機系のノード装置のうちいずれか一台を新たに現用系として設定する。この時、リカバリ処理手段は、新たに現用系として設定したノード装置に対して、障害が発生したノード装置には更新ログを配信しないように設定する。具体的には、リカバリ処理手段は、ノード間通信制御部１２による更新ログの配信の基準となるマルチキャストアドレスから、障害が発生したノード装置のアドレスを除外する。【００９８】  続いて、リカバリ処理手段は、新たに現用系として設定したノード装置のメモリ、および、その他の待機系のノード装置のメモリを参照して、業務データへの更新ログの反映状況を確認し、全てのノード装置について、更新ログが正しく反映されていることを確認した場合には、新たに現用系として設定したノード装置からアプリケーションサーバ２０に対して、業務データの更新が完了したことを示すコミット情報を送信する。【００９９】  ここで、更新ログが業務データに正しく反映されていないノード装置があった場合には、リカバリ処理手段は、すでに更新ログが反映されている業務データをロールバックすることによって、メモリ内の業務データの整合性を保証する。そして、リカバリ処理手段は、以上の一連のリカバリ処理が完了したことを契機に、新たに現用系として設定したノード装置を用いて、業務を再開させる。【０１００】  一方、待機系のノード装置に障害が発生した場合には、リカバリ処理手段は、その待機系のノード装置を停止するとともに、現用系のノード装置に対して、障害が発生したノード装置には更新ログを配信しないように設定する。具体的には、リカバリ処理手段は、ノード間通信制御部１２による更新ログの配信の基準となるマルチキャストアドレスから���障害が発生したノード装置のアドレスを除外する。【０１０１】  リカバリ処理手段が以上のリカバリ処理を行っている間も、現用系のノード装置は稼動を続けている。そのため、待機系のノード装置に障害が発生した場合には、アプリケーションサーバ２０によるトランザクション処理、すなわち、アプリケーションサーバ２０により提供される業務サービスには、リカバリ処理によって何ら影響が及ぼされることはない。【０１０２】  また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。【０１０３】  この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１０４】  また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。【０１０５】  さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【実施例】
【０１０６】  以下に、証券取引システムにおける実施例を示す。図５は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。【０１０７】  まず、１００１は市場管理サーバであり、上記した実施の形態のアプリケーションサーバ２０に該当するサーバである。この市場管理サーバ１００１は、ＤＢサーバ１００２のスケジュール管理１００２１に蓄積されているスケジュール情報に基づき、ステータス指示手段１００１１がネットワーク１００３を介して上記した実施の形態に示した手順によりステータス指示のマルチキャスト通信を行う（図９では高信頼マルチキャスト１００１２と明記）。【０１０８】  また、売買管理端末１００４からの規制指示を受け所内Ｗｅｂサーバ１００５の規制指示手段１００５１が出力する規制指示情報を市場管理サーバ１００１が受けると、市場管理サーバ１００１内のステータス指示１００１３がネットワーク１００３を介して上記した実施の形態に示した手順により規制指示のマルチキャスト通信を行う（図５では高信頼マルチキャスト１００１４と明記）。【０１０９】  １００６は、証券取引の参加者への各種通知を行う参加者ゲートウエイであり、市場管理サーバ１００１からの各種高信頼マルチキャストの情報を参加者連携アダプタ１００６１が受けると、参加者連携アダプタ１００６１が参加者へ通知すべき内容かを判断し、通知を行うと判断されたマルチキャスト情報については、市場管理電文として参加者サーバ１００７へ送信を行う。【０１１０】  また、１００８は、トレーディングサーバであり、注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２、板ＤＡＭ１００８３を有する。  これらの注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２、板ＤＡＭ１００８３は、各々、上記してきた業務グループ単位のノード装置１０1、１０2および１０3にて示されたノード装置群である。【０１１１】  即ち、これら注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２および板ＤＡＭ１００８３は、市場管理サーバ１００１からの高信頼マルチキャスト１００１２や１００１４を受信すると、自身に関係のある情報であるかを判断し、図３に示した手順により処理を行う。【０１１２】  このように、各ＤＡＭや参加者へは全てマルチキャスト送信により指示が行われるため、ステータス変更タイミングや通知タイミングの誤差を最小限に抑える事が可能となる。更に、トレーディングサーバ１００８の処理と参加者ゲートウエイ１００６を介した参加者サーバ１００７への通知を並行して処理するため、より高速に参加者へのステータス変更などの通知を行う事が可能となる。【０１１３】  さらに、各ＤＡＭも本発明の実施の形態の手順により処理を行う事で、高速かつ信頼性の高い処理を可能とする。
【産業上の利用可能性】
【０１１４】  以上のように、本発明に係るメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置は、高信頼性および高速性をともに実現することが求められるミッションクリティカルシステムに有用であり、特に、ディスクを用いずにインメモリ・データベースの高信頼性を実現する場合に適している。
【図１】
2008105098.tif 000003
【図２】
2008105098.tif 000004
【図３】
2008105098.tif 000005
【図４】
2008105098.tif 000006
【図５】
2008105098.tif 000007
【図６】
2008105098.tif 000008
【図７】
2008105098.tif 000009
【図８】
2008105098.tif 000010
【図９】
2008105098.tif 000011
【手続補正書】
【提出日】平成21年5月1日(2009.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のメモリ間におけるデータのミラー化をコンピュータに制御させるメモリミラー化制御プログラムであって、
アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手順と、
前記更新ログ生成手順により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手順と、
をコンピュータに実行させることを特徴とするメモリミラー化制御プログラム。
【請求項２】
前記メモリミラー化制御手順により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手順をさらにコンピュータに実行させることを特徴とする請求項１に記載のメモリミラー化制御プログラム。
【請求項３】
前記データ更新手順は、前記メモリミラー化制御手順により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする請求項２に記載のメモリミラー化制御プログラム。
【請求項４】
前記メモリミラー化制御手順は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする請求項１、２または３に記載のメモリミラー化制御プログラム。
【請求項５】
前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、
前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、
前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手順により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手順と、
をさらにコンピュータに実行させることを特徴とする請求項１に記載のメモリミラー化制御プログラム。
【請求項６】
複数のメモリ間におけるデータのミラー化をコンピュータが制御するメモリミラー化制御方法であって、
前記コンピュータが、
アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成工程と、
前記更新ログ生成工程により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御工程と、
を実行することを特徴とするメモリミラー化制御方法。
【請求項７】
複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御装置であって、
アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手段と、
前記更新ログ生成手段により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手段と、
を備えたことを特徴とするメモリミラー化制御装置。
【請求項８】
前記メモリミラー化制御手段により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手段をさらに備えたことを特徴とする請求項７に記載のメモリミラー化制御装置。
【請求項９】
前記データ更新手段は、前記メモリミラー化制御手段により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする請求項８に記載のメモリミラー化制御装置。
【請求項１０】
前記メモリミラー化制御手段は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする請求項７、８または９に記載のメモリミラー化制御装置。
【請求項１１】
前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、
前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、
前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手段により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、
をさらに備えたことを特徴とする請求項７に記載のメモリミラー化制御装置。
【請求項１２】
前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、
前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、
前記更新ログ受信手段により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手段により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、
をさらに備えたことを特徴とする請求項７に記載のメモリミラー化制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置に関するものである。
【背景技術】
【０００２】
従来、金融機関や交通機関のオンラインシステムに代表されるミッションクリティカルシステムは、「高信頼性」および「高速性」をともに実現することが求められている。
【０００３】
このうち、高信頼性を実現するための技術としては、クラスタ技術やレプリケーション技術など、データベースの二重化を行う技術が一般的に用いられている。
【０００４】
図６は、従来のデータベースにおけるクラスタ技術を示す図である。同図に示すように、クラスタ技術は、クラスタソフトウェアを使用してデータベースを冗長化構成とする方式であり、ハードウェアを冗長構成にする（同図に示す「ノード＃１」，「ノード＃２」，「ノード＃３」，・・・）ことによってデータベースを高信頼化させる技術として、社会基盤システムなどで採用されている。かかるクラスタ技術では、データの保全は共有ディスク（同図に示す「ディスク」）で保証される。
【０００５】
図７は、従来のデータベースにおけるレプリケーション技術を示す図である。同図に示すように、レプリケーション技術は、複写元データベース（同図に示す「ノード＃１」）の更新結果のみを複写先データベース（同図に示す「ノード＃２」）に搬送して適用する方式であり、データベースの複製（レプリカ）を作る技術として、災害対策システムなどで採用されている。かかるレプリケーション技術では、複写先へのデータの転送方式としてＦＴＰ（File  Transfer  Protocol）転送が利用されている。
【０００６】
一方、高速化を実現するための技術としては、近年、インメモリ・データベースが注目されている。インメモリ・データベースとは、データをディスク上ではなくメインメモリ上に格納することによって、アプリケーションからデータへのアクセスの高速化や負荷分散を実現したデータベースである（例えば、非特許文献１参照。）。
【０００７】
図８は、インメモリ・データベースを説明するための図である。同図に示すように、インメモリ・データベースでは、ハードディスクに格納されたユーザデータがメモリに常駐され、業務アプリケーションは、メモリ内のユーザデータに対して更新を行う。メモリにアクセスするため、高速性を実現することができる。
【０００８】
かかるインメモリ・データベースでは、高速性を実現するとともに、トランザクション処理を保証するためのログをディスクに書き出すことによって、データベースとしての信頼性を実現している。ログを用いて信頼性を実現する方式は、インメモリ・データベースに限らず、ディスクを記憶媒体とする従来のデータベースでも用いられていたものであり、この方式で用いられるログには、一般的には、ＢＩ(Before  Image)ログおよびＡＩ(After  Image)ログがある。
【０００９】
ＢＩログは、データベースの更新前の内容を保持するログであり、主に、ロールバック時にデータベースの内容をトランザクションの更新前の状態に戻すために用いられる。一方、ＡＩログは、データベースの更新後の内容を保持するログであり、主に、ダウンリカバリ時に完結していたトランザクションのデータベースの更新内容を保証するために用いられる。
【００１０】
ここで、ダウンリカバリについて説明すると、従来のダウンリカバリでは、ダウン後のデータベースの再起動時にトランザクションを認識し、ダウン時のトランザクションの状態によって、そのトランザクションを有効にするか無効にするかが選択される。
【００１１】
具体的には、従来のダウンリカバリでは、ダウン時にコミット処理が完了していなかったトランザクションは無効とし、そのトランザクション中に行われたデータ更新も無効になる。一方、ダウン時にコミット処理が完了していたトランザクションは有効とし、そのトランザクション中に行われたデータ更新も有効になる。
【００１２】
図９は、従来のデータベースにおけるダウンリカバリを説明するための図である。例えば、同図（１）に示すように、業務アプリケーションがユーザデータである「あ」を「い」に更新した後に、コミット処理を実行したとする。この時、同図（２）に示すように、ユーザデータである「あ」が「い」に更新されたことを示すログが、ハードディスクに保持される。
【００１３】
そして、この後に、同図（３）に示すように、サーバダウンが発生したとする。この場合、データベースが再起動された際には、ログの情報に基づいてデータベースのユーザデータが最新状態に復旧される。例えば、同図（４）に示すように、データベースのユーザデータが「あ」から「い」に復旧される。
【００１４】
このように、従来の技術では、インメモリ・データベースを用いることによって高速性を実現し、さらに、データの更新内容を示すログ（以下、「更新ログ」と呼ぶ）をハードディスクに保持することによって障害発生時のデータの復旧を可能にし、これにより、高信頼性を実現している。
【００１５】
【非特許文献１】「Oracle  TimesTen  In-Memory  Database」、［平成１７年２月１５日検索］、インターネット＜URL:  http://otn.oracle.co.jp/products/timesten/＞
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述した従来の技術では、高信頼性を実現するためディスクに対して更新ログの書き込みを行うが、その際に発生するディスクへのアクセスによって、データベースの高速性が損なわれているという問題があった。この問題を解決するためには、インメモリ・データベースにおけるディスクへのアクセスを完全に排除する必要がある。
【００１７】
しかし、ディスクへのアクセスを完全に排除する場合には、これまでディスクを用いて行われていた高信頼性を実現するための技術に替わって、ディスクを用いずに高信頼性を実現するための新たな技術が必要になり、これが、次世代に向けてミッションクリティカルシステムのさらなる高速性を追求するための大きな課題となっている。
【００１８】
この発明は、上述した従来技術による課題を解決するためになされたものであり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるメモリミラー化制御プログラム、メモリミラー方法およびメモリミラー装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上述した課題を解決し、目的を達成するため、本発明は、複数のメモリ間におけるデータのミラー化をコンピュータに制御させるメモリミラー化制御プログラムであって、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手順と、前記更新ログ生成手順により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手順と、をコンピュータに実行させることを特徴とする。
【００２０】
また、本発明は、上記の発明において、前記メモリミラー化制御手順により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手順をさらにコンピュータに実行させることを特徴とする。
【００２１】
また、本発明は、上記の発明において、前記データ更新手順は、前記メモリミラー化制御手順により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手順により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする。
【００２２】
また、本発明は、上記の発明において、前記メモリミラー化制御手順は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする。
【００２３】
また、本発明は、上記の発明において、前記メモリミラー化制御手順によりマルチキャストで配信された更新ログを受信する更新ログ受信手順と、前記更新ログ受信手順により受信された更新ログを記憶装置に記憶させる更新ログ記憶手順と、前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手順により記憶された更新ログに基づいて、当該メモリに格納されたデータを実更新するデータ複製手順と、をさらにコンピュータに実行させることを特徴とする。
【００２４】
また、本発明は、複数のメモリ間におけるデータのミラー化をコンピュータが制御するメモリミラー化制御方法であって、前記コンピュータが、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成工程と、前記更新ログ生成工程により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御工程と、を実行することを特徴とする。
【００２５】
また、本発明は、複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御装置であって、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、前記所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成する更新ログ生成手段と、前記更新ログ生成手段により生成された更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、前記複数のメモリ間におけるデータのミラー化を制御するメモリミラー化制御手段と、を備えたことを特徴とする。
【００２６】
また、本発明は、上記の発明において、前記メモリミラー化制御手段により配信された更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新するデータ更新手段をさらに備えたことを特徴とする。
【００２７】
また、本発明は、上記の発明において、前記データ更新手段は、前記メモリミラー化制御手段により更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、前記更新ログ生成手段により生成された更新ログに基づいて、前記所定のメモリに格納されたデータを実更新することを特徴とする。
【００２８】
また、本発明は、上記の発明において、前記メモリミラー化制御手段は、前記トランザクション処理が完結したことを示すコミット情報が前記アプリケーションから送信された場合に、前記更新ログを他のノード装置に対してマルチキャストで配信し、前記コミット情報が送信される前に前記トランザクション処理の異常を検知した場合には、前記更新ログを破棄することを特徴とする。
【００２９】
また、本発明は、上記の発明において、前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、前記トランザクション処理によって、前記データに対する更新指示がマルチキャストで配信された場合に、前記更新ログ記憶手段により記憶された更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、をさらに備えたことを特徴とする。
【００３０】
また、本発明は、上記の発明において、前記メモリミラー化制御手段によりマルチキャストで配信された更新ログを受信する更新ログ受信手段と、前記更新ログ受信手段により受信された更新ログを記憶装置に記憶させる更新ログ記憶手段と、前記更新ログ受信手段により更新ログが受信された場合に、その時点ですでに前記更新ログ記憶手段により記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するデータ複製手段と、をさらに備えたことを特徴とする。
【発明の効果】
【００３１】
本発明によれば、アプリケーションにより行われるトランザクション処理によって、所定のメモリに格納されたデータに対する更新指示が送信された場合に、当該更新指示に基づいて、所定のメモリに格納されたデータに対する更新内容を示す更新ログを生成し、生成した更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間におけるデータのミラー化を制御するので、複数のメモリに同じデータを保持することが可能になり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるという効果を奏する。
【００３２】
また、本発明によれば、配信した更新ログに基づいて他の複数のノード装置において行われるデータの更新とは非同期に、生成した更新ログに基づいて、所定のメモリに格納されたデータを実更新するので、アプリケーションにより行われるトランザクション処理のレスポンスに影響を与えずに、メモリ間のミラー化を行うことができるという効果を奏する。
【００３３】
また、本発明によれば、更新ログが配信された全てのノード装置から更新ログを受信したことを示す応答が返信された場合に、生成した更新ログに基づいて、所定のメモリに格納されたデータを実更新するので、更新ログが全てのノード装置に到達したことを確認した上で、メモリに格納されたデータを更新することが可能になり、インメモリ・データベースの信頼性をさらに高めることができるという効果を奏する。
【００３４】
また、本発明によれば、トランザクション処理が完結したことを示すコミット情報がアプリケーションから送信された場合に、更新ログを他のノード装置に対してマルチキャストで配信し、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、更新ログを破棄するので、トランザクション処理が正常に終了した場合のみメモリ間のミラー化を行うことが可能になり、トランザクション処理に異常が発生した際の影響範囲を最小限にとどめることができるという効果を奏する。
【００３５】
また、本発明によれば、他のノード装置からマルチキャストで配信された更新ログを記憶装置に記憶させ、トランザクション処理によって、データに対する更新指示がマルチキャストで配信された場合に、記憶させておいた更新ログに基づいて、メモリに格納されたデータを実更新するので、マルチキャストで配信される更新指示を用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができるという効果を奏する。
【００３６】
また、本発明によれば、他のノード装置からマルチキャストで配信された更新ログを記憶装置に記憶させ、更新ログを受信した場合に、その時点ですでに記憶されていた更新ログに基づいて、メモリに格納されたデータを実更新するので、マルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００３７】
以下に添付図面を参照して、この発明に係るメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置の好適な実施の形態を詳細に説明する。なお、本実施の形態では、所定の業務サービスを提供するアプリケーションサーバのバックエンドで各種業務データをインメモリ・データベースに保持するノード装置において、複数のメモリ間におけるデータのミラー化を制御する場合について説明する。
【００３８】
まず、本実施の形態に係るノード装置によるメモリミラー化の概念について説明する。図１は、本実施の形態に係るノード装置によるメモリミラー化の概念を説明するための図である。同図に示すように、本実施の形態に係るノード装置１０1〜１０3は、ノード装置１０1が現用系（Ａｃｔｉｖｅ）として、ノード装置１０2および１０3が待機系（Ｓｔａｎｄｂｙ）として動作するよう設定されており、図示していないネットワークを介して互いに接続され、さらに、所定の業務アプリケーションを用いて各種トランザクション処理を行うアプリケーションサーバ２０とも通信可能に接続されている。
【００３９】
そして、かかる構成のもと、本実施の形態に係るノード装置は、アプリケーションサーバ２０により行われるトランザクション処理によって、メモリに格納された業務データに対する更新指示が送信された場合に、その更新指示に基づいて、メモリに格納された業務データに対する更新内容を示す更新ログを生成し、生成した更新ログを、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間におけるデータのミラー化を制御する点に主な特徴がある。
【００４０】
具体的には、ノード装置１０1は、アプリケーションサーバ２０により行われるトランザクション処理によって、業務データに対する更新指示がマルチキャストで配信されると（同図（１）参照）、その更新指示に基づいて、当該業務データに対する更新内容を示す更新ログを生成して、自装置のメモリに保持する（同図（２）参照）。一方、ノード装置１０2および１０3は、同様に更新指示が配信されても何ら処理を行わず、配信された更新指示を破棄する（同図（３）および（４）参照）。
【００４１】
その後、ノード装置１０1は、トランザクション処理が完結したことを示すコミット情報がアプリケーションサーバ２０から送信されると、生成した更新ログを、同じ業務グループに属する他のノード装置（ここでは、ノード装置１０2および１０3）に対してマルチキャストで配信する（同図（５）参照）。更新ログを受信したノード装置１０2および１０3は、それぞれ、受信した更新ログを自装置のメモリに保持するとともに、更新ログを受信したことを示すＡＣＫ応答をノード装置１０1に対して返信する（同図（６）および（７）参照）。
【００４２】
そして、ノード装置１０1は、ノード装置１０2および１０3の両方からＡＣＫ応答が返信されると、メモリに保持しておいた更新ログに基づいて、メモリに格納された業務データを実更新する（同図（８）参照）。一方、ノード装置１０2および１０3は、ノード装置１０1における業務データの更新とは非同期な所定のタイミングで、メモリに保持しておいた更新ログに基づいて、メモリに格納された業務データを実更新する（同図（９）および（１０）参照）。
【００４３】
このような特徴により、本実施の形態に係るノード装置１０1、１０2および１０3は、複数のノード装置のメモリに同じ業務データを保持することを可能にし、これにより、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができるようにしている。
【００４４】
次に、本実施の形態に係るノード装置１０1〜１０3の構成について説明する。なお、これらノード装置１０1〜１０3はいずれも同様の構成を有するので、ここでは、ノード装置１０1を例にとって説明する。図２は、本実施の形態に係るノード装置１０1の構成を示す機能ブロック図である。同図に示すように、ノード装置１０1は、トランザクション通信制御部１１と、ノード間通信制御部１２と、メモリ１３と、制御部１４とを有する。
【００４５】
トランザクション通信制御部１１は、アプリケーションサーバ２０との間でやり取りされるデータの送受信を制御する処理部である。具体的には、このトランザクション通信制御部１１は、ノード装置１０1が現用系として設定されていた場合には、アプリケーションサーバ２０からマルチキャストで配信される業務データの更新指示を受信すると、受信した更新指示を後述するログ生成部１４ａに引き渡す。
【００４６】
また、トランザクション通信制御部１１は、トランザクション処理が完結したことを示すコミット情報をアプリケーションサーバ２０から受信すると、受信したコミット情報を後述するログ配信制御部１４ｂに引き渡す。
【００４７】
また、トランザクション通信制御部１１は、後述するデータ更新部１４ｃから、メモリ１３に格納された業務データ１３ｂの実更新が完了したことが通知されると、アプリケーションサーバ２０に対して、業務データの更新が完了したことを示すコミット情報を送信する。
【００４８】
一方、ノード装置１０1が待機系として設定されていた場合には、トランザクション通信制御部１１は、アプリケーションサーバ２０から業務データに対する更新指示を受信すると、受信した更新指示を破棄するとともに、後述するデータ更新部１４ｃに対して、当該更新指示を受信したことを通知する。
【００４９】
ノード間通信制御部１２は、他のノード装置との間でやり取りされるデータの送受信を制御する処理部である。具体的には、このノード間通信制御部１２は、ノード装置１０1が現用系として設定されていた場合には、後述するログ配信制御部１４ｂから引き渡される更新ログ１３ａを他のノード装置に対してマルチキャストで配信する。また、ノード間通信制御部１２は、更新ログを受信したことを示すＡＣＫ応答を他のノード装置から受信すると、後述するデータ更新部１４ｃに対して、当該ＡＣＫ応答を受信したことを通知する。
【００５０】
一方、ノード装置１０1が待機系として設定されていた場合には、ノード間通信制御部１２は、現用系として設定されている他のノード装置からマルチキャストで配信される更新ログを受信すると、受信した更新ログを後述するログ配信制御部１４ｂに引き渡すとともに、当該更新ログを受信したことを示すＡＣＫ応答を、現用系のノード装置に対して返信する。
【００５１】
メモリ１３は、各種のデータやプログラムを記憶する記憶部であり、本発明に関連するものとしては、更新ログ１３ａと、業務データ１３ｂとを記憶する。ここで、更新ログ１３ａは、業務データ１３ｂに対する更新内容を示すデータであり、アプリケーションサーバ２０によって配信される更新指示に基づいて生成される。また、業務データ１３ｂは、アプリケーションサーバ２０が提供する業務サービスに関する各種の業務データであり、図示していないインメモリ・データベースによって管理される。
【００５２】
制御部１４は、ノード装置１０1の全体制御を行う制御部であり、本発明に関連するものとしては、ログ生成部１４ａと、ログ配信制御部１４ｂと、データ更新部１４ｃとを有する。
【００５３】
ログ生成部１４ａは、業務データ１３ｂに対する更新内容を示す更新ログ１３ａを生成する処理部である。具体的には、このログ生成部１４ａは、トランザクション通信制御部１１から業務データに対する更新指示が引き渡されると、その更新指示に基づいて、更新ログ１３ａを生成し、生成した更新ログ１３ａをメモリ１３に記憶させる。
【００５４】
ログ配信制御部１４ｂは、ログ生成部１４ａにより生成された更新ログ１３ａを他の複数のノード装置に対して配信したり、他のノード装置から配信された更新ログをメモリ１３に記憶させることによって、複数のメモリ間におけるデータのミラー化を制御する処理部である。
【００５５】
具体的には、このログ配信制御部１４ｂは、ノード装置１０1が現用系として設定されていた場合には、トランザクション通信制御部１１から、トランザクション処理が完結したことを示すコミット情報が引き渡されると、メモリ１３に保持されている更新ログ１３ａをノード間通信制御部１２に引き渡すことによって、当該更新ログ１３ａを、他の複数のノード装置に対してマルチキャストで配信する。
【００５６】
なお、ログ配信制御部１４ｂは、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、メモリ１３に保持されている更新ログ１３ａを破棄する。これにより、異常となったトランザクション処理による業務データ１３ｂに対する更新は、他のノード装置の業務データには反映されないように制御することができる。
【００５７】
一方、ノード装置１０1が待機系として設定されていた場合には、ログ配信制御部１４ｂは、ノード間通信制御部１２から更新ログが引き渡されると、当該更新ログをメモリ１３に記憶させる。
【００５８】
データ更新部１４ｃは、メモリ１３に保持されている更新ログ１３ａに基づいて、他の複数のノード装置において行われる業務データの更新とは非同期に、業務データ１３ｂを実更新する処理部である。
【００５９】
具体的には、このデータ更新部１４ｃは、ノード装置１０1が現用系として設定されていた場合には、ノード間通信制御部１２によって、ログ配信制御部１４ｂにより更新ログが配信された全てのノード装置からＡＣＫ応答を受信したことが通知されると、メモリ１３に保持されている更新ログ１３ａに基づいて、業務データ１３ｂを実更新する。そして、業務データ１３ｂの実更新が完了した後に、データ更新部１４ｃは、業務データの更新が完了したことを示すコミット情報を、トランザクション通信制御部１１に通知することによって、当該コミット情報をアプリケーションサーバ２０に対して送信する。
【００６０】
一方、ノード装置１０1が待機系として設定されていた場合には、データ更新部１４ｃは、トランザクション通信制御部１１から、業務データに対する更新指示を受信したことが通知されると、メモリ１３に保持されている更新ログ１３ａに基づいて、業務データ１３ｂを実更新する。
【００６１】
このように、現用系として設定されているノード装置において行われる業務データの更新と、待機系として設定されているノード装置において行われる業務データの更新とは、それぞれ非同期に行われる。
【００６２】
次に、本実施の形態に係るノード装置の処理手順について説明する。図３は、本実施の形態に係るノード装置の処理手順を示すフローチャートである。同図は、図１に示したノード装置１０1〜１０3の処理手順を示しており、ノード装置１０1が現用系のノード装置（以下、「Ａｃｔｉｖｅノード」と呼ぶ）として、ノード装置１０2および１０3が待機系のノード装置（以下、「Ｓｔａｎｄｂｙノード」と呼ぶ）として、それぞれ設定されているとする。
【００６３】
同図に示すように、まず、アプリケーションサーバ２０から業務データに対する更新指示がマルチキャストで配信されると（ステップＳ１０１）、ノード装置１０1では、トランザクション通信制御部１１が、配信された更新指示を受信し、ログ生成部１４ａが、当該更新指示に基づいて更新ログ１３ａを生成する（ステップＳ１０２）。
【００６４】
一方、ノード装置１０2および１０3では、それぞれのトランザクション通信制御部が、配信された更新指示を受信し、受信した更新指示を破棄する（ステップＳ１０３およびＳ１０４）。
【００６５】
その後、アプリケーションサーバ２０からコミット情報（ＣＯＭＭＩＴ）が送信（発行）されると（ステップＳ１０５）、ノード装置１０1では、トランザクション通信制御部１１が、送信されたコミット情報を受信し、ログ配信制御部１４ｂが、更新ログ１３ａをＳｔａｎｄｂｙノード（ノード装置１０2および１０3）にマルチキャストで配信する（ステップＳ１０６）。
【００６６】
更新ログ１３ａが配信されると、ノード装置１０2および１０3では、それぞれのノード間通信制御部が、更新ログ１３ａを受信し、それぞれ、Ａｃｔｉｖｅノード（ノード装置１０1）に対してＡＣＫ応答を返信する（ステップＳ１０７およびＳ１０８）。
【００６７】
そして、全てのＳｔａｎｄｂｙノード装置からＡＣＫ応答が返信されると、ノード装置１０1では、ノード間通信制御部１２が、それぞれのＡＣＫ応答を受信し（ステップＳ１０９）、データ更新部１４ｃが、メモリ１３に保持された業務データ１３ｂを実更新し（ステップＳ１１０）、トランザクション通信制御部１１が、アプリケーションサーバ２０に対してコミット情報（ＣＯＭＭＩＴ）を送信（復帰）する（ステップＳ１１１）。
【００６８】
そして、上述したノード装置１０1（Ａｃｔｉｖｅノード）における業務データの更新とは非同期に、ノード装置１０2および１０3では、それぞれのデータ更新部１４ｃが、自装置のメモリに保持された業務データを実更新する（ステップＳ１１２およびＳ１１３）。
【００６９】
上述してきたように、本実施の形態では、アプリケーションサーバ２０により行われるトランザクション処理によって、メモリに格納された業務データに対する更新指示が送信された場合に、当該更新指示に基づいて、ログ生成部１４ａが、メモリ１３に格納された業務データ１３ｂに対する更新内容を示す更新ログ１３ａを生成し、生成した更新ログ１３ａを、ログ配信制御部１４ｂが、メモリを有する他の複数のノード装置に対してマルチキャストで配信することによって、複数のメモリ間における業務データのミラー化を制御するので、複数のメモリに同じ業務データを保持することが可能になり、ディスクを用いずにインメモリ・データベースの高信頼性を実現することができる。
【００７０】
また、本実施の形態では、データ更新部１４ｃが、配信した更新ログ１３ａに基づいて他の複数のノード装置において行われる業務データの更新とは非同期に、生成した更新ログ１３ａに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、アプリケーションサーバ２０により行われるトランザクション処理のレスポンスに影響を与えずに、メモリ間のミラー化を行うことができる。
【００７１】
また、本実施の形態では、データ更新部１４ｃが、更新ログ１３ａが配信された全てのノード装置から更新ログ１３ａを受信したことを示すＡＣＫ応答が返信された場合に、生成した更新ログ１３ａに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、更新ログ１３ａが全てのノード装置に到達したことを確認した上で、メモリ１３に格納された業務データ１３ｂを更新することが可能になり、インメモリ・データベースの信頼性をさらに高めることができる。
【００７２】
また、本実施の形態では、ログ配信制御部１４ｂが、トランザクション処理が完結したことを示すコミット情報がアプリケーションサーバ２０から送信された場合に、更新ログ１３ａを他のノード装置に対してマルチキャストで配信し、コミット情報が送信される前にトランザクション処理の異常を検知した場合には、更新ログを破棄するので、トランザクション処理が正常に終了した場合のみメモリ間のミラー化を行うことが可能になり、トランザクション処理に異常が発生した際の影響範囲を最小限にとどめることができる。
【００７３】
また、本実施の形態では、ログ配信制御部１４ｂが、他のノード装置からマルチキャストで配信された更新ログをメモリ１３に記憶させ、アプリケーションサーバ２０によるトランザクション処理によって、業務データに対する更新指示がマルチキャストで配信された場合に、記憶させておいた更新ログに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、アプリケーションサーバ２０からマルチキャストで配信される更新指示を用いて、各ノード装置における業務データの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。
【００７４】
また、本実施の形態では、ログ配信制御部１４ｂが、他のノード装置からマルチキャストで配信された更新ログをメモリ１３に記憶させ、更新ログを受信した場合に、その時点ですでに記憶されていた更新ログに基づいて、メモリ１３に格納された業務データ１３ｂを実更新するので、他のノード装置からマルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。
【００７５】
なお、本実施の形態では、データ更新部１４ｃが、ノード装置１０1が待機系として設定されていた場合に、アプリケーションサーバ２０からマルチキャストで配信される更新指示を契機に業務データ１３ｂを更新する場合について説明したが、本発明はこれに限られるわけではない。
【００７６】
例えば、ノード間通信制御部１２が、現用系として設定されている他のノード装置からマルチキャストで配信される更新ログを受信した際に、当該更新ログを受信したことをデータ更新部１４ｃに対して通知し、データ更新部１４ｃが、その通知を受け付けた場合に、その時点ですでにメモリ１３により保持されていた更新ログ１３ａに基づいて、業務データ１３ｂを実更新するようにしてもよい。
【００７７】
これにより、マルチキャストで配信される更新ログを用いて、各ノード装置におけるデータの更新を制御することが可能になり、効率よくメモリ間のミラー化を行うことができる。
【００７８】
また、本実施の形態では、メモリミラー化を行うノード装置について説明したが、かかるノード装置が有する構成をソフトウェアによって実現することで、同様の機能を有するメモリミラー化プログラムを得ることができる。そこで、このメモリミラー化プログラムを実行するコンピュータについて説明する。
【００７９】
図４は、本実施の形態に係るメモリミラー化プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ１００は、ＲＡＭ（Random  Access  Memory）１１０と、ＣＰＵ（Central  Processing  Unit）１２０と、ＨＤＤ（Hard  Disk  Drive）１３０と、ＬＡＮ（Local  Area  Network）インタフェース１４０と、入出力インタフェース１５０と、ＤＶＤ（Digital  Versatile  Disk）ドライブ１６０とを有する。
【００８０】
ＲＡＭ１１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、図２に示したメモリ１３に対応し、更新ログ１３ａや業務データ１３ｂなども記憶する。ＣＰＵ１２０は、ＲＡＭ１１０からプログラムを読み出して実行する中央処理装置である。
【００８１】
ＨＤＤ１３０は、プログラムやデータを格納するディスク装置である。ＬＡＮインタフェース１４０は、コンピュータ１００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースであり、ノード装置として動作するコンピュータ１００を、アプリケーションサーバ２０や他のノード装置に接続する。
【００８２】
入出力インタフェース１５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ１６０は、ＤＶＤの読み書きを行う装置である。
【００８３】
そして、このコンピュータ１００において実行されるメモリミラー化プログラム１１１は、ＤＶＤに記憶され、ＤＶＤドライブ１６０によってＤＶＤから読み出されてコンピュータ１００にインストールされる。
【００８４】
あるいは、このメモリミラー化プログラム１１１は、ＬＡＮインタフェース１４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ１００にインストールされる。
【００８５】
そして、インストールされたメモリミラー化プログラム１１１は、ＨＤＤ１３０に記憶され、ＲＡＭ１１０に読み出されてＣＰＵ１２０によってメモリミラー化プロセス１２１として実行される。
【００８６】
また、本実施の形態では、説明の便宜上、２台のノード装置を待機系として設定した場合について説明したが、本発明はこれに限られるわけではなく、待機系として設定されるノード装置は１台であってもよいし、３台以上であってもよい。すなわち、本実施の形態では、信頼性の要件によって、複数台のノード装置を待機系として設定して、データベースの冗長化を行うことができる。
【００８７】
そして、待機系として設定されたノード装置には、現用系として設定されたノード装置と同じ内容の業務データが保持されるので、ネットワーク障害などによって現用系のノード装置の業務データを参照できないような場合でも、待機系のノード装置のデータベースを参照することによって、業務データの確認を行うことができる。
【００８８】
さらに、本実施の形態に係るノード装置では、障害が発生した場合に、所定のリカバリ処理手段を用いて、以下のようにしてリカバリを行うことができる。
【００８９】
まず、現用系のノード装置に障害が発生した場合には、リカバリ処理手段は、その現用系のノード装置を停止するとともに、待機系のノード装置のうちいずれか一台を新たに現用系として設定する。この時、リカバリ処理手段は、新たに現用系として設定したノード装置に対して、障害が発生したノード装置には更新ログを配信しないように設定する。具体的には、リカバリ処理手段は、ノード間通信制御部１２による更新ログの配信の基準となるマルチキャストアドレスから、障害が発生したノード装置のアドレスを除外する。
【００９０】
続いて、リカバリ処理手段は、新たに現用系として設定したノード装置のメモリ、および、その他の待機系のノード装置のメモリを参照して、業務データへの更新ログの反映状況を確認し、全てのノード装置について、更新ログが正しく反映されていることを確認した場合には、新たに現用系として設定したノード装置からアプリケーションサーバ２０に対して、業務データの更新が完了したことを示すコミット情報を送信する。
【００９１】
ここで、更新ログが業務データに正しく反映されていないノード装置があった場合には、リカバリ処理手段は、すでに更新ログが反映されている業務データをロールバックすることによって、メモリ内の業務データの整合性を保証する。そして、リカバリ処理手段は、以上の一連のリカバリ処理が完了したことを契機に、新たに現用系として設定したノード装置を用いて、業務を再開させる。
【００９２】
一方、待機系のノード装置に障害が発生した場合には、リカバリ処理手段は、その待機系のノード装置を停止するとともに、現用系のノード装置に対して、障害が発生したノード装置には更新ログを配信しないように設定する。具体的には、リカバリ処理手段は、ノード間通信制御部１２による更新ログの配信の基準となるマルチキャストアドレスから、障害が発生したノード装置のアドレスを除外する。
【００９３】
リカバリ処理手段が以上のリカバリ処理を行っている間も、現用系のノード装置は稼動を続けている。そのため、待機系のノード装置に障害が発生した場合には、アプリケーションサーバ２０によるトランザクション処理、すなわち、アプリケーションサーバ２０により提供される業務サービスには、リカバリ処理によって何ら影響が及ぼされることはない。
【００９４】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００９５】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９７】
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【実施例】
【００９８】
以下に、証券取引システムにおける実施例を示す。図５は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【００９９】
まず、１００１は市場管理サーバであり、上記した実施の形態のアプリケーションサーバ２０に該当するサーバである。この市場管理サーバ１００１は、ＤＢサーバ１００２のスケジュール管理１００２１に蓄積されているスケジュール情報に基づき、ステータス指示手段１００１１がネットワーク１００３を介して上記した実施の形態に示した手順によりステータス指示のマルチキャスト通信を行う（図９では高信頼マルチキャスト１００１２と明記）。
【０１００】
また、売買管理端末１００４からの規制指示を受け所内Ｗｅｂサーバ１００５の規制指示手段１００５１が出力する規制指示情報を市場管理サーバ１００１が受けると、市場管理サーバ１００１内のステータス指示１００１３がネットワーク１００３を介して上記した実施の形態に示した手順により規制指示のマルチキャスト通信を行う（図５では高信頼マルチキャスト１００１４と明記）。
【０１０１】
１００６は、証券取引の参加者への各種通知を行う参加者ゲートウエイであり、市場管理サーバ１００１からの各種高信頼マルチキャストの情報を参加者連携アダプタ１００６１が受けると、参加者連携アダプタ１００６１が参加者へ通知すべき内容かを判断し、通知を行うと判断されたマルチキャスト情報については、市場管理電文として参加者サーバ１００７へ送信を行う。
【０１０２】
また、１００８は、トレーディングサーバであり、注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２、板ＤＡＭ１００８３を有する。これらの注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２、板ＤＡＭ１００８３は、各々、上記してきた業務グループ単位のノード装置１０1、１０2および１０3にて示されたノード装置群である。
【０１０３】
即ち、これら注文ＤＡＭ１００８１、特別気配ＤＡＭ１００８２および板ＤＡＭ１００８３は、市場管理サーバ１００１からの高信頼マルチキャスト１００１２や１００１４を受信すると、自身に関係のある情報であるかを判断し、図３に示した手順により処理を行う。
【０１０４】
このように、各ＤＡＭや参加者へは全てマルチキャスト送信により指示が行われるため、ステータス変更タイミングや通知タイミングの誤差を最小限に抑える事が可能となる。更に、トレーディングサーバ１００８の処理と参加者ゲートウエイ１００６を介した参加者サーバ１００７への通知を並行して処理するため、より高速に参加者へのステータス変更などの通知を行う事が可能となる。
【０１０５】
さらに、各ＤＡＭも本発明の実施の形態の手順により処理を行う事で、高速かつ信頼性の高い処理を可能とする。
【産業上の利用可能性】
【０１０６】
以上のように、本発明に係るメモリミラー化制御プログラム、メモリミラー化制御方法およびメモリミラー化制御装置は、高信頼性および高速性をともに実現することが求められるミッションクリティカルシステムに有用であり、特に、ディスクを用いずにインメモリ・データベースの高信頼性を実現する場合に適している。
【図面の簡単な説明】
【０１０７】
【図１】図１は、本実施の形態に係るノード装置によるメモリミラー化の概念を説明するための図である。
【図２】図２は、本実施の形態に係るノード装置の構成を示す機能ブロック図である。
【図３】図３は、本実施の形態に係るノード装置の処理手順を示すフローチャートである。
【図４】図４は、本実施の形態に係るメモリミラー化プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図５】図５は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【図６】図６は、従来のデータベースにおけるクラスタ技術を示す図である。
【図７】図７は、従来のデータベースにおけるレプリケーション技術を示す図である。
【図８】図８は、インメモリ・データベースを説明するための図である。
【図９】図９は、従来のデータベースにおけるダウンリカバリを説明するための図である。
【符号の説明】
【０１０８】
１０1，１０2，１０3    ノード装置
１１    トランザクション通信制御部
１２    ノード間通信制御部
１３    メモリ
１３ａ    更新ログ
１３ｂ    業務データ
１４    制御部
１４ａ    ログ生成部
１４ｂ    ログ配信制御部
１４ｃ    データ更新部
１００    コンピュータ
１１０    ＲＡＭ
１１１    メモリミラー化プログラム
１２０    ＣＰＵ
１２１    メモリミラー化プロセス
１３０    ＨＤＤ
１４０    ＬＡＮインタフェース
１５０    入出力インタフェース
１６０    ＤＶＤドライブ
１００１    市場管理サーバ
１００２    ＤＢサーバ
１００３    ネットワーク
１００４    売買管理端末
１００５    所内Ｗｅｂサーバ
１００６    参加者ゲートウエイ
１００７    参加者サーバ
１００８    トレーディングサーバ
１００１１    ステータス指示手段
１００１２，１００１４    高信頼マルチキャスト
１００１３    ステータス指示
１００２１    スケジュール管理
１００５１    規制指示手段
１００６１    参加者連携アダプタ
１００８１    注文ＤＡＭ
１００８２    特別気配ＤＡＭ
１００８３    板ＤＡＭ
【国際調査報告】
2008105098.tif 000012
2008105098.tif 000013
2008105098.tif 000014
2008105098.tif 000015