(57)【要約】      （修正有）【課題】記憶機器からの読み取り抑制を、より適正に行う制御プログラム、制御方法及び制御装置を提供する。【解決手段】制御方法は、記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、パラメータに基づいて、バッファ使用量の予測変化量を算出し、現在のバッファ使用状況と予測変化量とに基づいて、読み取りアクセスの可否を判定する処理を含む。また、アクセス特性は、記憶装置に対するアクセス領域のランダム性或いは記憶装置に対するアクセス頻度であってもよい。【選択図】図１３Ａ
2018112906.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、
前記パラメータに基づいて、バッファ使用量の予測変化量を算出し、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する
処理をコンピュータに実行させる制御プログラム。
【請求項２】
前記予測変化量を算出する処理において、基準時点以前の第１期間における前記アクセス特性を示すパラメータを入力データとし、当該基準時点以後の第２期間における前記バッファ使用量の変化量を出力データとする予測モデルを用いる
請求項１記載の制御プログラム。
【請求項３】
前記アクセス特性を示すパラメータは、前記記憶装置に対するアクセス領域のランダム性を示すパラメータを含む
請求項１又は２記載の制御プログラム。
【請求項４】
前記アクセス特性を示すパラメータは、前記記憶装置に対するアクセス頻度を示すパラメータを含む
請求項１乃至３のいずれか１つ記載の制御プログラム。
【請求項５】
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、
前記パラメータに基づいて、バッファ使用量の予測変化量を算出し、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する
処理を含み、コンピュータにより実行される制御方法。
【請求項６】
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、当該パラメータに基づいて、バッファ使用量の予測変化量を算出する算出部と、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する判定部と
を有する制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置へのアクセスを制御する技術に関する。
【背景技術】
【０００２】
データ格納処理とデータ提供処理とを並行に実行するデータ蓄積装置で、ＨＤＤ（Hard Disk Drive）へ格納する書き込みデータがバッファに滞留すれば、バッファの空き容量が不足してデータ格納処理においてエラーを起こすことになる。
【０００３】
これに対して、並行するデータ提供処理に伴うＨＤＤからの読み取りを抑制すれば、ＨＤＤの動作負荷が軽減され、バッファからＨＤＤへの書き込みデータの転送が円滑になる。その結果、データ格納処理のエラーは回避されるようになる。
【０００４】
但し、ＨＤＤへの読み取りアクセスを過剰に制限すれば、データ提供処理の性能が劣化するという問題もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２３４３２０号公報
【特許文献２】特開平１１−０８８３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、記憶機器からの読み取り抑制を、より適正に行えるようにすることである。
【課題を解決するための手段】
【０００７】
一態様に係る制御方法は、（Ａ）記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、（Ｂ）上記パラメータに基づいて、バッファ使用量の予測変化量を算出し、（Ｃ）現在のバッファ使用状況と上記予測変化量とに基づいて、読み取りアクセスの可否を判定する処理を含む。
【発明の効果】
【０００８】
一側面としては、記憶機器からの読み取り抑制を、より適正に行えるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ストレージシステムの例を示す図である。
【図２】図２は、ストリームデータの構成例を示す図である。
【図３】図３は、ブロックの格納におけるシーケンスを示す図である。
【図４】図４は、ブロックの取得におけるシーケンスを示す図である。
【図５Ａ】図５Ａは、従来技術におけるサーバ装置のモジュール構成例を示す図である。
【図５Ｂ】図５Ｂは、従来技術における格納処理部のモジュール構成例を示す図である。
【図５Ｃ】図５Ｃは、従来技術における提供部のモジュール構成例を示す図である。
【図６】図６は、管理テーブルの例を示す図である。
【図７】図７は、サーバ装置のメイン処理フローを示す図である。
【図８】図８は、格納処理（Ａ）フローを示す図である。
【図９】図９は、提供処理（Ａ）フローを示す図である。
【図１０】図１０は、第１バッファにおける空き容量の遷移例を示す図である。
【図１１】図１１は、改良技術における提供部のモジュール構成例を示す図である。
【図１２】図１２は、提供処理（Ｂ）フローを示す図である。
【図１３Ａ】図１３Ａは、予測モデルの概要を示す図である。
【図１３Ｂ】図１３Ｂは、予測モデルの概要を示す図である。
【図１４】図１４は、ログデータの例を示す図である。
【図１５】図１５は、書き込みアクセス数の概要を示す図である。
【図１６】図１６は、読み取りアクセス数及び読み取りデータサイズの平均値の概要を示す図である。
【図１７】図１７は、アクセス領域間の距離の平均値に関する概要を示す図である。
【図１８】図１８は、ロードプログラムの概要を示す図である。
【図１９Ａ】図１９Ａは、学習フェーズにおけるサーバ装置のモジュール構成例を示す図である。
【図１９Ｂ】図１９Ｂは、学習フェーズにおける格納処理部のモジュール構成例を示す図である。
【図１９Ｃ】図１９Ｃは、学習フェーズにおける提供部のモジュール構成例を示す図である。
【図２０】図２０は、学習データの例を示す図である。
【図２１】図２１は、格納処理（Ｂ）フローを示す図である。
【図２２】図２２は、提供処理（Ｃ）フローを示す図である。
【図２３】図２３は、第１算出処理フローを示す図である。
【図２４Ａ】図２４Ａは、運用フェーズにおけるサーバ装置のモジュール構成例を示す図である。
【図２４Ｂ】図２４Ｂは、運用フェーズにおける提供部のモジュール構成例を示す図である。
【図２５】図２５は、提供処理（Ｄ）フローを示す図である。
【図２６】図２６は、第２算出処理フローを示す図である。
【図２７】図２７は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、ストリームデータを蓄積するストレージシステムの例を示す。この例におけるストレージシステムは、パケットキャプチャリングシステムである。パケットキャプチャリングシステムは、図１に示した第２ネットワークにおいて伝送されるパケット、つまり情報処理装置１０５同士の通信に係るパケットを伝送順に蓄える。
【００１１】
尚、ストリームデータとは、無限に到来する時刻順のデータのことである。この例におけるストリームデータは、ＩＰ（Internet Protocol）ネットワークを伝送するパケットを時系列に集めたものである。但し、ストリームデータは、動画や音声に係るデータや計測データであってもよい。
【００１２】
ストレージシステムは、クライアント装置１０１及びサーバ装置１０３を含んでいる。クライアント装置１０１とサーバ装置１０３とは、第１ネットワークを介して接続している。クライアント装置１０１は、キャプチャしたパケットをブロック単位にまとめて、サーバ装置１０３に転送する。サーバ装置１０３は、転送されたブロックを、自ら保持する記憶装置（この例ではＨＤＤ）に蓄える。記憶装置の容量を超える場合には、古い順にブロックは破棄される。
【００１３】
図２に、ストリームデータの構成例を示す。ストリームデータは、論理的には無限に連続する。ストレージシステムにおけるクライアント装置１０１とサーバ装置１０３との間では、ブロックの単位でストリームデータを伝送する。
【００１４】
図３に、ブロックの格納におけるシーケンスを示す。クライアント装置１０１は、パケットを逐次キャプチャする。パケットが一定量溜まると、クライアント装置１０１は、ブロックを生成する（Ｓ３０１）。そして、クライアント装置１０１は、格納リクエストをサーバ装置１０３へ送信する（Ｓ３０３）。格納リクエストには、ブロックのほか、ブロックを識別するＩＤ（Identification Data）が含まれている。
【００１５】
サーバ装置１０３は、格納リクエストを受信すると（Ｓ３０５）、ブロックをＨＤＤに書き込む（Ｓ３０７）。サーバ装置１０３は、ブロックの位置とＩＤとを対応付けて管理する。サーバ装置１０３は、処理結果をクライアント装置１０１へ送信する（Ｓ３０９）。Ｓ３１１乃至Ｓ３１９に示すようにこれらの処理が繰り返される。
【００１６】
図４に、ブロックの取得におけるシーケンスを示す。クライアント装置１０１は、取得リクエストをサーバ装置１０３へ送信する（Ｓ４０１）。取得リクエストには、ブロックＩＤが含まれる。
【００１７】
サーバ装置１０３は、取得リクエストを受信すると（Ｓ４０３）、ブロックＩＤに基づいてＨＤＤにおける記憶領域を特定してブロックを読み取る（Ｓ４０５）。そして、サーバ装置１０３は、ブロックをクライアント装置１０１へ送信する（Ｓ４０７）。
【００１８】
一方、クライアント装置１０１は、ブロックを受信する（Ｓ４０９）。
【００１９】
尚、ブロックの取得が行われるタイミングは、任意である。また、ブロックの取得は、ブロックの格納が繰り返されている間に行われることもある。
【００２０】
以下、従来技術及び従来技術を改良した技術について説明した後に、本実施の形態に及ぶ。
【００２１】
図５Ａに、従来技術におけるサーバ装置１０３のモジュール構成例を示す。サーバ装置１０３は、受信部５０１、送信部５０３、起動部５０５、バッファ管理部５０７、ＨＤＤアクセス部５０９、格納処理部５１１、提供部５１３、第１バッファ５６１、第２バッファ５６３及び管理テーブル記憶部５６５を有する。
【００２２】
受信部５０１は、各種データ（例えばリクエスト）を受信する。送信部５０３は、各種データ（例えば処理結果及びブロック）を送信する。起動部５０５は、格納処理及び提供処理を起動する。バッファ管理部５０７は、第１バッファ５６１の使用領域及び空き領域を管理する。更に、バッファ管理部５０７は、第２バッファ５６３の使用領域及び空き領域も管理する。ＨＤＤアクセス部５０９は、ＨＤＤへのアクセスを実行する。具体的には、ＨＤＤアクセス部５０９が実行するアクセスは、ＨＤＤに対するコマンドの発行に相当する。格納処理部５１１は、ブロックを格納する処理を行う。提供部５１３は、ブロックを提供する処理を行う。
【００２３】
第１バッファ５６１は、格納リクエストに含まれるブロックを記憶する。第２バッファ５６３は、ＨＤＤから読み取ったブロックを記憶する。管理テーブル記憶部５６５は、管理テーブルを記憶する。管理テーブルは、ブロックが格納されているＨＤＤ領域を管理する。管理テーブルの詳細については、図６を用いて後述する。
【００２４】
上述した受信部５０１、送信部５０３、起動部５０５、バッファ管理部５０７、ＨＤＤアクセス部５０９、格納処理部５１１及び提供部５１３は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２５】
上述した第１バッファ５６１、第２バッファ５６３及び管理テーブル記憶部５６５は、ハードウエア資源（例えば、図２７）を用いて実現される。
【００２６】
図５Ｂに、従来技術における格納処理部５１１のモジュール構成例を示す。従来技術における格納処理部５１１は、第１判定部５２１、第１記憶処理部５２３、第１決定部５２５、更新部５２７及び第１解放部５２９を有する。
【００２７】
第１判定部５２１は、第１バッファ５６１にブロックサイズ以上の空き領域があるか否かを判定する。第１記憶処理部５２３は、第１バッファ５６１の空き領域にブロックを記憶する処理を行う。第１決定部５２５は、管理テーブルに基づいてＨＤＤの書き込み領域を決定する。更新部５２７は、管理テーブルを更新する。第１解放部５２９は、第１バッファ５６１の使用領域を解放する。
【００２８】
上述した第１判定部５２１、第１記憶処理部５２３、第１決定部５２５、更新部５２７及び第１解放部５２９は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２９】
図５Ｃに、従来技術における提供部５１３のモジュール構成例を示す。従来技術における提供部５１３は、第２判定部５４１、第２決定部５４３、第２記憶処理部５４５及び第２解放部５４７を有する。
【００３０】
第２判定部５４１は、第２バッファ５６３にブロックサイズ以上の空き領域があるか否かを判定する。第２決定部５４３は、管理テーブルに基づいてＨＤＤの読み取り領域を決定する。第２記憶処理部５４５は、ＨＤＤから読み取ったブロックを第２バッファ５６３の空き領域に記憶するための処理を行う。第２解放部５４７は、第２バッファ５６３の使用領域を解放する。
【００３１】
上述した第２判定部５４１、第２決定部５４３、第２記憶処理部５４５及び第２解放部５４７は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００３２】
図６に、管理テーブルの例を示す。この例における管理テーブルは、ＨＤＤに格納されたブロックに対応するレコードを有している。管理テーブルのレコードは、ブロックＩＤが格納されるフィールドと、開始アドレスが格納されるフィールドと、領域サイズが格納されるフィールドとを有している。
【００３３】
ブロックＩＤは、ＨＤＤに格納されているブロックを識別する。開始アドレスは、ブロックが格納されている領域の先頭位置を特定する。領域サイズは、ブロックが格納されている領域の大きさを表す。この例で、ブロックの大きさと領域の大きさとは等しいものとする。
【００３４】
例えば、図示した１番目のレコードは、ＩＤ：１で識別されるブロックが、アドレス：０ｘ００００００００を先頭とし、０ｘ１０００の大きさを有する領域に格納されていることを示している。
【００３５】
図７に、サーバ装置１０３のメイン処理フローを示す。尚、メイン処理は、従来技術、改良技術及び本実施の形態において共通である。
【００３６】
受信部５０１がクライアント装置１０１からリクエストを受信すると（Ｓ７０１）、起動部５０５は、受信したリクエストが格納リクエストであるか否かを判定する（Ｓ７０３）。受信したリクエストが格納リクエストであると判定した場合には、起動部５０５は、格納処理を起動する（Ｓ７０５）。例えば、格納処理部５１１を実現するためのプログラムがプロセスとして起動される。複数の格納リクエストを受信すれば、複数のプロセスが起動される。格納処理については、図８を用いて後述する。格納処理を起動すると格納処理の終了を待たずに、Ｓ７０１に示した処理に戻って、上述した処理を繰り返す。
【００３７】
一方、受信したリクエストが格納リクエストでないと判定した場合には、起動部５０５は、受信したリクエストが取得リクエストであるか否かを判定する（Ｓ７０７）。受信したリクエストが取得リクエストであると判定した場合には、起動部５０５は、提供処理を起動する（Ｓ７０９）。例えば、提供部５１３を実現するためのプログラムがプロセスとして起動される。複数の取得リクエストを受信すれば、複数のプロセスが起動される。提供処理については、図９を用いて後述する。そして、提供処理を起動すると提供処理の終了を待たずに、Ｓ７０１に示した処理に戻って、上述した処理を繰り返す。
【００３８】
Ｓ７０７において、受信したリクエストが取得リクエストでないと判定した場合には、Ｓ７０１に示した処理に戻って、上述した処理を繰り返す。
【００３９】
続いて、格納処理について説明する。従来技術では、格納処理（Ａ）を実行する。格納処理部５１１は、図８に示した格納処理（Ａ）フローに沿って処理を行う。
【００４０】
第１判定部５２１は、第１バッファ５６１にブロックサイズ以上の空き領域があるか否かを判定する（Ｓ８０１）。このとき、第１判定部５２１は、例えばバッファ管理部５０７から第１バッファ５６１における空き領域のサイズを取得する。
【００４１】
第１バッファ５６１にブロックサイズ以上の空き領域がないと判定した場合には、送信部５０３は、処理結果（失敗）をクライアント装置１０１へ送信する（Ｓ８０３）。そして、格納処理（Ａ）を終える。その結果、格納処理（Ａ）に相当するプロセスは消滅する。
【００４２】
一方、第１バッファ５６１にブロックサイズ以上の空き領域があると判定した場合には、第１記憶処理部５２３は、第１バッファ５６１の空き領域にブロックを記憶する処理を行う（Ｓ８０５）。第１決定部５２５は、管理テーブルに基づいて、ＨＤＤの書き込み領域を決定する（Ｓ８０７）。この例で、ＨＤＤの書き込み領域は、開始アドレス及び領域サイズによって特定される。
【００４３】
ＨＤＤアクセス部５０９は、第１バッファ５６１に記憶されているブロックを、Ｓ８０７で決定された領域に書き込むためのＨＤＤアクセスを実行する（Ｓ８０９）。そして、ＨＤＤアクセス部５０９は、書き込み完了の通知を待つ（Ｓ８１１）。
【００４４】
書き込みが完了すると、更新部５２７は管理テーブルを更新する（Ｓ８１３）。具体的には、管理テーブルに新たなレコードを設けて、当該レコードにブロックＩＤ、開始アドレス及び領域サイズを格納する。そして、送信部５０３は、処理結果（成功）をクライアント装置１０１へ送信する（Ｓ８１５）。
【００４５】
第１解放部５２９は、第１バッファ５６１の使用領域、つまりＳ８０５でブロックを記憶した領域を解放する（Ｓ８１７）。具体的には、第１解放部５２９は、バッファ管理部５０７に当該領域が未使用になったことを伝える。そして、格納処理（Ａ）を終える。その結果、格納処理（Ａ）を実行するためのプロセスは消滅する。
【００４６】
次に、提供処理について説明する。従来技術では、提供処理（Ａ）を実行する。提供部５１３は、図９に示した提供処理（Ａ）フローに沿って処理を行う。
【００４７】
第２判定部５４１は、第２バッファ５６３にブロックサイズ以上の空き領域があるか否かを判定する（Ｓ９０１）。このとき、第２判定部５４１は、例えばバッファ管理部５０７から第２バッファ５６３における空き領域のサイズを取得する。
【００４８】
第２バッファ５６３にブロックサイズ以上の空き領域がないと判定した場合には、第２判定部５４１は、一時待機して（Ｓ９０３）、Ｓ９０１に示した処理に戻って、上述した処理を繰り返す。
【００４９】
一方、第２バッファ５６３にブロックサイズ以上の空き領域があると判定した場合には、第２決定部５４３は、管理テーブルに基づいて、ＨＤＤの読み取り領域を決定する（Ｓ９０５）。この例で、ＨＤＤの読み取り領域は、開始アドレス及び領域サイズによって特定される。
【００５０】
ＨＤＤアクセス部５０９は、Ｓ９０５で決定された領域からブロックを読み取るためのＨＤＤアクセスを実行する（Ｓ９０７）。第２記憶処理部５４５は、ＨＤＤから読み取ったブロックを、第２バッファ５６３の空き領域に記憶するための処理を行う（Ｓ９０９）。そして、送信部５０３は、第２バッファ５６３に記憶したブロックをクライアント装置１０１へ送信する（Ｓ９１１）。
【００５１】
第２解放部５４７は、第２バッファ５６３の使用領域、つまりＳ９０９でブロックを記憶した領域を解放する（Ｓ９１３）。具体的には、第２解放部５４７は、バッファ管理部５０７に当該領域が未使用になったことを伝える。そして、提供処理（Ａ）を終える。その結果、提供処理（Ａ）を実行するためのプロセスは消滅する。以上で、従来技術における処理の説明を終える。
【００５２】
このように、従来技術では、第１バッファ５６１における空き領域を確保するための工夫がおこなわれていない。
【００５３】
図１０に、第１バッファ５６１における空き容量の遷移例を示す。１番目の棒は、時刻Ｔ1における第１バッファ５６１の状態を示している。斜線の部分は、使用量を示している。模様が無い部分は、空き容量を示している。具体的には、時刻Ｔ1において、空き容量は第１バッファ５６１のサイズの５５％に相当する。
【００５４】
２番目の棒は、時刻Ｔ1より後の時刻Ｔ2における第１バッファ５６１の状態を示している。具体的には、時刻Ｔ2において、空き容量は第１バッファ５６１のサイズの３５％に相当する。
【００５５】
３番目の棒は、時刻Ｔ2より後の時刻Ｔ3における第１バッファ５６１の状態を示している。具体的には、時刻Ｔ3において、空き容量は第１バッファ５６１のサイズの１５％に相当する。
【００５６】
改良技術では、例えば空き容量が第１バッファ５６１のサイズの２０％に相当する値を下回った場合に読み込みアクセスを中断して、第１バッファ５６１における空き容量が増えるのを待つようにする。
【００５７】
尚、従来技術によれば、４番目の上側の棒に示すように、第１バッファ５６１における空き領域が無くなるかもしれない。一方、改良技術によれば、４番目の下側の棒に示すように、第１バッファ５６１における空き領域が回復するかもしれない。
【００５８】
改良技術の詳細について説明する。図１１に、改良技術における提供部５１３のモジュール構成例を示す。改良技術における提供部５１３は、図５Ｃに示したモジュールの他に、第３判定部１１０１を有する。
【００５９】
第３判定部１１０１は、第１バッファ５６１の空き容量が閾値以上であるか否かを判定する。上述した第３判定部１１０１は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００６０】
改良技術では、提供処理（Ａ）に代えて、提供処理（Ｂ）を実行する。図１２に、提供処理（Ｂ）フローを示す。Ｓ９０１及びＳ９０３に示した処理は、図９の場合と同様である。
【００６１】
Ｓ９０１において、第２バッファ５６３にブロックサイズ以上の空き領域があると判定した場合には、第３判定部１１０１は、第１バッファ５６１の空き容量を特定する（Ｓ１２０１）。このとき、第３判定部１１０１は、例えばバッファ管理部５０７から第１バッファ５６１の空き容量を取得する。
【００６２】
第３判定部１１０１は、第１バッファ５６１の空き容量が閾値以上であるか否かを判定する（Ｓ１２０３）。第１バッファ５６１の空き容量が閾値を下回ると判定した場合には、第３判定部１１０１は、一時待機して（Ｓ１２０５）、Ｓ９０１に示した処理に戻って、上述した処理を繰り返す。
【００６３】
一方、第１バッファ５６１の空き容量が閾値以上であると判定した場合には、Ｓ９０５の処理に移る。Ｓ９０５乃至Ｓ９１３に示した処理は、図９の場合と同様である。
【００６４】
尚、改良技術における格納処理は、従来技術の場合と同様である。
【００６５】
改良技術によれば、第１バッファ５６１の空き容量が無くなる前に、ＨＤＤからの読み取りアクセスを止めて、ＨＤＤへの書き込みアクセスを優先させる。その結果、第１バッファ５６１の使用領域が解放されるようになる。
【００６６】
但し、現在の第１バッファ５６１の空き容量が閾値を下回った場合に、その先において第１バッファ５６１の空き容量が不足するとは限らない。仮にＨＤＤからの読み取りアクセスを抑制しなくても、第１バッファ５６１の空き容量が回復するケースもある。
【００６７】
実際のところ、現時点以降における第１バッファ５６１の空き容量の変化は、その時点までにＨＤＤに発行しているコマンドに依存する。つまり、ＨＤＤがコマンドを受け付けてから動作を完了させるまでに或る程度時間を要するので、現時点以降のＨＤＤの動作状況によって第１バッファ５６１の空き容量の回復ペースが変わってくることになる。
【００６８】
本実施の形態では、現時点までにＨＤＤに発行されたコマンド、つまりＨＤＤアクセスの内容に着目して、先の第１バッファ５６１の状態を予測する。
【００６９】
図１３Ａ及び図１３Ｂを用いて、本実施の形態において使用する予測モデルについて説明する。図１３Ａは、予測モデルにおける入力データ及び出力データを示している。過去時点から現時点までの期間におけるＨＤＤアクセスの内容から、ＨＤＤアクセスに関するパラメータを生成する。過去時点は、現時点から第１単位時間遡ったタイミングである。第１単位時間は、例えば１００ｍｓである。パラメータの詳細については、後述する。
【００７０】
そして、これらのパラメータを入力データとして予測モデルに適用すると、第１バッファ５６１における使用領域の増量が出力される。使用領域の増量は、現時点と予測時点とを基準とする。予測時点は、現時点から第２単位時間が経過したタイミングである。第２単位時間は、例えば１００ｍｓである。この例で、第１単位時間と第２単位時間とは同じ長さである。但し、第１単位時間が第２単位時間より長くてもよい。また、第２単位時間が第１単位時間より長くてもよい。
【００７１】
この例における予測モデルは、例えば図１３Ｂに示した決定木である。図示するように最初の分岐条件は、書き込みアクセス数が１００を超えるか否かである。例えば最初の分岐条件でＹｅｓと判定した場合には、左側２番目の分岐条件に移る。左側２番目の分岐条件は、読み出しアクセス数が５０を超えるか否かである。例えば左側２番目の分岐条件でＹｅｓと判定した場合には、３番目の分岐条件に移る。３番目の分岐条件は、アクセス領域間の距離の平均値が０ｘ４０００を超えるか否かである。例えば３番目の分岐条件でＹｅｓと判定した場合には、第１バッファ５６１における使用領域の増量が１００Ｍｂであるという予測結果が得られる。
【００７２】
この例では決定木を用いるが、その他の予測モデルを用いるようにしてもよい。例えば、ニューラルネットワークを用いるようにしてもよい。尚、予測モデルは、後述するように機械学習によって生成される。
【００７３】
ここで、パラメータの基となるログデータについて説明する。図１４に、ログデータの例を示す。この例におけるログデータは、テーブル形式である。但し、ログデータは、テーブル形式以外の形式であってもよい。この例におけるログデータは、１回のアクセスに対応するレコードを有している。ログデータのレコードは、開始アドレスが格納されるフィールドと、データサイズが格納されるフィールドと、アクセス種別が格納されるフィールドと、タイムスタンプが格納されるフィールドとを有している。
【００７４】
開始アドレスは、書き込み領域の先頭位置又は読み取り領域の先頭位置を特定する。データサイズは、書き込まれたブロックの大きさ又は読み込まれたブロックの大きさである。従って、データサイズは、書き込み領域又は読み取り領域の大きさと一致する。アクセス種別は、書き込み又は読み取りである。タイムスタンプは、アクセスが実行された日時を特定する。
【００７５】
例えば、図示した１番目のレコードは、アドレス：０ｘ００００９０００を先頭とし、０ｘ１０００の大きさを有する領域にブロックが書き込まれたことを示している。
【００７６】
この例では、書き込みアクセスにおける領域が連続している。このようにブロックを連続させれば、アクセス性能を高められる。一方、読み取りアクセスにおける領域は連続していない。例えば、ストリームデータが部分的に取得されるためである。
【００７７】
続いて、各パラメータについて説明する。この例におけるパラメータは、書き込みアクセス数、読み取りアクセス数、読み取りデータサイズの平均値及びアクセス領域間の距離の平均値である。
【００７８】
図１５に、書き込みアクセス数の概要を示す。この例では、現時点から遡る第１単位時間の期間において実行された書き込みアクセスの数をＨＤＤアクセスに関するパラメータの１つとして用いる。
【００７９】
第１単位時間の期間における書き込みアクセスが多い場合には、現時点以降においても同様に書き込みアクセスが多いと予測される。つまり、現時点以降の第２単位時間の期間も第１バッファ５６１の使用量が増えると考えられる。
【００８０】
一方、第１単位時間の期間における書き込みアクセスが少ない場合には、現時点以降においても同様に書き込みアクセスが少ないと予測される。つまり、第２単位時間の期間に第１バッファ５６１の使用量があまり増えないと考えられる。
【００８１】
図１６に、読み取りアクセス数及び読み取りデータサイズの平均値の概要を示す。この例では、現時点から遡る第１単位時間の期間において実行された読み取りアクセスの数をＨＤＤアクセスに関するパラメータの１つとして用いる。
【００８２】
第１単位時間の期間における読み取りアクセスが多い場合には、現時点以降においてＨＤＤの読み取り動作を頻繁に行うことになる。従って、第２単位時間の期間における書き込み動作が停滞し、第１バッファ５６１の使用量が減り難いと予測される。
【００８３】
一方、第１単位時間の期間における読み取りアクセスが少ない場合には、現時点以降においてＨＤＤの読み取り動作があまり行われないことになる。従って、第２単位時間の期間における書き込み動作が円滑に行われ、第１バッファ５６１の使用量が減り易いと予測される。
【００８４】
更に、この例では、第１単位時間の期間において実行された読み取りアクセスにおける読み取りデータサイズの平均値をＨＤＤアクセスに関するパラメータの１つとして用いる。
【００８５】
第１単位時間の期間における読み取りデータサイズの平均値が大きい場合には、現時点以降のＨＤＤの読み取り動作に要する時間が長くなる。従って、第２単位時間の期間における書き込み動作の機会が減り、第１バッファ５６１の使用量が減り難いと予測される。
【００８６】
一方、第１単位時間の期間における読み取りデータサイズの平均値が小さい場合には、現時点以降のＨＤＤの読み取り動作に要する時間が短くなる。従って、第２単位時間の期間における書き込み動作の機会が増え、第１バッファ５６１の使用量が減り易いと予測される。
【００８７】
尚、第２単位時間の期間における読み取りアクセスは、実際のＨＤＤの動作が当該期間よりも後になる。従って、第２単位時間の期間における読み取りアクセスが、予測時点における第１バッファ５６１の使用量に与える影響は大きくないと考えられる。
【００８８】
この例では、読み取りデータサイズに関して平均値を用いるが、平均値以外の統計値を用いるようにしてもよい。
【００８９】
この例では、アクセス領域間の距離にも着目する。アクセス領域間の距離は、或る回のＨＤＤアクセスにおける領域の開始アドレスとその前の回のＨＤＤアクセスにおける領域の終了アドレスとの差分である。図１７に、アクセス領域間の距離の平均値に関する概要を示す。図示するように、第１単位時間の期間において実行されたアクセスに関するアクセス領域間の距離の平均値をＨＤＤアクセスに関するパラメータの１つとして用いる。
【００９０】
アクセス領域間の距離の平均値が大きい場合には、アクセスのランダム性が高いことを意味し、現時点以降におけるＨＤＤの機構的動作が大きくなる。つまり、ＨＤＤの磁気ヘッドが移動する時間（以下、シーク時間という。）が長くなる。その結果、第２単位時間の期間における書き込み動作の機会が減り、第１バッファ５６１の使用量が減り難いと予測される。
【００９１】
一方、アクセス領域間の距離の平均値が小さい場合には、アクセスのランダム性が低いことを意味し、現時点以降におけるＨＤＤの機構的動作が小さくなる。つまり、ＨＤＤのシーク時間が短くなる。その結果、第２単位時間の期間における書き込み動作の機会が増え、第１バッファ５６１の使用量が減り易いと予測される。
【００９２】
尚、第２単位時間の期間におけるアクセスに関して、ＨＤＤが動作するのは当該期間よりも後になる。従って、第２単位時間の期間におけるアクセス領域間の距離が、予測時点における第１バッファ５６１の使用量に与える影響は大きくないと考えられる。
【００９３】
この例では、アクセス領域間の距離に関して平均値を用いるが、平均値以外の統計値を用いるようにしてもよい。
【００９４】
続いて、本実施の形態における学習フェーズについて説明する。学習フェーズでは、クライアント装置１０１から所定のリクエストを送信することによって、サーバ装置１０３においてサンプルを収集して学習データを生成する。図１８を用いて、所定のリクエストを送信するためにクライアント装置１０１において実行されるロードプログラムについて説明する。
【００９５】
格納リクエストの内容及び当該リクエストが送信されるタイミングは、ロードプログラムに予め設定されている。また、取得リクエストの内容及び当該リクエストが送信されるタイミングは、ロードプログラムに予め設定されている。ロードプログラムは、その設定に従ってリクエストを送信する。
【００９６】
これらのリクエストに応じて、サーバ装置１０３における書き込みアクセス及び読み取りアクセスが実行される。リクエストが送信される基準時間も予め決められている。サーバ装置１０３は、基準時間に至るとサンプルを生成するための処理を開始する。具体的には、ＨＤＤアクセスに関するパラメータが算出され、第２単位時間が経過するまでに第１バッファ５６１における使用領域が増える量も算出される。尚、この例では、運用フェーズにおいて取得リクエストを受信した時点で読み取りアクセスを中断することを想定して、第２単位時間に相当する期間では、取得リクエストが送信されないようにプログラミングされている。
【００９７】
図１９Ａに、学習フェーズにおけるサーバ装置１０３のモジュール構成例を示す。学習フェーズにおけるサーバ装置１０３は、図５Ａに示したモジュールの他に、ログ記憶部１９０１、学習データ記憶部１９０３、モデル学習部１９０５及びモデルデータ記憶部１９０７を有する。
【００９８】
ログ記憶部１９０１は、図１４に示したログデータを記憶する。ログ記憶部１９０１は、少なくとも第１単位時間遡った時点以降のタイムスタンプが付されたレコードを保持する。学習データ記憶部１９０３は、学習データを記憶する。学習データについては、図２０を用いて後述する。
【００９９】
モデル学習部１９０５は、機械学習によって予測モデルを生成する。モデルデータ記憶部１９０７は、予測モデルを定義するデータを記憶する。
【０１００】
上述したモデル学習部１９０５は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１０１】
上述したログ記憶部１９０１、学習データ記憶部１９０３及びモデルデータ記憶部１９０７は、ハードウエア資源（例えば、図２７）を用いて実現される。
【０１０２】
図１９Ｂに、学習フェーズにおける格納処理部５１１のモジュール構成例を示す。学習フェーズにおける格納処理部５１１は、図５Ｂに示したモジュールの他に、第１記録処理部１９０９を有する。
【０１０３】
第１記録処理部１９０９は、書き込みアクセスに関するログを記録する処理を行う。第１記録処理部１９０９は、ハードウエア資源（例えば、図２７）を用いて実現される。
【０１０４】
図１９Ｃに、学習フェーズにおける提供部５１３のモジュール構成例を示す。学習フェーズにおける提供部５１３は、図１１に示したモジュールの他に、第２記録処理部１９１１及び第１算出部１９１３を有する。
【０１０５】
第２記録処理部１９１１は、読み取りアクセスに関するログを記録する処理を行う。第１算出部１９１３は、学習データに加えられるサンプルを生成する第１算出処理を行う。
【０１０６】
第２記録処理部１９１１及び第１算出部１９１３は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１０７】
ここで、学習データについて説明する。図２０に、学習データの例を示す。この例における学習データは、テーブル形式である。但し、学習データは、テーブル形式以外の形式であってもよい。この例における学習データは、１つのサンプルに対応するレコードを有している。学習データのレコードは、書き込みアクセス数が格納されるフィールドと、読み取りアクセス数が格納されるフィールドと、読み取りデータサイズの平均値が格納されるフィールドと、アクセス領域間の距離の平均値が格納されるフィールドと、第１バッファ５６１における使用量の増量が格納されるフィールドとを有している。
【０１０８】
上述したように、書き込みアクセス数、読み取りアクセス数、読み取りデータサイズの平均値及びアクセス領域間の距離の平均値は、入力データとなるパラメータである。第１バッファ５６１における使用量の増量は、出力データとなるパラメータである。
【０１０９】
本実施の形態の学習フェーズでは、格納処理（Ａ）に代えて、格納処理（Ｂ）を実行する。図２１に、格納処理（Ｂ）フローを示す。Ｓ８０１乃至Ｓ８１１に示した処理は、図８の場合と同様である。
【０１１０】
第１記録処理部１９０９は、書き込みアクセスに関するログを記録する処理を行う（Ｓ２１０１）。具体的には、ログデータのレコードに、開始アドレス、データサイズ、アクセス種別及びタイムスタンプが格納される。
【０１１１】
Ｓ８１３乃至Ｓ８１７に示した処理は、図８の場合と同様である。
【０１１２】
本実施の形態の学習フェーズでは、提供処理（Ｃ）を実行する。図２２に、提供処理（Ｃ）フローを示す。Ｓ９０１及びＳ９０３に示した処理は、図９の場合と同様である。
【０１１３】
第１算出部１９１３は、第１算出処理を起動する（Ｓ２２０１）。第１算出処理では、学習データに加えられるサンプルを生成する。第１算出処理については、図２３を用いて後述する。尚、第１算出処理は、提供処理（Ｃ）と並行に実行される。従って、第１算出処理を起動した後は、第１算出処理の終了を待たずに次の処理（Ｓ９０５）に移る。
【０１１４】
Ｓ９０５乃至Ｓ９０９に示した処理は、図９の場合と同様である。
【０１１５】
第２記録処理部１９１１は、読み取りアクセスに関するログを記録する処理を行う（Ｓ２２０３）。具体的には、ログデータのレコードに、開始アドレス、データサイズ、アクセス種別及びタイムスタンプが格納される。
【０１１６】
Ｓ９１１及びＳ９１３に示した処理は、図９の場合と同様である。
【０１１７】
図２３に、第１算出処理フローを示す。第１算出部１９１３は、第１バッファ５６１の使用量を特定する（Ｓ２３０１）。このとき、第１算出部１９１３は、例えばバッファ管理部５０７から第１バッファ５６１の使用量を取得する。ここで特定される第１バッファ５６１の使用量は、基準時刻における第１バッファ５６１の使用量に相当する。
【０１１８】
第１算出部１９１３は、ログデータに基づいて、直近期間における書き込みアクセス数を求める（Ｓ２３０３）。直近期間は、第１単位時間の期間である。書き込みアクセス数は、学習データの新たなレコードに格納される。
【０１１９】
更に、第１算出部１９１３は、ログデータに基づいて、直近期間における読み取りアクセス数を求める（Ｓ２３０５）。読み取りアクセス数は、学習データの同レコードに格納される。
【０１２０】
第１算出部１９１３は、ログデータに基づいて、直近期間における読み取りデータサイズの平均値を算出する（Ｓ２３０７）。読み取りデータサイズの平均値は、学習データの同レコードに格納される。
【０１２１】
第１算出部１９１３は、ログデータに基づいて、直近期間におけるアクセス領域間の距離の平均値を算出する（Ｓ２３０９）。アクセス領域間の距離の平均値は、学習データの同レコードに格納される。
【０１２２】
第１算出部１９１３は、基準時刻から第２単位時間が経過するまで待つ（Ｓ２３１１）。そして、第１算出部１９１３は、第１バッファ５６１の使用量を特定する（Ｓ２３１３）。このとき、第１算出部１９１３は、例えばバッファ管理部５０７から第１バッファ５６１の使用量を取得する。
【０１２３】
第１算出部１９１３は、第１バッファ５６１における使用量の増量を求める（Ｓ２３１５）。具体的には、第１算出部１９１３は、Ｓ２３１３で特定された第１バッファ５６１における使用量から、Ｓ２３０１で特定された第１バッファ５６１における使用量を引くことによって、当該増量を算出する。第１バッファ５６１における使用量の増量は、学習データの同レコードに格納される。そして、第１算出処理を終了する。
【０１２４】
続いて、本実施の形態における運用フェーズについて説明する。図２４Ａに、運用フェーズにおけるサーバ装置１０３のモジュール構成例を示す。サーバ装置１０３は、図５Ａに示したモジュール及び図１９Ａに示したログ記憶部１９０１及びモデルデータ記憶部１９０７の他に、モデル適用部２４０１を有する。
【０１２５】
モデル適用部２４０１は、所定パラメータを予測モデルに適用して予測値を算出する。モデル適用部２４０１は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１２６】
図２４Ｂに、運用フェーズにおける提供部５１３のモジュール構成例を示す。運用フェーズにおける提供部５１３は、図５Ｃに示したモジュール及び図１９Ｃに示した第２記録処理部１９１１の他に、第２算出部２４０３及び第４判定部２４０５を有する。
【０１２７】
第２算出部２４０３は、予測モデルを用いて、第１バッファ５６１の空き容量の予測値を算出する。第４判定部２４０５は、第１バッファ５６１における空き容量の予測値が閾値以上であるか否かを判定する。
【０１２８】
第２算出部２４０３及び第４判定部２４０５は、ハードウエア資源（例えば、図２７）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【０１２９】
本実施の形態の運用フェーズでは、提供処理（Ｄ）を実行する。図２５に、提供処理（Ｄ）フローを示す。Ｓ９０１及びＳ９０３に示した処理は、図９の場合と同様である。
【０１３０】
第２算出部２４０３は、第２算出処理を実行する（Ｓ２５０１）。第２算出処理では、予測モデルを用いて、第１バッファ５６１の空き容量の予測値を算出する。
【０１３１】
図２６に、第２算出処理フローを示す。第２算出部２４０３は、第１バッファ５６１の空き容量を特定する（Ｓ２６０１）。このとき、第２算出部２４０３は、例えばバッファ管理部５０７から第１バッファ５６１の空き容量を取得する。
【０１３２】
第２算出部２４０３は、ログデータに基づいて、直近期間における書き込みアクセス数を求める（Ｓ２６０３）。直近期間は、現時点から第１単位時間遡った時点から現時点までの期間である。
【０１３３】
また、第２算出部２４０３は、ログデータに基づいて、直近期間における読み取りアクセス数を求める（Ｓ２６０５）。第２算出部２４０３は、ログデータに基づいて、直近期間における読み取りデータサイズの平均値を算出する（Ｓ２６０７）。更に、第２算出部２４０３は、ログデータに基づいて、直近期間におけるアクセス領域間の距離の平均値を算出する（Ｓ２６０９）。
【０１３４】
第２算出部２４０３は、これらのパラメータを予測モデルに適用して、第１バッファ５６１における使用領域の増量を予測する（Ｓ２６１１）
【０１３５】
第２算出部２４０３は、Ｓ２６０１で特定された第１バッファ５６１の空き容量から、Ｓ２６１１で予測された使用領域の増量を引いて、第１バッファ５６１の空き容量の予測値を求める（Ｓ２６１３）。第２算出処理を終えると、呼び出し元である提供処理（Ｄ）に復帰する。
【０１３６】
図２５の説明に戻る。第４判定部２４０５は、第１バッファ５６１における空き容量の予測値が閾値以上であるか否かを判定する（Ｓ２５０３）。第１バッファ５６１における空き容量の予測値が閾値を下回ると判定した場合には、第４判定部２４０５は、一時待機して（Ｓ２５０５）、Ｓ９０１に示した処理に戻って、上述した処理を繰り返す。
【０１３７】
一方、第１バッファ５６１における空き容量の予測値が閾値以上であると判定した場合には、Ｓ９０５に示した処理に移る。Ｓ９０５乃至Ｓ９０９に示した処理は、図９の場合と同様である。Ｓ２２０３に示した処理は、図２２の場合と同様である。Ｓ９１１及びＳ９１３に示した処理は、図９の場合と同様である。
【０１３８】
本実施の形態によれば、ＨＤＤからの読み取り抑制を、より適正に行えるようになる。
【０１３９】
また、予測されるバッファ使用状況に基づいて、読み取り抑制の要否を判定できる。その結果として、読み取り抑制に伴う性能劣化を低減できる。
【０１４０】
また、ＨＤＤの動作状況に基づき、バッファ使用量の予測変化量をより正しく求めることができる。
【０１４１】
尚、ＨＤＤは、記憶装置の例である。本実施の形態を、ＨＤＤ以外の記憶装置に適用するようにしてもよい。例えば、光ディスクドライブに適用するようにしてもよい。
【０１４２】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１４３】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１４４】
なお、上で述べたクライアント装置１０１及びサーバ装置１０３は、コンピュータ装置であって、図２７に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４５】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１４６】
本実施の形態に係る制御方法は、（Ａ）記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、（Ｂ）上記パラメータに基づいて、バッファ使用量の予測変化量を算出し、（Ｃ）現在のバッファ使用状況と上記予測変化量とに基づいて、読み取りアクセスの可否を判定する処理を含む。
【０１４７】
このようにすれば、記憶機器からの読み取り抑制を、より適正に行えるようになる。
【０１４８】
また、上記予測変化量を算出する処理において、基準時点以前の第１期間におけるアクセス特性を示すパラメータを入力データとし、当該基準時点以後の第２期間におけるバッファ使用量の変化量を出力データとする予測モデルを用いるようにしてもよい。
【０１４９】
このようにすれば、予測されるバッファ使用状況に基づいて、読み取り抑制の要否を判定できる。つまり、読み取り抑制に伴う性能劣化を低減できる。
【０１５０】
更に、アクセス特性を示すパラメータは、記憶装置に対するアクセス領域のランダム性を示すパラメータを含んでもよい。上述した読み取りデータサイズ及びアクセス領域間の距離は、記憶装置に対するアクセス領域のランダム性を示すパラメータの例に相当する。
【０１５１】
このようにすれば、記憶機器の動作状況に基づき、バッファ使用量の予測変化量をより正しく求めることができる。
【０１５２】
更に、アクセス特性を示すパラメータは、記憶装置に対するアクセス頻度を示すパラメータを含んでもよい。
【０１５３】
このようにすれば、記憶機器の動作状況に基づき、バッファ使用量の予測変化量をより正しく求めることができる。
【０１５４】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１５５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５６】
（付記１）
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、
前記パラメータに基づいて、バッファ使用量の予測変化量を算出し、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する
処理をコンピュータに実行させる制御プログラム。
【０１５７】
（付記２）
前記予測変化量を算出する処理において、基準時点以前の第１期間における前記アクセス特性を示すパラメータを入力データとし、当該基準時点以後の第２期間における前記バッファ使用量の変化量を出力データとする予測モデルを用いる
付記１記載の制御プログラム。
【０１５８】
（付記３）
前記アクセス特性を示すパラメータは、前記記憶装置に対するアクセス領域のランダム性を示すパラメータを含む
付記１又は２記載の制御プログラム。
【０１５９】
（付記４）
前記アクセス特性を示すパラメータは、前記記憶装置に対するアクセス頻度を示すパラメータを含む
付記１乃至３のいずれか１つ記載の制御プログラム。
【０１６０】
（付記５）
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、
前記パラメータに基づいて、バッファ使用量の予測変化量を算出し、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する
処理を含み、コンピュータにより実行される制御方法。
【０１６１】
（付記６）
記憶装置に対する読み取りアクセスを行おうとする際に、当該記憶装置に対するアクセス記録に基づいて、アクセス特性を示すパラメータを算出し、当該パラメータに基づいて、バッファ使用量の予測変化量を算出する算出部と、
現在のバッファ使用状況と前記予測変化量とに基づいて、前記読み取りアクセスの可否を判定する判定部と
を有する制御装置。
【符号の説明】
【０１６２】
１０１  クライアント装置    １０３  サーバ装置
１０５  情報処理装置    ５０１  受信部
５０３  送信部    ５０５  起動部
５０７  バッファ管理部    ５０９  ＨＤＤアクセス部
５１１  格納処理部    ５１３  提供部
５６１  第１バッファ    ５６３  第２バッファ
５６５  管理テーブル記憶部    ５２１  第１判定部
５２３  第１記憶処理部    ５２５  第１決定部
５２７  更新部    ５２９  第１解放部
５４１  第２判定部    ５４３  第２決定部
５４５  第２記憶処理部    ５４７  第２解放部
１１０１  第３判定部    １９０１  ログ記憶部
１９０３  学習データ記憶部    １９０５  モデル学習部
１９０７  モデルデータ記憶部    １９０９  第１記録処理部
１９１１  第２記録処理部    １９１３  第１算出部
２４０１  モデル適用部    ２４０３  第２算出部
２４０５  第４判定部
【図１】
2018112906.tif 000003
【図２】
2018112906.tif 000004
【図３】
2018112906.tif 000005
【図４】
2018112906.tif 000006
【図５Ａ】
2018112906.tif 000007
【図５Ｂ】
2018112906.tif 000008
【図５Ｃ】
2018112906.tif 000009
【図６】
2018112906.tif 000010
【図７】
2018112906.tif 000011
【図８】
2018112906.tif 000012
【図９】
2018112906.tif 000013
【図１０】
2018112906.tif 000014
【図１１】
2018112906.tif 000015
【図１２】
2018112906.tif 000016
【図１３Ａ】
2018112906.tif 000017
【図１３Ｂ】
2018112906.tif 000018
【図１４】
2018112906.tif 000019
【図１５】
2018112906.tif 000020
【図１６】
2018112906.tif 000021
【図１７】
2018112906.tif 000022
【図１８】
2018112906.tif 000023
【図１９Ａ】
2018112906.tif 000024
【図１９Ｂ】
2018112906.tif 000025
【図１９Ｃ】
2018112906.tif 000026
【図２０】
2018112906.tif 000027
【図２１】
2018112906.tif 000028
【図２２】
2018112906.tif 000029
【図２３】
2018112906.tif 000030
【図２４Ａ】
2018112906.tif 000031
【図２４Ｂ】
2018112906.tif 000032
【図２５】
2018112906.tif 000033
【図２６】
2018112906.tif 000034
【図２７】
2018112906.tif 000035