JP2018180819A - 計算機装置、書込み先選択方法及び書込み先選択プログラム - Google Patents

計算機装置、書込み先選択方法及び書込み先選択プログラム Download PDF

Info

Publication number
JP2018180819A
JP2018180819A JP2017077724A JP2017077724A JP2018180819A JP 2018180819 A JP2018180819 A JP 2018180819A JP 2017077724 A JP2017077724 A JP 2017077724A JP 2017077724 A JP2017077724 A JP 2017077724A JP 2018180819 A JP2018180819 A JP 2018180819A
Authority
JP
Japan
Prior art keywords
data
write
computer
storage device
amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017077724A
Other languages
English (en)
Inventor
正和 齋藤
Masakazu Saito
正和 齋藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017077724A priority Critical patent/JP2018180819A/ja
Publication of JP2018180819A publication Critical patent/JP2018180819A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】データ記録の高速化を実現しつつ、十分な抗たん性を確保する。【解決手段】計算機装置10は、各々に記憶装置が備わっている3つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる。書込み待ちデータ量取得部は、自計算機装置10の補助記憶装置903の書込み待ちデータの量を第1の書込み待ちデータ量として取得し、他の計算機装置の各々の記憶装置の書込み待ちデータの量を第2の書込み待ちデータ量として取得する。書込み先選択部123は、書込み対象データの書込み先の記憶装置を、第1の書込み待ちデータ量と書込み対象データの送信元以外の他の計算機装置の記憶装置の第2の書込み待ちデータ量とに基づき選択する。【選択図】図3

Description

