(57)【要約】【課題】データ記録の高速化を実現しつつ、十分な抗たん性を確保する。【解決手段】計算機装置１０は、各々に記憶装置が備わっている３つ以上の計算機装置が含まれ、送信元の計算機装置以外の計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる。書込み待ちデータ量取得部は、自計算機装置１０の補助記憶装置９０３の書込み待ちデータの量を第１の書込み待ちデータ量として取得し、他の計算機装置の書込み待ちデータの量を第２の書込み待ちデータ量として取得する。依頼先選択部１２３は、第１の書込み待ちデータ量に基づき、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みの許否を判定し、書込みを許可しない場合に、書込み対象データの送信元以外の第２の書込み待ちデータ量に基づき、書込みの依頼先となる計算機装置を選択する。【選択図】図３
2018180758.tif 000002
【特許請求の範囲】
【請求項１】
各々に記憶装置が備わっている３つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置であって、
自計算機装置の記憶装置の書込み待ちデータの量を第１の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第２の書込み待ちデータ量として取得する書込み待ちデータ量取得部と、
前記書込み対象データの属性に基づき、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当するか否かを判定し、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当する場合に、前記第１の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量に基づき、前記書込み対象データの送信元以外の他の計算機装置の中から前記書込み対象データの書込みの依頼先となる依頼先計算機装置を選択する依頼先選択部とを有する計算機装置。
【請求項２】
前記依頼先選択部は、
選択した前記依頼先計算機装置に、前記依頼先計算機装置の記憶装置への前記書込み対象データの書込みを依頼する請求項１に記載の計算機装置。
【請求項３】
前記依頼先選択部は、
前記第１の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が閾値未満であるか否かを判定して、前記書込み対象データを自計算機装置の記憶装置に書き込むことの許否を判定し、
前記第１の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値以上であれば、前記書込み対象データの自計算機装置の記憶装置への書込みを許可せず、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量を比較して、前記依頼先計算機装置を選択する請求項１に記載の計算機装置。
【請求項４】
前記依頼先選択部は、
前記第２の書込み待ちデータ量の比較の結果、前記第２の書込み待ちデータ量が少ない順に規定数の他の計算機装置を前記依頼先計算機装置として選択する請求項３に記載の計算機装置。
【請求項５】
前記依頼先選択部は、
前記書込み対象データの送信元以外の他のいずれかの計算機装置から、前記書込み対象データの書込みを依頼された場合に、前記第１の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、
前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元及び書込みの依頼元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量に基づき、前記書込み対象データの送信元及び書込みの依頼元以外の他の計算機装置の中から前記依頼先計算機装置を選択する請求項１に記載の計算機装置。
【請求項６】
前記依頼先選択部は、
前記第１の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が閾値未満であるか否かを判定して、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、
前記第１の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値以上であれば、前記書込み対象データの自計算機装置の記憶装置への書込みを許可せず、前記書込み対象データの送信元及び書込みの依頼元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量を比較して、前記依頼先計算機装置を選択する請求項５に記載の計算機装置。
【請求項７】
前記依頼先選択部は、
前記第２の書込み待ちデータ量の比較の結果、前記第２の書込み待ちデータ量が少ない順に規定数の他の計算機装置を前記依頼先計算機装置として選択する請求項６に記載の計算機装置。
【請求項８】
前記計算機装置は、更に、
前記依頼先選択部により、前記書込み対象データの書込みが許可された場合に、前記書込み対象データを自計算機装置の記憶装置に書込むデータ書込み部を有する請求項１に記載の計算機装置。
【請求項９】
各々に記憶装置が備わっている３つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置が、
自計算機装置の記憶装置の書込み待ちデータの量を第１の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第２の書込み待ちデータ量として取得する書込み待ちデータ量取得処理と、
前記書込み対象データの属性に基づき、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当するか否かを判定し、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当する場合に、前記第１の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量に基づき、前記書込み対象データの送信元以外の他の計算機装置の中から前記書込み対象データの書込みの依頼先となる依頼先計算機装置を選択する依頼先選択処理とを行う依頼先選択方法。
【請求項１０】
各々に記憶装置が備わっている３つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置に、
自計算機装置の記憶装置の書込み待ちデータの量を第１の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第２の書込み待ちデータ量として取得する書込み待ちデータ量取得処理と、
前記書込み対象データの属性に基づき、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当するか否かを判定し、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当する場合に、前記第１の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量に基づき、前記書込み対象データの送信元以外の他の計算機装置の中から前記書込み対象データの書込みの依頼先となる依頼先計算機装置を選択する依頼先選択処理とを実行させる依頼先選択プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機装置（以下、単に計算機ともいう）に関する。より具体的には、複数の計算機装置が含まれる計算機システムに含まれる計算機装置に関する。
【背景技術】
【０００２】
防衛分野等においては、データ記録の高速性や抗たん性が求められる場合が多い。この際に、計算機システムを構成する全計算機の電源断時にも、電源断の直前の状態から復旧するために復旧に必要なデータを予め復旧データ専用の補助記憶装置（データベース）に記録しておき、復旧時にはデータベースからデータを復旧していた。この際に、データベースへの書込みを高速化する場合は、データの記録先を複数に分散することによって記録時間を高速化するシャーディング機能を用いて補助記憶装置を分散させていた。
例えば、特許文献１に開示の技術では、シャーディング機能が用いられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１６４５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、このようなシャーディング機能を用いデータの記録先を分散させた場合も、補助記憶装置のマスタが故障すると計算機システムを復旧することができず、十分な抗たん性を確保できないという課題があった。
【０００５】
この発明は、上記のような課題を解決することを主な目的の一つとしている。具体的には、本発明は、データ記録の高速化を実現しつつ、十分な抗たん性を確保できる構成を得ることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る計算機装置は、
各々に記憶装置が備わっている３つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置であって、
自計算機装置の記憶装置の書込み待ちデータの量を第１の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第２の書込み待ちデータ量として取得する書込み待ちデータ量取得部と、
前記書込み対象データの属性に基づき、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当するか否かを判定し、自計算機装置の記憶装置が前記書込み対象データの書込み先に該当する場合に、前記第１の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第２の書込み待ちデータ量に基づき、前記書込み対象データの送信元以外の他の計算機装置の中から前記書込み対象データの書込みの依頼先となる依頼先計算機装置を選択する依頼先選択部とを有する。
【発明の効果】
【０００７】
本発明によれば、データ記録の高速化を実現しつつ、十分な抗たん性を確保することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る計算機システムの構成例を示す図。
【図２】実施の形態１に係る計算機装置のハードウェア構成例を示す図。
【図３】実施の形態１に係る計算機装置の機能構成例を示す図。
【図４】実施の形態１に係る計算機装置の動作例を示すフローチャート。
【図５】実施の形態１に係る書込み先判定処理の詳細を示すフローチャート。
【図６】実施の形態１に係る書込み先判定処理の詳細を示すフローチャート。
【図７】実施の形態１に係る処理データテーブルの例を示す図。
【図８】実施の形態１に係る書込み待ちデータ量テーブルの例を示す図。
【図９】実施の形態１に係る記録依頼テーブル（依頼時）の例を示す図。
【図１０】実施の形態１に係る記録依頼テーブル（依頼側保持）の例を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
【００１０】
実施の形態１．
従来は、計算機装置の性能はサーバ計算機が高く、クライアント計算機は低いという制約があった。このため、ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などクライアント−サーバ型で、ある特定の性能の高いサーバ計算機に対してクライアント計算機が処理を依頼して応答を待つ方式が主流であった。しかし、近年、計算機の性能向上によりＤＤＳ（Ｄａｔａ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｒｅａｌ−ｔｉｍｅ  Ｓｙｓｔｅｍｓ）のようなデータが全ての計算機にマルチキャスト又はブロードキャストで配信され、各計算機は流れているデータの中から必要なデータを能動的に処理するデータドリブン型アーキテクチャが注目されている。
本実施の形態では、データドリブン型アーキテクチャを用いた計算機システムを説明する。
【００１１】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る計算機システムの構成例を示す。
図１は、一例として、計算機装置Ａ１０ａ、計算機装置Ｂ１０ｂ、計算機装置Ｃ１０ｃ及び計算機装置Ｄ１０ｄで構成される計算機システムを示す。
計算機装置Ａ１０ａには、アプリケーションプログラム１１ａと通信ミドルウェア１２ａと補助記憶装置９０３ａが含まれる。計算機装置Ｂ１０ｂには、アプリケーションプログラム１１ｂと通信ミドルウェア１２ｂと補助記憶装置９０３ｂが含まれる。計算機装置Ｃ１０ｃには、アプリケーションプログラム１１ｃと通信ミドルウェア１２ｃと補助記憶装置９０３ｃが含まれる。計算機装置Ｄ１０ｄには、アプリケーションプログラム１１ｄと通信ミドルウェア１２ｄと補助記憶装置９０３ｄが含まれる。
計算機装置Ａ１０ａ、計算機装置Ｂ１０ｂ、計算機装置Ｃ１０ｃ及び計算機装置Ｄ１０ｄを区別する必要がない場合は、これらをまとめて計算機装置１０という。
また、アプリケーションプログラム１１ａ、アプリケーションプログラム１１ｂ、アプリケーションプログラム１１ｃ及びアプリケーションプログラム１１ｄを区別する必要がない場合は、これらをまとめてアプリケーションプログラム１１という。
通信ミドルウェア１２ａ、通信ミドルウェア１２ｂ、通信ミドルウェア１２ｃ及び通信ミドルウェア１２ｄを区別する必要がない場合は、これらをまとめて通信ミドルウェア１２という。
また、補助記憶装置９０３ａ、補助記憶装置９０３ｂ、補助記憶装置９０３ｃ及び補助記憶装置９０３ｄを区別する必要がない場合は、これらをまとめて補助記憶装置９０３という。
アプリケーションプログラム１１間の通信は通信ミドルウェア１２を介して行われる。
各計算機装置１０のアプリケーションプログラム１１はデータを生成する。各計算機装置１０の通信ミドルウェア１２は、アプリケーションプログラム１１で生成されたデータを書込み対象データとして他の全ての計算機装置１０に送信する。書込み対象データは、計算機システムの復旧の際に復旧データとして用いることができるようにするために、送信元の計算機装置１０以外のｎ台の計算機装置１０の補助記憶装置９０３に書き込まれる。ｎは、１以上であって、計算機システムに含まれる計算機装置１０の台数以下の任意の値である。なお、ｎの値は設定により変更可能である。ｎ＝１の時は抗たん性は低いがデータ記録速度が高速である。ｎが大きくなるほどデータ記録速度は低下するが抗たん性は向上する。
なお、各計算機装置１０で行われる動作は、依頼先選択方法及び依頼先選択プログラムに相当する。
【００１２】
図２は、本実施の形態に係る計算機装置１０のハードウェア構成例を示す。
計算機装置１０は、ハードウェアとして、プロセッサ９０１、メモリ９０２、補助記憶装置９０３及び通信装置９０４を備える。プロセッサ９０１、メモリ９０２、補助記憶装置９０３及び通信装置９０４はバス９０５に接続されている。
補助記憶装置９０３には、アプリケーションプログラム１１及び通信ミドルウェア１２が記憶されている。アプリケーションプログラム１１及び通信ミドルウェア１２は、補助記憶装置９０３からメモリ９０２にロードされる。そして、プロセッサ９０１がメモリ９０２からアプリケーションプログラム１１及び通信ミドルウェア１２を読み出し、アプリケーションプログラム１１及び通信ミドルウェア１２を実行する。
この結果、プロセッサ９０１は、後述するアプリケーションプログラム１１及び通信ミドルウェア１２の動作を行う。
図２では、プロセッサ９０１がアプリケーションプログラム１１及び通信ミドルウェア１２を実行している状態を模式的に表している。
また、補助記憶装置９０３は、自計算機装置１０のアプリケーションプログラム１１で生成されたデータ及び他の計算機装置１０のアプリケーションプログラム１１で生成されたデータを記憶する。
通信装置９０４は、計算機装置１０が他の計算機装置１０と通信を行う際に用いられる。
【００１３】
図３は、本実施の形態に係る計算機装置１０の機能構成例を示す。
【００１４】
各計算機装置１０は、メモリ９０２に、処理データテーブル２３を保持している。処理データテーブル２３には、データ種別ごとに、書込み先の計算機装置１０が示される。
後述する依頼先選択部１２３は、処理データテーブル２３を参照して、自計算機装置１０の補助記憶装置９０３が書込み対象データの書込み先に該当するか否かを判定する。
【００１５】
図７は、処理データテーブル２３の例を示す。図７に示すように、処理データテーブル２３には、データ種別ごとに、書込み対象データの書込み先の計算機装置１０が記述されている。
図７では、例えば、データ種別Ｔ１の書込み対象データの書込み先として、計算機装置Ａ１０ａ及び計算機装置Ｂ１０ｂが指定されている。
依頼先選択部１２３は、処理データテーブル２３を参照して、書込み対象データのデータ種別に対応する書込み先の計算機装置１０を特定する。
なお、図７では、データ属性としてデータ種別が記述されているが、処理データテーブル２３に他の種類のデータ属性が定義されていてもよい。例えば、データの生成元、データの用途等のデータ属性が処理データテーブル２３に定義されていてもよい、
【００１６】
データ受信部１２１は、他の計算機装置１０から送信された書込み対象データを受信する。
また、データ受信部１２１は、他の計算機装置１０から送信された他の計算機装置１０の補助記憶装置９０３における書込み待ちデータ量テーブル２１を受信する。書込み待ちデータ量テーブル２１には、書込み待ちデータ量が記述される。書込み待ちデータ量は、書込み待ちデータのデータ量である。書込み待ちデータは、補助記憶装置９０３への書込みを待っている状態のデータである。
以下、他の計算機装置１０の補助記憶装置９０３における書込み待ちデータ量を、他の計算機装置１０の書込み待ちデータ量ともいう。また、他の計算機装置１０の補助記憶装置９０３における書込み待ちデータ量テーブル２１を、他の計算機装置１０の書込み待ちデータ量テーブル２１ともいう。
また、データ受信部１２１は、他の計算機装置１０から送信された記録依頼テーブル２２を受信する。記録依頼テーブル２２には、書込み対象データの書込み依頼が記述される。
【００１７】
図８は、計算機装置Ａ１０ａの書込み待ちデータ量テーブル２１の例を示す。書込み待ちデータ量テーブル２１では、時刻ごとに書込み待ちデータ量が示される。
図１に示す計算機システムでは、各計算機装置Ａ１０ａ〜計算機装置Ｄ１０ｄは、それぞれ計算機装置Ａ１０ａ〜計算機装置Ｄ１０ｄの書込み待ちデータ量テーブル２１を保持する。このように、計算機装置１０間で書込み待ちデータ量テーブル２１を共有するのは、各計算機装置１０は自計算機装置１０の書込み待ちデータ量は把握できても他計算機装置１０の書込み待ちデータ量は把握できないためである。
【００１８】
図９は、記録依頼テーブル２２の例を示す。
図９に示すように、記録依頼テーブル２２は、時刻と、データ種別と、依頼元の計算機装置（Ｆｒｏｍ）と、依頼先の計算機装置（Ｔｏ）が示される。
図９の例では、データ種別Ｔ１０の書込み対象データとデータ種別Ｔ１５の書込み対象データの書込みが計算機装置Ａ１０ａから計算機装置Ｂ１０ｂ及び計算機装置Ｃ１０ｃに依頼されている。
【００１９】
書込み待ちデータ量管理部１２２は、データ受信部１２１により受信された他の計算機装置１０の書込み待ちデータ量テーブル２１及び記録依頼テーブル２２をメモリ９０２に格納する。また、書込み待ちデータ量管理部１２２は、メモリ９０２から他の計算機装置１０の書込み待ちデータ量テーブル２１及び記録依頼テーブル２２を読み出す。
更に、書込み待ちデータ量管理部１２２は自計算機装置１０の補助記憶装置９０３での書込み待ちデータ量を取得し、自計算機装置１０の補助記憶装置９０３での書込み待ちデータ量を示す書込み待ちデータ量テーブル２１をメモリ９０２に格納する。以下、自計算機装置１０の補助記憶装置９０３での書込み待ちデータ量を、自計算機装置１０の書込み待ちデータ量ともいう。また、自計算機装置１０の書込み待ちデータ量を示す書込み待ちデータ量テーブル２１を、自計算機装置１０の書込み待ちデータ量テーブル２１ともいう。
また、書込み待ちデータ量管理部１２２は、メモリ９０２から自計算機装置１０の書込み待ちデータ量テーブル２１を読み出す。
書込み待ちデータ量管理部１２２は、読み出した他の計算機装置１０の書込み待ちデータ量テーブル２１、記録依頼テーブル２２及び自計算機装置１０の書込み待ちデータ量テーブル２１を依頼先選択部１２３に出力する。
また、書込み待ちデータ量管理部１２２は、他の計算機装置１０からの書込み対象データをデータ受信部１２１から取得する。そして、書込み待ちデータ量管理部１２２は、他の計算機装置１０からの書込み対象データを依頼先選択部１２３に出力する。
なお、自計算機装置１０の書込み待ちデータ量は第１の書込み待ちデータ量に相当する。また、他計算機装置１０の書込み待ちデータ量は第２の書込み待ちデータ量に相当する。
【００２０】
図３に示すように、データ受信部１２１及び書込み待ちデータ量管理部１２２は、併せて書込み待ちデータ量取得部に相当する。
また、データ受信部１２１及び書込み待ちデータ量管理部１２２により行われる処理は、書込み待ちデータ量取得処理に相当する。
【００２１】
依頼先選択部１２３は、処理データテーブル２３を参照し、書込み対象データのデータ種別に基づき、自計算機装置１０の補助記憶装置９０３が書込み対象データの書込み先に該当するか否かを判定する。そして、自計算機装置１０の補助記憶装置９０３が書込み対象データの書込み先に該当する場合に、自計算機装置１０の書込み待ちデータ量（第１の書込み待ちデータ量）に基づき、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みの許否を判定する。
依頼先選択部１２３は、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みを許可しない場合に、書込み対象データの送信元以外の他の計算機装置１０の書込み待ちデータ量（第２の書込み待ちデータ量）に基づき、書込み対象データの送信元以外の他の計算機装置１０の中から書込み対象データの書込みの依頼先となる依頼先計算機装置を選択する。そして、依頼先選択部１２３は、依頼先計算機装置宛の記録依頼テーブル２２を生成する。つまり、依頼先選択部１２３は、記録依頼テーブル２２の生成により、依頼先計算機装置に、依頼先計算機装置の補助記憶装置９０３への書込み対象データの書込みを依頼する。
なお、依頼先選択部１２３により行われる処理は、依頼先選択処理に相当する。
【００２２】
データ書込み部１２４は、依頼先選択部１２３により書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みが許可された場合に、書込み対象データを自計算機装置１０の補助記憶装置９０３に書込む。
【００２３】
データ送信部１２５は、アプリケーションプログラム１１により生成されたデータを自計算機装置１０の書込み対象データとして他の計算機装置１０に送信する。
また、データ送信部１２５は、自計算機装置１０の書込み待ちデータ量テーブル２１を他の計算機装置１０に送信する。
更に、データ送信部１２５は、依頼先選択部１２３により記録依頼テーブル２２が生成された場合に、記録依頼テーブル２２を他の計算機装置１０に送信する。
また、データ送信部１２５は、依頼先選択部１２３により処理データテーブル２３が更新された場合に、更新後の処理データテーブル２３を他の計算機装置１０に送信する。
【００２４】
＊＊＊動作の説明＊＊＊
次に、図４を参照して、本実施の形態に係る計算機装置１０の動作例を説明する。各計算機装置１０は、図４に示す手順を繰り返す。
【００２５】
書込み待ちデータ量管理部１２２は、自計算機装置１０の書込み待ちデータ量を算出する（ステップＳ１０１）。そして、書込み待ちデータ量管理部１２２は、自計算機装置１０の書込み待ちデータ量を示す書込み待ちデータ量テーブル２１を生成する。書込み待ちデータ量管理部１２２は、生成した書込み待ちデータ量テーブル２１をデータ送信部１２５に出力する。書込み待ちデータ量管理部１２２は、例えば、補助記憶装置９０３へのキューに格納されているデータのデータ量をカウントして、自計算機装置１０の書込み待ちデータ量を得る。
また、書込み待ちデータ量管理部１２２は、生成した書込み待ちデータ量テーブル２１をメモリ９０２に格納する。
【００２６】
データ送信部１２５は、自計算機装置１０の書込み待ちデータ量テーブル２１を他の計算機装置１０に送信する（ステップＳ１０２）。
【００２７】
また、データ受信部１２１が、他の計算機装置１０から送信された他の計算機装置１０の書込み待ちデータ量テーブル２１を受信する（ステップＳ１０３）。そして、データ受信部１２１は、他の計算機装置１０の書込み待ちデータ量テーブル２１を書込み待ちデータ量管理部１２２に出力する。書込み待ちデータ量管理部１２２は、他の計算機装置１０の書込み待ちデータ量テーブル２１をメモリ９０２に格納する。
【００２８】
更に、データ受信部１２１は、他の計算機装置１０から送信された記録依頼テーブル２２を受信する（ステップＳ１０４）。そして、データ受信部１２１は、受信した記録依頼テーブル２２を書込み待ちデータ量管理部１２２に出力する。書込み待ちデータ量管理部１２２は、記録依頼テーブル２２をメモリ９０２に格納する。他の計算機装置１０から記録依頼テーブル２２が送信されない場合は、ステップＳ１０４は省略される。
【００２９】
また、アプリケーションプログラム１１がデータを生成し、生成したデータをデータ送信部１２５に出力する。データ送信部１２５は、アプリケーションプログラム１１により生成されたデータを書込み対象データとして他の計算機装置１０に送信する（ステップＳ１０５）。
アプリケーションプログラム１１において生成すべきデータがない場合は、ステップＳ１０５は省略される。
【００３０】
また、データ受信部１２１は、他の計算機装置１０から、他の計算機装置１０の書込み対象データを受信する（ステップＳ１０６）。そして、データ受信部１２１は、他の計算機装置１０の書込み対象データをアプリケーションプログラム１１に出力する。また、データ受信部１２１は、他の計算機装置１０の書込み対象データを書込み待ちデータ量管理部１２２に出力する。書込み待ちデータ量管理部１２２は、メモリ９０２から自計算機装置１０の書込み待ちデータ量テーブル２１、他の計算機装置１０の書込み待ちデータ量テーブル２１及び記録依頼テーブル２２を読み出す。そして、書込み待ちデータ量管理部１２２は、自計算機装置１０の書込み待ちデータ量テーブル２１、他の計算機装置１０の書込み待ちデータ量テーブル２１、記録依頼テーブル２２と、他の計算機装置１０の書込み対象データを依頼先選択部１２３に出力する。
【００３１】
なお、図４のステップＳ１０１〜Ｓ１０６の順序は例示であり、Ｓ１０１→Ｓ１０２の順序が確保されていれば、ステップＳ１０１〜Ｓ１０６の順序は入れ替わってもよい。
書込み待ちデータ量管理部１２２は、自計算機装置１０の書込み待ちデータ量テーブル２１、他の計算機装置１０の書込み待ちデータ量テーブル２１、記録依頼テーブル２２と、他の計算機装置１０の書込み対象データが揃ったら、自計算機装置１０の書込み待ちデータ量テーブル２１、他の計算機装置１０の書込み待ちデータ量テーブル２１、記録依頼テーブル２２と、他の計算機装置１０の書込み対象データを依頼先選択部１２３に出力する。
【００３２】
依頼先選択部１２３は、自計算機装置１０の書込み待ちデータ量テーブル２１、他の計算機装置１０の書込み待ちデータ量テーブル２１及び記録依頼テーブル２２に基づいて、他の計算機装置１０の書込み対象データの書込み先を判定する（ステップＳ１０７）。
なお、ステップＳ１０７の詳細は後述する。
【００３３】
ステップＳ１０７において他の計算機装置１０の書込み対象データの書込み先として自計算機装置１０の補助記憶装置９０３が選択された場合（ステップＳ１０８でＹＥＳ）は、データ書込み部１２４が書込み対象データを自計算機装置１０の補助記憶装置９０３に書き込む（ステップＳ１０９）。
【００３４】
一方、ステップＳ１０７において他の計算機装置１０の書込み対象データの書込み先として自計算機装置１０の補助記憶装置９０３が選択されておらず（ステップＳ１０８でＮＯ）、自計算機装置１０の記録依頼テーブル２２が生成されている場合（ステップＳ１１０でＹＥＳ）は、データ送信部１２５が自計算機装置１０の記録依頼テーブル２２を依頼先の計算機装置１０に送信する（ステップＳ１１１）。
【００３５】
次に、図５及び図６を参照して、図４のステップＳ１０７の詳細を説明する。
【００３６】
依頼先選択部１２３は、先ず、他の計算機装置１０から記録依頼テーブル２２を受信したか否かを判定する（ステップＳ１７０１）。
【００３７】
記録依頼テーブル２２を受信している場合（ステップＳ１７０１でＹＥＳ）は、依頼先選択部１２３は、記録依頼テーブル２２に記載の「時刻」が到来しているか否かを判定する（ステップＳ１７０２）。
「時刻」が到来している場合（ステップＳ１７０２でＹＥＳ）は、依頼先選択部１２３は、自計算機装置１０の補助記憶装置９０３を記録依頼テーブル２２で書込みを依頼されている書込み対象データの書込み先として選択する（ステップＳ１７０３）。
一方、「時刻」が到来していない場合（ステップＳ１７０２でＮＯ）は、依頼先選択部１２３は、記録依頼テーブル２２で書込みを依頼されている書込み対象データのデータ種別が新規なデータ種別であるか否かを判定する（ステップＳ１７０４）。新規なデータ種別であれば（ステップＳ１７０４でＹＥＳ）、依頼先選択部１２３は、自計算機装置１０の補助記憶装置９０３を当該書込み対象データの仮の書込み先として指定する（ステップＳ１７０７）。一方、新規なデータ種別でなければ（ステップＳ１７０４でＮＯ）、依頼先選択部１２３は後述のステップＳ１７０８の処理を行う。
【００３８】
ステップＳ１７０１において記録依頼テーブル２２を受信していないと判定した場合（ステップＳ１７０１でＮＯ）は、依頼先選択部１２３は、自計算機装置１０が、ステップＳ１０６で受信された書込み対象データの書込みを担当しているか否かを判定する（ステップＳ１７０５）。
より具体的には、依頼先選択部１２３は、処理データテーブル２３から、書込み対象データのデータ種別に対応するレコードを抽出し、抽出したレコードに記載の「計算機装置」が自計算機装置１０であるか否かを判定する。
【００３９】
自計算機装置１０が書込み対象データの書込み担当に該当する場合（ステップＳ１７０５でＹＥＳ）は、後述するステップＳ１７０８の処理が行われる。
一方、自計算機装置１０が書込み対象データの書込み担当に該当しない場合（ステップＳ１７０５でＮＯ）は、依頼先選択部１２３は、書込み対象データのデータ種別が新規なデータ種別であるか否かを判定する（ステップＳ１７０６）。
書込み対象データのデータ種別が新規なデータ種別である場合（ステップＳ１７０６でＹＥＳ）は、依頼先選択部１２３は、自計算機装置１０の補助記憶装置９０３を当該書込み対象データの仮の書込み先として指定する（ステップＳ１７０７）。
【００４０】
図６において、ステップＳ１７０８では、依頼先選択部１２３は、自計算機装置１０の予測書込み待ちデータ量と閾値とを比較する。
予測書込み待ちデータ量とは、自計算機装置１０の書込み待ちデータ量テーブル２１に記載されている書込み待ちデータ量と、書込み対象データのデータ量との合計値である。
依頼先選択部１２３は、自計算機装置１０の書込み待ちデータ量と、書込み対象データのデータ量とを合計して、自計算機装置１０の予測書込み待ちデータ量を得る。
そして、依頼先選択部１２３は、自計算機装置１０の予測書込み待ちデータ量を閾値と比較する。
【００４１】
自計算機装置１０の予測書込み待ちデータ量が閾値未満であれば（ステップＳ１７０９でＹＥＳ）、依頼先選択部１２３は、書込み対象データの書込み先として、自計算機装置１０を選択する（ステップＳ１７１０）。
書込み対象データのデータ種別が新規データ種別である場合は、ステップＳ１７０７での仮割当てがステップＳ１７１０において本割当てになる。この場合は、依頼先選択部１２３は、新規データ種別が自計算機装置１０の担当になるように処理データテーブル２３を更新する。そして、データ送信部１２５が更新後の処理データテーブル２３を他の計算機装置１０に送信する。
【００４２】
自計算機装置１０の予測書込み待ちデータ量が閾値以上であれば（ステップＳ１７０９でＮＯ）、依頼先選択部１２３は、書込み待ちデータ量が最少の計算機装置１０を抽出する（ステップＳ１７１１）。すなわち、依頼先選択部１２３は、書込み対象データの送信元又は記録依頼テーブル２２の送信元以外の計算機装置１０の中から書込み待ちデータ量が最少の計算機装置１０を抽出する。
【００４３】
次に、依頼先選択部１２３は、ステップＳ１７１１で抽出した計算機装置１０の予測書込み待ちデータ量と閾値とを比較する（ステップＳ１７１２）。
予測書込み待ちデータ量の算出方法は、前述したとおりである。
【００４４】
ステップＳ１７１１で抽出した計算機装置１０の予測書込み待ちデータ量が閾値未満であれば（ステップＳ１７１３でＹＥＳ）、依頼先選択部１２３は、書込み対象データの書込み先として、ステップＳ１７１１で抽出した計算機装置１０を選択する（ステップＳ１７１４）。
そして、依頼先選択部１２３は、記録依頼テーブル２２を生成する（ステップＳ１７１５）。具体的には、依頼先選択部１２３は、「時刻」に現在時刻を、「データ種別」に書込み対象データのデータ種別を、「Ｆｒｏｍ」に自計算機装置１０を、「Ｔｏ」にステップＳ１７１１で抽出した計算機装置１０を記述して、図９に例示する記録依頼テーブル２２を生成する。
ステップＳ１７１５で生成された記録依頼テーブル２２が前述のステップＳ１１１でデータ送信部１２５により送信される。
なお、各計算機装置１０では、このようにして生成された記録依頼テーブル２２を時系列で例えば補助記憶装置９０３に保持しておく。図１０は、時系列で保持されている記録依頼テーブル２２群を示す。図１０に例示されている記録依頼テーブル２２群は計算機システムの復旧の際に用いられる。
【００４５】
一方、ステップＳ１７１１で抽出した計算機装置１０の予測書込み待ちデータ量が閾値以上であれば（ステップＳ１７１３でＮＯ）、当該書込み対象データの書込み先はないと決定する（ステップＳ１７１６）。この場合は、依頼先選択部１２３は、書込み対象データの送信元の計算機装置１０又は記録依頼テーブル２２の送信元の計算機装置１０に、書込み先が存在しない旨を通知してもよい。
【００４６】
このように、図４〜図６の手順により、依頼先選択部１２３は、自計算機装置１０が書込み対象データの書込みを担当する場合に、自計算機装置１０の予測書込み待ちデータ量が閾値未満であるか否かを判定して、書込み対象データを自計算機装置１０の補助記憶装置９０３に書き込むことの許否を判定する。自計算機装置１０の予測書込み待ちデータ量が閾値以上であれば、依頼先選択部１２３は、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みを許可せず、書込み対象データの送信元以外の他の計算機装置１０の書込み待ちデータ量を比較して、依頼先計算機装置を選択する。
なお、図６のステップＳ１７１１では、書込み待ちデータ量が最少の計算機装置１０のみを依頼先計算機装置としているが、依頼先選択部１２３は、書込み待ちデータ量が少ない順に複数の他の計算機装置１０を依頼先計算機装置として選択してもよい。
【００４７】
また、記録依頼テーブル２２により、他のいずれかの計算機装置１０から書込み対象データの書込みを依頼された場合に、図４〜図６の手順により、依頼先選択部１２３は、自計算機装置１０の書込み待ちデータ量に基づき、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みの許否を判定する。より具体的には、依頼先選択部１２３は、自計算機装置１０の予測書込み待ちデータ量が閾値未満であるか否かを判定して、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みの許否を判定する。依頼先選択部１２３は、自計算機装置１０の予測書込み待ちデータ量が閾値以上であれば、書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みを許可しない。書込み対象データの自計算機装置１０の補助記憶装置９０３への書込みを許可しない場合は、依頼先選択部１２３は、書込み対象データの送信元及び書込みの依頼元以外の他の計算機装置１０の書込み待ちデータ量を比較して、依頼先計算機装置を選択する。
なお、図６のステップＳ１７１１では、書込み待ちデータ量が最少の計算機装置１０のみを依頼先計算機装置としているが、依頼先選択部１２３は、書込み待ちデータ量が少ない順に複数の他の計算機装置１０を依頼先計算機装置として選択してもよい。
【００４８】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、複数の計算機装置でデータを分散記録するため、データ記録を含めた処理時間が向上する。
【００４９】
また、本実施の形態によれば、複数の計算機装置でデータを分散記録するため、抗たん性が向上する。
【００５０】
また、本実施の形態によれば、継続運用中のスループットの急低下を防ぐことができ、また、継続運用中の処理時間の急低下を防ぐことができる。
【００５１】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、計算機装置１０のハードウェア構成の補足説明を行う。
図２に示すプロセッサ９０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図２に示すメモリ９０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
図２に示す補助記憶装置９０３は、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
図２に示す通信装置９０４は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００５２】
補助記憶装置９０３には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０２にロードされ、プロセッサ９０１により実行される。
プロセッサ９０１はＯＳの少なくとも一部を実行しながら、アプリケーションプログラム１１及び通信ミドルウェア１２を実行する。
プロセッサ９０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、アプリケーションプログラム１１及び通信ミドルウェア１２の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ９０２、補助記憶装置９０３、プロセッサ９０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、アプリケーションプログラム１１及び通信ミドルウェア１２は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【符号の説明】
【００５３】
１０  計算機装置、１１  アプリケーションプログラム、１２  通信ミドルウェア、２１  書込み待ちデータ量テーブル、２２  記録依頼テーブル、２３  処理データテーブル、１２１  データ受信部、１２２  書込み待ちデータ量管理部、１２３  依頼先選択部、１２４  データ書込み部、１２５  データ送信部、９０１  プロセッサ、９０２  メモリ、９０３  補助記憶装置、９０４  通信装置、９０５  バス。
【図１】
2018180758.tif 000003
【図２】
2018180758.tif 000004
【図３】
2018180758.tif 000005
【図４】
2018180758.tif 000006
【図５】
2018180758.tif 000007
【図６】
2018180758.tif 000008
【図７】
2018180758.tif 000009
【図８】
2018180758.tif 000010
【図９】
2018180758.tif 000011
【図１０】
2018180758.tif 000012