研究課題
本年度は、長時間の実行履歴の記録に対応するための手法と、その利用法の開発に取り組んだ。具体的には、長時間実行されるサーバープログラムで利用されるJava言語に対して、実行履歴データを記録するためのツールを開発した。膨大なデータ量となる実行履歴をうまく記録できるように、既存のデータの選択的な上書きを実装した。この実装では、実行履歴データはプログラムの解析によってプログラムの基本ブロックごとに局所変数(レジスタ)のまとまりで記録する。さらにそれらを実行文脈としてメモリ上のスタックに保持し、関数呼出しを含む基本ブロックの遷移によって補助記憶装置に出力を行う。また、実行履歴のサイズ上限に対応するメモリマップファイルを出力先とすることで、上書きがメモリ上で行われ、プログラム終了時に一括して補助記憶装置に保存されることで、高速な実行履歴の記録を実現できる。記録したデータは復元時に解析を行って索引付けをすることで、高速な読み込みが可能である。選択的な記録のために、実行時のオブジェクトの寿命を利用する手法を開発した。基本ブロックのデータごとに代表となるオブジェクト(多くの場合オブジェクト指向プログラムのメソッド実行文脈オブジェクト)を決め、記録時に生存している(解放されていない)古い世代オブジェクトかどうかによって、長寿のオブジェクトに関連する履歴を上書き対象から除外し、なるべく記録されるようにする。このようにすることで、膨大なデータの中からよりシステムの動作に関わると思われる実行履歴を選択できる。このような実装をSSDなどの高速な補助記憶装置を使うことで、サーバープログラムなどの長時間の実行履歴の記録に有効であると期待できる。また、読み込みを行うための表示プログラムも新たに実装した。この実装では、サーバープログラムでは遠隔操作の端末によって作業を行うことが多いため、文字端末で動作する。
すべて 2016
すべて 雑誌論文 (1件) (うち査読あり 1件、 謝辞記載あり 1件)
IPSJ, Journal of Information Processing(JIP)
巻: 24 ページ: 700--710
http://doi.org/10.2197/ipsjjip.24.700