本発明は、計算機装置(以下、単に計算機ともいう)に関する。より具体的には、複数の計算機装置が含まれる計算機システムに含まれる計算機装置に関する。
防衛分野等においては、データ記録の高速性や抗たん性が求められる場合が多い。この際に、計算機システムを構成する全計算機の電源断時にも、電源断の直前の状態から復旧するために復旧に必要なデータを予め復旧データ専用の補助記憶装置(データベース)に記録しておき、復旧時にはデータベースからデータを復旧していた。この際に、データベースへの書込みを高速化する場合は、データの記録先を複数に分散することによって記録時間を高速化するシャーディング機能を用いて補助記憶装置を分散させていた。
例えば、特許文献1に開示の技術では、シャーディング機能が用いられている。
特開2007−164523号公報
しかし、このようなシャーディング機能を用いデータの記録先を分散させた場合も、補助記憶装置のマスタが故障すると計算機システムを復旧することができず、十分な抗たん性を確保できないという課題があった。
この発明は、上記のような課題を解決することを主な目的の一つとしている。具体的には、本発明は、データ記録の高速化を実現しつつ、十分な抗たん性を確保できる構成を得ることを主な目的とする。
本発明に係る計算機装置は、
各々に記憶装置が備わっている3つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置であって、
自計算機装置の記憶装置の書込み待ちデータの量を第1の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第2の書込み待ちデータ量として取得する書込み待ちデータ量取得部と、
前記書込み対象データの書込み先の記憶装置を、前記第1の書込み待ちデータ量と前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とに基づき選択する書込み先選択部とを有する。
本発明によれば、データ記録の高速化を実現しつつ、十分な抗たん性を確保することができる。
実施の形態1に係る計算機システムの構成例を示す図。 実施の形態1に係る計算機装置のハードウェア構成例を示す図。 実施の形態1に係る計算機装置の機能構成例を示す図。 実施の形態1に係る計算機装置の動作例を示すフローチャート。 実施の形態1に係る書込み先選択処理の詳細を示すフローチャート。 実施の形態1に係る書込み待ちデータ量テーブルの例を示す図。 実施の形態1に係る記録計算機割当テーブルの例を示す図。 実施の形態1に係るデータ書込平準化の例を示す図。 実施の形態1に係る書込み先選択処理の詳細を示すフローチャート。 実施の形態2に係る計算機装置の機能構成例を示す図。 実施の形態2に係る処理完了通知テーブルの例を示す図。 実施の形態2に係る動作シーケンスの例を示す図。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
実施の形態1.
従来は、計算機装置の性能はサーバ計算機が高く、クライアント計算機は低いという制約があった。このため、CORBA(Common Object Request Broker Architecture)などクライアント−サーバ型で、ある特定の性能の高いサーバ計算機に対してクライアント計算機が処理を依頼して応答を待つ方式が主流であった。しかし、近年、計算機の性能向上によりDDS(Data Distribution Service for Real−time Systems)のようなデータが全ての計算機にマルチキャスト又はブロードキャストで配信され、各計算機は流れているデータの中から必要なデータを能動的に処理するデータドリブン型アーキテクチャが注目されている。
本実施の形態では、データドリブン型アーキテクチャを用いた計算機システムを説明する。
***構成の説明***
図1は、本実施の形態に係る計算機システムの構成例を示す。
図1は、一例として、計算機装置A10a、計算機装置B10b、計算機装置C10c及び計算機装置D10dで構成される計算機システムを示す。
計算機装置A10aには、アプリケーションプログラム11aと通信ミドルウェア12aと補助記憶装置903aが含まれる。計算機装置B10bには、アプリケーションプログラム11bと通信ミドルウェア12bと補助記憶装置903bが含まれる。計算機装置C10cには、アプリケーションプログラム11cと通信ミドルウェア12cと補助記憶装置903cが含まれる。計算機装置D10dには、アプリケーションプログラム11dと通信ミドルウェア12dと補助記憶装置903dが含まれる。
計算機装置A10a、計算機装置B10b、計算機装置C10c及び計算機装置D10dを区別する必要がない場合は、これらをまとめて計算機装置10という。
また、アプリケーションプログラム11a、アプリケーションプログラム11b、アプリケーションプログラム11c及びアプリケーションプログラム11dを区別する必要がない場合は、これらをまとめてアプリケーションプログラム11という。
通信ミドルウェア12a、通信ミドルウェア12b、通信ミドルウェア12c及び通信ミドルウェア12dを区別する必要がない場合は、これらをまとめて通信ミドルウェア12という。
また、補助記憶装置903a、補助記憶装置903b、補助記憶装置903c及び補助記憶装置903dを区別する必要がない場合は、これらをまとめて補助記憶装置903という。
アプリケーションプログラム11間の通信は通信ミドルウェア12を介して行われる。
各計算機装置10のアプリケーションプログラム11はデータを生成する。各計算機装置10の通信ミドルウェア12は、アプリケーションプログラム11で生成されたデータを書込み対象データとして他の全ての計算機装置10に送信する。書込み対象データは、計算機システムの復旧の際に復旧データとして用いることができるようにするために、送信元の計算機装置10以外のn台の計算機装置10の補助記憶装置903に書き込まれる。nは、1以上であって、計算機システムに含まれる計算機装置10の台数以下の任意の値である。なお、nの値は設定により変更可能である。n=1の時は抗たん性は低いがデータ記録速度が高速である。nが大きくなるほどデータ記録速度は低下するが抗たん性は向上する。
各計算機装置10は、同期して書込み対象データの送受信、書込み対象データの書込み先の選択及び書込み対象データの書込み処理を行う。
なお、各計算機装置10で行われる動作は、書込み先選択方法及び書込み先選択プログラムに相当する。
図2は、本実施の形態に係る計算機装置10のハードウェア構成例を示す。
計算機装置10は、ハードウェアとして、プロセッサ901、メモリ902、補助記憶装置903及び通信装置904を備える。プロセッサ901、メモリ902、補助記憶装置903及び通信装置904はバス905に接続されている。
補助記憶装置903には、アプリケーションプログラム11及び通信ミドルウェア12が記憶されている。アプリケーションプログラム11及び通信ミドルウェア12は、補助記憶装置903からメモリ902にロードされる。そして、プロセッサ901がメモリ902からアプリケーションプログラム11及び通信ミドルウェア12を読み出し、アプリケーションプログラム11及び通信ミドルウェア12を実行する。
この結果、プロセッサ901は、後述するアプリケーションプログラム11及び通信ミドルウェア12の動作を行う。
図2では、プロセッサ901がアプリケーションプログラム11及び通信ミドルウェア12を実行している状態を模式的に表している。
また、補助記憶装置903は、自計算機装置10のアプリケーションプログラム11で生成されたデータ及び他の計算機装置10のアプリケーションプログラム11で生成されたデータを記憶する。
通信装置904は、計算機装置10が他の計算機装置10と通信を行う際に用いられる。
図3は、本実施の形態に係る計算機装置10の機能構成例を示す。
データ受信部121は、他の計算機装置10から送信された書込み対象データを受信する。
また、データ受信部121は、他の計算機装置10から送信された他の計算機装置10の補助記憶装置903における書込み待ちデータ量テーブル21を受信する。書込み待ちデータ量テーブル21には、書込み待ちデータ量が記述される。書込み待ちデータ量は、書込み待ちデータのデータ量である。書込み待ちデータは、補助記憶装置903への書込みを待っている状態のデータである。
以下、他の計算機装置10の補助記憶装置903における書込み待ちデータ量を、他の計算機装置10の書込み待ちデータ量ともいう。また、他の計算機装置10の補助記憶装置903における書込み待ちデータ量テーブル21を、他の計算機装置10の書込み待ちデータ量テーブル21ともいう。
図6は、計算機装置Aの書込み待ちデータ量テーブル21の例を示す。書込み待ちデータ量テーブル21では、時刻ごとに書込み待ちデータ量が示される。
図1に示す計算機システムでは、各計算機装置A10a〜計算機装置D10dは、それぞれ計算機装置A10a〜計算機装置D10dの書込み待ちデータ量テーブル21を保持する。このように、計算機装置10間で書込み待ちデータ量テーブル21を共有するのは、各計算機装置10は自計算機装置10の書込み待ちデータ量は把握できても他計算機装置10の書込み待ちデータ量は把握できないためである。
書込み待ちデータ量管理部122は、データ受信部121により受信された他の計算機装置10の書込み待ちデータ量テーブル21をメモリ902に格納する。また、書込み待ちデータ量管理部122は、メモリ902から他の計算機装置10の書込み待ちデータ量テーブル21を読み出す。
更に、書込み待ちデータ量管理部122は自計算機装置10の補助記憶装置903での書込み待ちデータ量を取得し、自計算機装置10の補助記憶装置903での書込み待ちデータ量を示す書込み待ちデータ量テーブル21をメモリ902に格納する。以下、自計算機装置10の補助記憶装置903での書込み待ちデータ量を、自計算機装置10の書込み待ちデータ量ともいう。また、自計算機装置10の書込み待ちデータ量を示す書込み待ちデータ量テーブル21を、自計算機装置10の書込み待ちデータ量テーブル21ともいう。
また、書込み待ちデータ量管理部122は、メモリ902から自計算機装置10の書込み待ちデータ量テーブル21を読み出す。
書込み待ちデータ量管理部122は、読み出した自計算機装置10の書込み待ちデータ量テーブル21及び他の計算機装置10の書込み待ちデータ量テーブル21を書込み先選択部123に出力する。
また、書込み待ちデータ量管理部122は、他の計算機装置10からの書込み対象データをデータ受信部121から取得する。そして、書込み待ちデータ量管理部122は、他の計算機装置10からの書込み対象データを書込み先選択部123に出力する。
なお、自計算機装置10の書込み待ちデータ量は第1の書込み待ちデータ量に相当する。また、他計算機装置10の書込み待ちデータ量は第2の書込み待ちデータ量に相当する。
図3に示すように、データ受信部121及び書込み待ちデータ量管理部122は、併せて書込み待ちデータ量取得部に相当する。
また、データ受信部121及び書込み待ちデータ量管理部122により行われる処理は、書込み待ちデータ量取得処理に相当する。
書込み先選択部123は、書込み対象データの書込み先の記憶装置を、自計算機装置10の書込み待ちデータ量(第1の書込み待ちデータ量)と書込み対象データの送信元以外の他の計算機装置10の書込み待ちデータ量(第2の書込み待ちデータ量)とに基づき選択する。
なお、書込み先選択部123により行われる処理は、書込み先選択処理に相当する。
データ書込み部124は、書込み先選択部123により書込み対象データの書込み先の記憶装置として自計算機装置10の補助記憶装置903が選択された場合に、書込み対象データを自計算機装置10の補助記憶装置903に書込む。
データ送信部125は、アプリケーションプログラム11により生成されたデータを自計算機装置10の書込み対象データとして他の計算機装置10に送信する。
また、データ送信部125は、自計算機装置10の書込み待ちデータ量テーブル21を他の計算機装置10に送信する。
***動作の説明***
次に、図4を参照して、本実施の形態に係る計算機装置10の動作例を説明する。各計算機装置10は、同期して、図4に示す手順を一定の周期で繰り返す。
書込み待ちデータ量管理部122は、自計算機装置10の書込み待ちデータ量を算出する(ステップS101)。そして、書込み待ちデータ量管理部122は、自計算機装置10の書込み待ちデータ量を示す書込み待ちデータ量テーブル21を生成する。書込み待ちデータ量管理部122は、生成した書込み待ちデータ量テーブル21をデータ送信部125に出力する。書込み待ちデータ量管理部122は、例えば、補助記憶装置903へのキューに格納されているデータのデータ量をカウントして、自計算機装置10の書込み待ちデータ量を得る。
また、書込み待ちデータ量管理部122は、生成した書込み待ちデータ量テーブル21をメモリ902に格納する。
データ送信部125は、自計算機装置10の書込み待ちデータ量テーブル21を他の計算機装置10に送信する(ステップS102)。
また、データ受信部121が、他の計算機装置10から送信された他の計算機装置10の書込み待ちデータ量テーブル21を受信する(ステップS103)。そして、データ受信部121は、他の計算機装置10の書込み待ちデータ量テーブル21を書込み待ちデータ量管理部122に出力する。書込み待ちデータ量管理部122は、他の計算機装置10の書込み待ちデータ量テーブル21をメモリ902に格納する。
また、アプリケーションプログラム11がデータを生成し、生成したデータをデータ送信部125に出力する。データ送信部125は、アプリケーションプログラム11により生成されたデータを書込み対象データとして他の計算機装置10に送信する(ステップS104)。
アプリケーションプログラム11において生成すべきデータがない場合は、ステップS104は省略される。
また、データ受信部121は、他の計算機装置10から、他の計算機装置10の書込み対象データを受信する(ステップS105)。そして、データ受信部121は、他の計算機装置10の書込み対象データをアプリケーションプログラム11に出力する。また、データ受信部121は、他の計算機装置10の書込み対象データを書込み待ちデータ量管理部122に出力する。書込み待ちデータ量管理部122は、メモリ902から自計算機装置10の書込み待ちデータ量テーブル21及び他の計算機装置10の書込み待ちデータ量テーブル21を読み出す。そして、書込み待ちデータ量管理部122は、自計算機装置10の書込み待ちデータ量テーブル21、他の計算機装置10の書込み待ちデータ量テーブル21と、他の計算機装置10の書込み対象データを書込み先選択部123に出力する。
なお、図4のステップS101〜S105の順序は例示であり、S101→S102の順序が確保されていれば、ステップS101〜S105の順序は入れ替わってもよい。
書込み待ちデータ量管理部122は、自計算機装置10の書込み待ちデータ量テーブル21、他の計算機装置10の書込み待ちデータ量テーブル21と、他の計算機装置10の書込み対象データが揃ったら、自計算機装置10の書込み待ちデータ量テーブル21、他の計算機装置10の書込み待ちデータ量テーブル21と、他の計算機装置10の書込み対象データを書込み先選択部123に出力する。
書込み先選択部123は、自計算機装置10の書込み待ちデータ量テーブル21及び他の計算機装置10の書込み待ちデータ量テーブル21に基づいて、他の計算機装置10の書込み対象データの書込み先を選択する(ステップS106)。
なお、ステップS106の詳細は後述する。
ステップS106において他の計算機装置10の書込み対象データの書込み先として自計算機装置10の補助記憶装置903が選択された場合(ステップS107でYES)は、データ書込み部124が書込み対象データを自計算機装置10の補助記憶装置903に書き込む(ステップS108)。
次に、図5を参照して、図4のステップS106の詳細を説明する。
なお、図5の例では、書込み対象データを優先計算機装置の補助記憶装置903に優先して書き込むようにしている。
優先計算機装置は、図1の計算機装置A10a〜計算機装置D10dの中で、書込み対象データの書込み先として、補助記憶装置903が優先して選択される計算機装置である。例えば、計算機装置B10b〜計算機装置D10dの書込み対象データの書込み先として、計算機装置A10aの補助記憶装置903aが計算機装置B10b〜計算機装置D10dの補助記憶装置903dよりも優先されることが設定されている場合は、計算機装置A10aが優先計算機装置である。また、計算機装置A10aの補助記憶装置903aを優先記憶装置という。
同じ計算機装置10に復旧データがまとまって記憶されている方が効率的に計算機システムを復旧させることができので、図5の例では、優先計算機装置の補助記憶装置903にまとまって書込み対象データを書き込むようにしている。そして、優先計算機装置の書込み待ちデータ量が過大になった場合に、書込み先選択部123は、他の計算機装置の補助記憶装置903を書込み対象データの書込み先として選択する。優先計算機装置は、2台以上存在してもよい。優先計算機装置が2台以上存在する場合は、書込み先選択部123は、優先計算機装置ごとに図5に示す処理を行う。
なお、図5に示す書込み先の選択方法は一例であり、書込み先選択部123は、図5に示す手順と異なる手順で書込み先を決定することができる。
書込み先選択部123は、先ず、優先計算機装置の予測書込み待ちデータ量と閾値とを比較する(ステップS161)。
予測書込み待ちデータ量とは、優先計算機装置の書込み待ちデータ量テーブル21に記載されている書込み待ちデータ量と、書込み対象データのデータ量との合計値である。
自計算機装置10が優先計算機装置であれば、書込み先選択部123は、自計算機装置10の書込み待ちデータ量と、書込み対象データのデータ量とを合計して、優先計算機装置としての自計算機装置10の予測書込み待ちデータ量を得る。
一方、他の計算機装置10が優先計算機装置であれば、書込み先選択部123は、当該他の計算機装置10の書込み待ちデータ量と、書込み対象データのデータ量とを合計して、優先計算機装置としての他の計算機装置10の予測書込み待ちデータ量を得る。
そして書込み先選択部123は、優先計算機装置の予測書込み待ちデータ量を閾値と比較する。
優先計算機装置の予測書込み待ちデータ量が閾値未満であれば(ステップS162でYES)、書込み先選択部123は、書込み対象データの書込み先として、優先計算機装置を選択する(ステップS163)。
一方、優先計算機装置の予測書込み待ちデータ量が閾値以上であれば(ステップS162でNO)、書込み先選択部123は、書込み待ちデータ量が最少の計算機装置10を抽出する(ステップS164)。すなわち、書込み先選択部123は、書込み対象データの送信元及び現在の優先計算機装置以外の計算機装置10の中から書込み待ちデータ量が最少の計算機装置10を抽出する。
次に、書込み先選択部123は、ステップS164で抽出した計算機装置10の予測書込み待ちデータ量と閾値とを比較する(ステップS165)。
予測書込み待ちデータ量の算出方法は、前述したとおりである。
ステップS164で抽出した計算機装置10の予測書込み待ちデータ量が閾値未満であれば(ステップS166でYES)、書込み先選択部123は、書込み対象データの書込み先として、ステップS164で抽出した計算機装置10を選択する(ステップS167)。
一方、ステップS164で抽出した計算機装置10の予測書込み待ちデータ量が閾値以上であれば(ステップS166でNO)、当該書込み対象データの書込み先はないと決定する(ステップS168)。この場合は、書込み先選択部123は、書込み対象データの送信元の計算機装置10に、書込み先が存在しない旨を通知してもよい。
そして、書込み先選択部123は、ステップS163、ステップS167又はステップS168の結果に応じて、記録計算機割当てテーブルを更新する(ステップS169)。
記録計算機割当テーブル22は、図7に示すテーブルである。記録計算機割当てテーブルには、書込み対象データごとに、書込み先の計算機と、書込みを開始する時刻が示される。記録計算機割当テーブル22は、計算機システムの復旧時に参照される。
ステップS163の後にステップS169が行われる場合は、記録計算機割当てテーブルの「計算機」の欄には、優先計算機装置が書き込まれる。ステップS167の後にステップS169が行われる場合は、記録計算機割当てテーブルの「計算機」の欄には、ステップS164で抽出された計算機装置10が書き込まれる。ステップS168の後にステップS169が行われる場合は、記録計算機割当てテーブルの「計算機」の欄には、「なし」が書き込まれる。
図5の手順によれば、各計算機装置10において、書込み先選択部123は、自計算機装置10が優先計算機装置に該当する場合(換言すると、自計算機装置10の補助記憶装置903が優先記憶装置に該当する場合)に、自計算機装置10の書込み待ちデータ量に基づき、書込み対象データの自計算機装置10の補助記憶装置903への書込みの許否を判定する。具体的には、書込み先選択部123は、自計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値未満であるか否かを判定して、書込み対象データの自計算機装置10の補助記憶装置903への書込みの許否を判定する。自計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値未満であれば、書込み先選択部123は、書込み対象データの自計算機装置10の補助記憶装置903への書込みを許可し、書込み対象データの書込み先の記憶装置として自計算機装置10の補助記憶装置903を選択する。一方、自計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値以上であれば、書込み先選択部123は、書込み対象データの自計算機装置10の補助記憶装置903への書込みを許可しない。そして、書込み先選択部123は、書込み対象データの送信元以外の他の計算機装置10の書込み待ちデータ量に基づき、書込み対象データの送信元以外の他の計算機装置10の中から、書込み対象データの書込み先の記憶装置を選択する。
また、書込み先選択部123は、他のいずれかの計算機装置10が優先計算機装置に該当する場合(換言すると、他のいずれかの計算機装置10の補助記憶装置903が優先記憶装置に該当する場合)に、当該他の計算機装置10の書込み待ちデータ量に基づき、書込み対象データの当該他の計算機装置の記憶装置への書込みの許否を判定する。具体的には、書込み先選択部123は、当該他の計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値未満であるか否かを判定して、書込み対象データの当該他の計算機装置10の補助記憶装置903への書込みの許否を判定する。当該他の計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値未満であれば、書込み先選択部123は、書込み対象データの当該他の計算機装置10の補助記憶装置903への書込みを許可し、書込み対象データの書込み先の記憶装置として当該他の計算機装置10の補助記憶装置903を選択する。一方、当該他の計算機装置10の書込み待ちデータ量と書込み対象データのデータ量との合計値が閾値以上であれば、書込み先選択部123は、書込み対象データの当該他の計算機装置10の記憶装置への書込みを許可しない。そして、書込み先選択部123は、自計算機装置10が優先計算機装置に該当しなければ、自計算機装置10の書込み待ちデータ量と当該他の計算機装置10以外の他の計算機装置10の書込み待ちデータ量とを比較して、書込み対象データの書込み先の記憶装置を選択する。
図8は、図5に示す手順を行った場合の計算機装置10の書込待ちデータ量の時間推移を示す。
図8では、計算機装置A10aが優先計算機装置である。また、現在時刻はtである。現在時刻tにおける計算機装置A10aの書込待ちデータ量をDxmとする。また、書込み対象データのデータ量をdxm+1とする。また、閾値はDxMAXとする。
図8(a)は、優先計算機装置である計算機装置A10aの補助記憶装置903aに書込み対象データを書き込む場合の書込み待ちデータ量を示す。
図8(a)では、計算機装置A10aの書込待ちデータ量Dxmと書込み対象データのデータ量dxm+1との合計値である予測書込待ちデータ量である(Dxm+dxm+1)は閾値DxMAXを越える(図5のステップS162でNO)。このため、書込み先選択部123は、書込み待ちデータ量が最も少ない計算機装置D10dを抽出する(図5のステップS164)。計算機装置D10dの予測書込待ちデータ量は、閾値DxMAX未満なので(図5のステップS166でNO)。書込み先選択部123は、計算機装置D10dの補助記憶装置903dを書込み先として選択する(図5のステップS167)。
この結果、図8(b)に示すように、計算機装置A10aの書込待ちデータ量Dxmは閾値DxMAX未満を維持している。次の時刻tm+1以降は、計算機装置A10aに代えて計算機装置D10dが優先計算機装置となる。
また、図9は、図4のステップS106の詳細の別の例を示す。
なお、図9の例では、優先計算機装置という概念は存在しない。
書込み先選択部123は、各計算機装置10の予測書込み待ちデータ量を算出する(ステップS1601)。
つまり、書込み先選択部123は、書込み対象データの送信元以外の計算機装置10の予測書込み待ちデータ量を算出する。
次に、書込み先選択部123は、各計算機装置10の予測書込み待ちデータ量を比較する(ステップS1602)。
次に、書込み先選択部123は、予測書込み待ちデータ量が少ない順にn台の計算機装置10を抽出する(ステップS1603)。
次に、書込み先選択部123は、ステップS1603で抽出したn台の計算機装置10の補助記憶装置903を書込み先として選択する。
最後に、書込み先選択部123は、記録計算機割当てテーブルを更新する。具体的には、書込み先選択部123は、記録計算機割当てテーブルの「計算機」の欄に、ステップS1604で選択されたn台の計算機装置10を書き込む。
なお、図5に示す手順と図9に示す手順を併用してもよい。例えば、n=2である場合に、書込み先選択部123は、書込み対象データの1つの書込み先を図5に示す手順にて決定し、残りの書込み先を図9に示す手順で決定するようにしてもよい。
***実施の形態の効果の説明***
本実施の形態によれば、複数の計算機装置でデータを分散記録するため、データ記録を含めた処理時間が向上する。
また、本実施の形態によれば、複数の計算機装置でデータを分散記録するため、抗たん性が向上する。
また、本実施の形態によれば、継続運用中のスループットの急低下を防ぐことができ、また、継続運用中の処理時間の急低下を防ぐことができる。
また、本実施の形態では、各計算機装置が、それぞれの計算機装置の書込み待ちデータ量を解析して書込み対象データの書込み先を選択するため、書込み対象データの書込みを他の計算機装置に依頼する必要がない。このため、計算機システムの通信帯域が書込みの依頼メッセージの送受信に費やされる事態を回避することができる。
また、本実施の形態では、各計算機装置が、それぞれの計算機装置の書込み待ちデータ量を把握しているため、書込み対象データの他の計算機装置への書込みの依頼により、特定の計算機装置の書込み待ちデータ量が急増するという事態が発生しない。また、特定の計算機装置の書込み待ちデータ量が急増するという事態が発生しないため、ある計算機装置から他の計算機装置に書込み対象データの書込みを再依頼するという悪循環は発生しない。このため、データの分散保存の平準化が非効率になる事態を回避することができる。
実施の形態2.
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図10は、本実施の形態に係る計算機装置10の機能構成例を示す。
図10では、図3の機能構成と比較して、処理完了通知テーブル23が追加されている。
本実施の形態では、データ書込み部124による書込み対象データの補助記憶装置903への書込みが終了すると、データ書込み部124が書込み処理の完了を通知する処理完了通知テーブル23を生成する。また、データ書込み部124による書込み対象データの書込みが行われない場合は、書込み先選択部123が処理完了通知テーブル23を生成する。書込み先選択部123及びデータ書込み部124は、生成した処理完了通知テーブル23をメモリ902に格納する。また、書込み先選択部123及びデータ書込み部124は、生成した処理完了通知テーブル23をデータ送信部125に出力する。
データ送信部125は、書込み先選択部123又はデータ書込み部124により生成された処理完了通知テーブル23を他の計算機装置10に送信する。
また、本実施の形態では、データ受信部121は、他の計算機装置10から送信された処理完了通知テーブル23を受信する。そして、データ受信部121は、受信した処理完了通知テーブル23を書込み待ちデータ量管理部122に出力する。
書込み待ちデータ量管理部122は、処理完了通知テーブル23をメモリ902に格納する。また、書込み待ちデータ量管理部122は、書込み先選択部123に書込み対象データの書込み先を選択させるためにメモリ902から書込み待ちデータ量テーブル21を読み出す際に、併せて処理完了通知テーブル23もメモリ902から読み出す。そして、書込み待ちデータ量管理部122は、書込み待ちデータ量テーブル21と処理完了通知テーブル23とを併せて書込み先選択部123に出力する。
書込み先選択部123は、実施の形態1と同様に、周期ごとに、書込み対象データの書込み先を選択する。つまり、書込み先選択部123は、繰り返し到来する選択タイミングが到来する度に、書込み対象データの書込み先を選択する。
書込み先選択部123は、処理完了通知テーブル23を送信できた計算機装置10の中から書込み対象データの書込み先を選択する。つまり、書込み先選択部123は、他のいずれかの計算機装置10から処理完了通知テーブル23を受信していない場合は、当該他の計算機装置10の補助記憶装置903は書込み対象データの書込み先として選択できない状態にあると判定する。そして、書込み先選択部123は、書込み対象データの書込み先として選択できない補助記憶装置903を除外して、書込み対象データの書込み先を選択する。
処理完了通知テーブル23は、このように、各計算機装置10の補助記憶装置903が書込み対象データの書込み先として選択可能であることを他の計算機装置10に通知するテーブルである。処理完了通知テーブル23は、選択可能通知に相当する。
図11は、処理完了通知テーブル23の例を示す。
図11(a)は、計算機装置A10aで生成される処理完了通知テーブル23の例を示す。
図11(b)は、計算機装置B10bで生成される処理完了通知テーブル23の例を示す。
図11(c)は、計算機装置C10cで生成される処理完了通知テーブル23の例を示す。
図11(d)は、計算機装置D10dで生成される処理完了通知テーブル23の例を示す。
実施の形態1では計算機システム内の計算機装置10間の同期が前提であったが、本実施の形態では、処理完了通知テーブル23の共有により、いずれかの計算機装置10の書込み処理が一定時間内に間に合わない場合でも、間に合った残りの計算機装置10のみで動作を継続することができる。
書込み処理が間に合わなかった計算機装置10から処理完了通知テーブル23を受信した場合には、次の周期には当該計算機装置10を含めて書込み対象データの書込み先を選択することができる。
図12は、本実施の形態に係る計算機装置A10a〜計算機装置D10dの動作シーケンスを示す。
図12において、破線は、各周期の終端を示す。計算機装置A10a〜計算機装置D10dは、各周期の終端までに処理完了通知テーブル23を送信していなければならない。
周期Tm−2では、計算機装置A10a〜計算機装置D10dのいずれもが、周期Tm−2の終了までに処理完了通知テーブル23を送信しており、周期Tm−2の終了時では、計算機装置A10a〜計算機装置D10dは、それぞれ、計算機装置A10a〜計算機装置D10dの処理完了通知テーブル23を保持している。
このため、周期Tm−1において、計算機装置A10a〜計算機装置D10dの各々では、書込み先選択部123が、計算機装置A10a〜計算機装置D10dの中から書込み対象データの書込み先を選択する。書込み先選択部123による書込み対象データの書込み先の選択手順は実施の形態1に示した通りである。
次に、周期Tm−1では、計算機装置A10a、計算機装置B10b及び計算機装置D10dは、それぞれ、周期Tm−1の終了までに処理完了通知テーブル23を送信することができたが、計算機装置C10cでは、書込み処理に時間を要してしまい、処理完了通知テーブル23を送信することができなかった。このため、周期Tm−1の終了時では、計算機装置A10a〜計算機装置D10dは、計算機装置A10a、計算機装置B10b及び計算機装置D10dの処理完了通知テーブル23のみを保持している。
従って、周期Tでは、計算機装置A10a〜計算機装置D10dの各々では、書込み先選択部123が、計算機装置A10a、計算機装置B10b及び計算機装置D10dの中から書込み対象データの書込み先を選択する。
周期Tでは、計算機装置A10a〜計算機装置D10dのいずれもが、周期Tの終了までに処理完了通知テーブル23を送信しており、周期Tの終了時では、計算機装置A10a〜計算機装置D10dは、それぞれ、計算機装置A10a〜計算機装置D10dの処理完了通知テーブル23を保持している。
このため、周期Tm+1において、計算機装置A10a〜計算機装置D10dの各々では、書込み先選択部123が、計算機装置A10a〜計算機装置D10dの中から書込み対象データの書込み先を選択する。
このように、本実施の形態では、同期できない計算機装置が存在する場合でも、残りの計算機装置でデータ記録を分担する。このため、本実施の形態によれば、同期できない計算機装置が存在する場合でも、分散記録時の継続運用中の計算機システム全体の処理時間の急低下を防止することができる。
また、本実施の形態によれば、あるタイミングで使用できる全ての計算機装置を使用して最短の時間で分散記録をしようとするため、分散記録時の継続運用中の計算機システム全体の処理時間の高速化を図ることができる。
以上、本発明の実施の形態について説明したが、これら2つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
***ハードウェア構成の説明***
最後に、計算機装置10のハードウェア構成の補足説明を行う。
図2に示すプロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図2に示すメモリ902は、RAM(Random Access Memory)である。
図2に示す補助記憶装置903は、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図2に示す通信装置904は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
補助記憶装置903には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ902にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、アプリケーションプログラム11及び通信ミドルウェア12を実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、アプリケーションプログラム11及び通信ミドルウェア12の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、アプリケーションプログラム11及び通信ミドルウェア12は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
10 計算機装置、11 アプリケーションプログラム、12 通信ミドルウェア、21 書込み待ちデータ量テーブル、22 記録計算機割当テーブル、23 処理完了通知テーブル、121 データ受信部、122 書込み待ちデータ量管理部、123 書込み先選択部、124 データ書込み部、125 データ送信部、901 プロセッサ、902 メモリ、903 補助記憶装置、904 通信装置、905 バス。

Claims (11)

  1. 各々に記憶装置が備わっている3つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置であって、
    自計算機装置の記憶装置の書込み待ちデータの量を第1の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第2の書込み待ちデータ量として取得する書込み待ちデータ量取得部と、
    前記書込み対象データの書込み先の記憶装置を、前記第1の書込み待ちデータ量と前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とに基づき選択する書込み先選択部とを有する計算機装置。
  2. 前記書込み先選択部は、
    自計算機装置の記憶装置が、書込み先の記憶装置として優先して選択される優先記憶装置に該当する場合に、前記第1の書込み待ちデータ量に基づき、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、
    前記書込み対象データの自計算機装置の記憶装置への書込みを許可しない場合に、前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量に基づき、前記書込み対象データの送信元以外の他の計算機装置の中から、前記書込み対象データの書込み先の記憶装置を選択する請求項1に記載の計算機装置。
  3. 前記書込み先選択部は、
    前記第1の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が閾値未満であるか否かを判定して、前記書込み対象データの自計算機装置の記憶装置への書込みの許否を判定し、
    前記第1の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値未満であれば、前記書込み対象データの自計算機装置の記憶装置への書込みを許可し、前記書込み対象データの書込み先の記憶装置として自計算機装置の記憶装置を選択し、
    前記第1の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値以上であれば、前記書込み対象データの自計算機装置の記憶装置への書込みを許可せず、前記書込み対象データの送信元以外の他の計算機装置の中から、前記書込み対象データの書込み先の記憶装置を選択する請求項2に記載の計算機装置。
  4. 前記書込み先選択部は、
    他のいずれかの計算機装置の記憶装置が前記優先記憶装置に該当する場合に、当該他の計算機装置の記憶装置の前記第2の書込み待ちデータ量に基づき、前記書込み対象データの当該他の計算機装置の記憶装置への書込みの許否を判定し、
    前記書込み対象データの当該他の計算機装置の記憶装置への書込みを許可しない場合に、前記第1の書込み待ちデータ量と当該他の計算機装置以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とを比較して、前記書込み対象データの書込み先の記憶装置を選択する請求項3に記載の計算機装置。
  5. 前記書込み先選択部は、
    当該他の計算機装置の記憶装置の前記第2の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値未満であるか否かを判定して、前記書込み対象データの当該他の計算機装置の記憶装置への書込みの許否を判定し、
    当該他の計算機装置の記憶装置の前記第2の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値未満であれば、前記書込み対象データの当該他の計算機装置の記憶装置への書込みを許可し、前記書込み対象データの書込み先の記憶装置として当該他の計算機装置の記憶装置を選択し、
    当該他の計算機装置の記憶装置の前記第2の書込み待ちデータ量と前記書込み対象データのデータ量との合計値が前記閾値以上であれば、前記書込み対象データの当該他の計算機装置の記憶装置への書込みを許可せず、自計算機装置の記憶装置が前記優先記憶装置に該当しなければ、前記第1の書込み待ちデータ量と当該他の計算機装置以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とを比較して、前記書込み対象データの書込み先の記憶装置を選択する請求項4に記載の計算機装置。
  6. 前記書込み先選択部は、
    書込み待ちデータの量が少ない順に規定数の記憶装置を前記書込み対象データの書込み先の記憶装置として選択する請求項1に記載の計算機装置。
  7. 前記書込み先選択部は、
    繰り返し到来する選択タイミングが到来する度に、前記書込み対象データの書込み先の記憶装置を選択しており、
    いずれかの選択タイミングにて、前記書込み対象データの送信元以外の他のいずれかの計算機装置の記憶装置が前記書込み対象データの書込み先の記憶装置として選択できない状態にある場合に、前記書込み対象データの書込み先の記憶装置として選択できない記憶装置を除外して、前記書込み対象データの書込み先の記憶装置を選択する請求項1に記載の計算機装置。
  8. 前記書込み先選択部は、
    前記選択タイミングが到来するまでに、記憶装置が前記書込み対象データの書込み先の記憶装置として選択可能であることを通知する選択可能通知を他のいずれかの計算機装置から受信していない場合に、当該他の計算機装置の記憶装置が前記書込み対象データの書込み先の記憶装置として選択できない状態にあると判定する請求項7に記載の計算機装置。
  9. 前記計算機装置は、更に、
    前記書込み先選択部により前記書込み対象データの書込み先の記憶装置として自計算機装置の記憶装置が選択された場合に、前記書込み対象データを自計算機装置の記憶装置に書込むデータ書込み部を有する請求項1に記載の計算機装置。
  10. 各々に記憶装置が備わっている3つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置が、
    自計算機装置の記憶装置の書込み待ちデータの量を第1の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第2の書込み待ちデータ量として取得する書込み待ちデータ量取得処理と、
    前記書込み対象データの書込み先の記憶装置を、前記第1の書込み待ちデータ量と前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とに基づき選択する書込み先選択処理とを行う書込み先選択方法。
  11. 各々に記憶装置が備わっている3つ以上の計算機装置が含まれ、送信元の計算機装置以外のいずれかの計算機装置の記憶装置に書込むべき書込み対象データが送信元の計算機装置以外の計算機装置に送信される計算機システムに含まれる計算機装置に、
    自計算機装置の記憶装置の書込み待ちデータの量を第1の書込み待ちデータ量として取得し、自計算機装置以外の他の計算機装置の各々の記憶装置の書込み待ちデータの量を第2の書込み待ちデータ量として取得する書込み待ちデータ量取得処理と、
    前記書込み対象データの書込み先の記憶装置を、前記第1の書込み待ちデータ量と前記書込み対象データの送信元以外の他の計算機装置の記憶装置の前記第2の書込み待ちデータ量とに基づき選択する書込み先選択処理とを実行させる書込み先選択プログラム。
JP2017077724A 2017-04-10 2017-04-10 計算機装置、書込み先選択方法及び書込み先選択プログラム Pending JP2018180819A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017077724A JP2018180819A (ja) 2017-04-10 2017-04-10 計算機装置、書込み先選択方法及び書込み先選択プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017077724A JP2018180819A (ja) 2017-04-10 2017-04-10 計算機装置、書込み先選択方法及び書込み先選択プログラム

Publications (1)

Publication Number Publication Date
JP2018180819A true JP2018180819A (ja) 2018-11-15

Family

ID=64276632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017077724A Pending JP2018180819A (ja) 2017-04-10 2017-04-10 計算機装置、書込み先選択方法及び書込み先選択プログラム

Country Status (1)

Country Link
JP (1) JP2018180819A (ja)

Similar Documents

Publication Publication Date Title
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US20190163371A1 (en) Next generation storage controller in hybrid environments
US10725684B2 (en) Method and apparatus for cost-based load balancing for port selection
US9632826B2 (en) Prioritizing deferred tasks in pending task queue based on creation timestamp
US20130263142A1 (en) Control device, control method, computer readable recording medium in which program is recorded, and distributed processing system
US8700684B2 (en) Apparatus and method for managing a file in a distributed storage system
WO2017000822A1 (zh) 一种直接内存访问的传输控制方法及装置
US10210338B2 (en) Reducing decryption latency for encryption processing
KR20130048594A (ko) 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
US8725873B1 (en) Multi-server round robin arbiter
US10057338B2 (en) Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system
US9164885B2 (en) Storage control device, storage control method, and recording medium
KR101907067B1 (ko) 요청 패턴을 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
US20150365474A1 (en) Computer-readable recording medium, task assignment method, and task assignment apparatus
US10671293B2 (en) Topology aware load optimized multipath I/O scheduler
CN105574008B (zh) 应用于分布式文件系统的任务调度方法和设备
CN112148644A (zh) 处理输入/输出请求的方法、装置和计算机程序产品
US8806176B2 (en) Applying advanced energy manager in a distributed environment
US9858204B2 (en) Cache device, cache system, and cache method
US20140136751A1 (en) Multi-channel storage system supporting a multi-command protocol
US10289312B2 (en) Method of reordering a queue of write requests
JP2018180819A (ja) 計算機装置、書込み先選択方法及び書込み先選択プログラム
US10831561B2 (en) Method for changing allocation of data using synchronization token
JP2018504689A5 (ja)
US20180309687A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium