(57)【特許請求の範囲】
【請求項１】
連続して処理される複数のデータを含む複数のデータ群それぞれを、複数の記憶領域に格納する第１記憶装置と、
複数の前記記憶領域にそれぞれ対応する複数の命令記憶領域を有し、前記第１記憶装置よりも高速で動作可能な第２記憶装置と、
受信した複数のアクセス命令を、各アクセス命令の対象データの格納された前記記憶領域に対応する前記命令記憶領域に格納する命令受信部と、
複数の前記命令記憶領域のいずれかを選択し、選択された前記命令記憶領域に格納されたアクセス命令を一括して処理する処理部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記処理部は、前記アクセス命令の受信頻度に応じて、前記第２記憶装置が備える複数の命令記憶領域のうち最も多くのアクセス命令が格納された命令記憶領域を選択する第１の選択方法と、前記第２記憶装置が備える複数の命令記憶領域のうち最も古いアクセス命令が格納された命令記憶領域を選択する第２の選択方法とを切り替えて適用する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、単位時間当たりの前記アクセス命令の処理数が単位時間当たりの前記アクセス命令の受信数以上になるように、前記第１の選択方法を適用する割合を決定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記第２記憶装置が備える複数の命令記憶領域を識別する記憶領域識別情報と、該命令記憶領域に含まれるアクセス命令を識別するアクセス命令識別情報とを含む記憶領域関連情報に基づいて、前記受信した複数の前記アクセス命令の対象データの格納された前記記憶領域に対応する命令記憶領域を判定する判定部
を備え、
前記命令受信部は、前記判定結果に基づいて、前記受信した複数の前記アクセス命令を、前記対応する命令記憶領域に格納する
ことを特徴とする請求項１〜３のうちいずれか１項に記載の情報処理装置。
【請求項５】
コンピュータに、
連続して処理される複数のデータを含む複数のデータ群それぞれを、複数の記憶領域に格納する第１記憶装置に格納されたデータへの複数のアクセス命令を受信し、
複数の前記記憶領域にそれぞれ対応する複数の命令記憶領域を有し、前記第１記憶装置よりも高速で動作可能な第２記憶装置が備える複数の前記命令記憶領域のうちの、各アクセス命令の対象データの格納された前記記憶領域に対応する命令記憶領域に、受信した複数の前記アクセス命令を格納し、
複数の前記命令記憶領域のいずれかを選択し、選択された前記命令記憶領域に格納されたアクセス命令を一括して処理する
ことを実行させる情報処理プログラム。
【請求項６】
前記第２記憶装置におけるいずれかの命令記憶領域の選択において、前記アクセス命令の受信頻度に応じて、前記第２記憶装置が備える複数の命令記憶領域のうち最も多くのアクセス命令が格納された命令記憶領域を選択する第１の選択方法と、前記第２記憶装置が備える複数の命令記憶領域のうち最も古いアクセス命令が格納された命令記憶領域を選択する第２の選択方法とを切り替えて適用する
ことを特徴とする請求項５に記載の情報処理プログラム。
【請求項７】
前記第２記憶装置におけるいずれかの命令記憶領域の選択において、単位時間当たりの前記アクセス命令の処理数が単位時間当たりの前記アクセス命令の受信数以上になるように、前記第１の選択方法を適用する割合を決定する
ことを特徴とする請求項６に記載の情報処理プログラム。
【請求項８】
前記コンピュータは、さらに、
前記第２記憶装置が備える複数の命令記憶領域を識別する記憶領域識別情報と、該命令記憶領域に含まれるアクセス命令を識別するアクセス命令識別情報とを含む記憶領域関連情報に基づいて、前記受信した複数の前記アクセス命令の対象データの格納された前記記憶領域に対応する命令記憶領域を判定する
処理を実行させ、
前記第２記憶装置が備える複数の命令記憶領域のうちの前記対応する命令記憶領域への、前記受信した複数の前記アクセス命令の格納において、前記判定結果に基づいて、前記受信した複数の前記アクセス命令を、前記対応する前記命令記憶領域に格納する
ことを特徴とする請求項５〜７のうちいずれか１項に記載の情報処理プログラム。
【請求項９】
コンピュータにより実行される情報処理方法であって、
前記コンピュータは、
連続して処理される複数のデータを含む複数のデータ群それぞれを、複数の記憶領域に格納する第１記憶装置に格納されたデータへの複数のアクセス命令を受信し、
複数の前記記憶領域にそれぞれ対応する複数の命令記憶領域を有し、前記第１記憶装置よりも高速で動作可能な第２記憶装置が備える複数の命令記憶領域のうちの、各アクセス命令の対象データの格納された前記記憶領域に対応する命令記憶領域に、受信した複数の前記アクセス命令を格納し、
複数の前記命令記憶領域のいずれかを選択し、選択された前記命令記憶領域に格納されたアクセス命令を一括して処理する
ことを実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に格納されたデータへのアクセス技術に関する。
【背景技術】
【０００２】
ある種のデータ分析システムは、処理要求を受信すると、その処理要求を受信したタイミングで分析処理を行う。そのようなデータ分析システムの一例として、観測対象で発生した事象を測定し、測定されたデータを次段へ転送する測定データ処理装置がある。測定データ処理装置は、この発生した事象の種類を示す事象情報を受け取り、この事象情報に関連した、測定を開始してからこの事象が発生するまでの絶対経過時間を含む時間情報を生成するデータ受取り部を備える。この測定データ処理装置はまた、この事象情報と時間情報とを一時的に蓄える内部バッファを備える。この測定データ処理装置はさらに、この内部バッファに蓄えられているデータ量を判断するデータ量判断部を備える。このデータ量判断部は、データ量が最も低い第１段階にある場合に、データ量の内部バッファに占める使用率が第１上昇時閾値を超えた場合は、データ量は第１段階よりも多い第２段階になったと判断する。このデータ量判断部は、第２段階にある場合に、使用率が第１上昇時閾値より小さい第１下降時閾値を下回った場合は、データ量は第１段階に戻ったと判断する。このデータ量判断部はさらに、データ転送部を備える。このデータ転送部は第１段階であると判断する場合には、内部バッファから事象情報と時間情報とを取り出して、取り出した事象情報と時間情報とを次段へ転送する。このデータ転送部は第２段階であると判断する場合には、内部バッファから事象情報と時間情報とを取り出して、この事象情報と、時間情報の精度を低下させた粗時間情報とを、次段へ転送する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２８７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記測定データ処理装置では、データ到着頻度が高い時は情報量をある程度落とすことと、データ到着頻度が低くなった機会に転送することで、データ転送がデータ到着に間に合うようにしている。
【０００５】
しかしながら、上記測定データ処理装置の場合には、データへのアクセス回数については考慮されておらず、記憶装置に格納されたデータへのアクセス効率について問題がある。
【０００６】
１つの側面では、本発明は、記憶装置に格納されたデータへのアクセス命令に対する処理効率を向上させる技術を提供する。
【課題を解決するための手段】
【０００７】
情報処理装置は、第１記憶装置、第２記憶装置、命令受信部、及び処理部を含む。第１記憶装置は、連続して処理される複数のデータを含む複数のデータ群それぞれを、複数の記憶領域に格納する。第２記憶装置は、複数の前記記憶領域にそれぞれ対応する複数の命令記憶領域を有し、前記第１記憶装置よりも高速で動作可能である。命令受信部は、受信した複数のアクセス命令を、各アクセス命令の対象データの格納された前記記憶領域に対応する前記命令記憶領域に格納する。処理部は、複数の前記命令記憶領域のいずれかを選択し、選択された前記命令記憶領域に格納されたアクセス命令を一括して処理する。
【発明の効果】
【０００８】
一実施形態によれば、記憶装置に格納されたデータへのアクセス命令に対する処理効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態における情報処理装置の一例を示す。
【図２】本実施形態におけるデータ分析システムの一例を示す。
【図３】本実施形態におけるデータ・セグメント関係テーブル２４の一例を示す。
【図４】本実施形態におけるイベント到着からアクセス命令処理までのサーバの動作を説明するための図である。
【図５】本実施形態におけるイベント情報の到着からアクセス命令処理までのフローの一例を示す。
【図６Ａ】本実施形態における命令積載キューの優先順位の計算方法の一例を説明するための図（その１）である。
【図６Ｂ】本実施形態における命令積載キューの優先順位の計算方法の一例を説明するための図（その２）である。
【図７】本実施形態を適用したコンピュータのハードウェア環境の構成ブロック図の一例を示す。
【発明を実施するための形態】
【００１０】
ある種のデータ分析システムは、新しくイベント情報が到着すると、そのイベント情報が到着したタイミングで分析処理を行う。ここで、イベント情報（またはイベント）とは、クライアント端末より送信される分析対象のデータへのアクセス命令を含む情報のことをいう。このとき、データ分析システムは、そのイベント情報に関係するデータを参照して処理を行い、その処理結果を再度そのデータに反映する。これにより、新しいイベントが発生する。このような処理を、イベントが新しく発生しなくなるまで繰り返す。
【００１１】
処理される際に、データ分析システムによって参照されるデータは、量や保全性のためにハードディスクなどの大容量で低速な記憶媒体（以降、「低速記憶媒体」と呼ぶ）に蓄積されることが多い。しかし、低速記憶媒体上へのデータアクセスは時間がかかるため、イベント情報の到着が速いと、処理が間に合わないことが起こりえる。
【００１２】
そこで、例えば、次の方法がある。低速記憶媒体の前段に、メモリのような小容量で高速の記憶媒体（以降、「高速記憶媒体」と呼ぶ）を配置する。そして、低速記憶媒体上のデータへのアクセス命令（以降、「命令」と呼ぶ）を高速記憶媒体上にある程度バッファし、それらのアクセス命令をまとめて処理する。例えばNCQ（Native Command Queuing）は、ディスクへの制御命令をキューに格納し、ディスクの回転やヘッドの動作が最小限で済むような順番に格納し直して処理する。これにより、制御命令ごとにディスクへのランダムアクセスが発生しない。
【００１３】
しかしながら、しかし、キューの上限まで命令を格納して処理すると、単位時間の処理量は増える（スループットは大きくなる）が、キューに最初に格納した命令（古い命令）が処理されるまで時間がかかる。つまり、データ転送などの処理を要求してから、その結果が返送されるまでの遅延時間（レイテンシ）は長くなる（レイテンシは高くなる）。その結果、次のイベント到着までに低速記憶媒体へのデータ転送が十分完了するぐらいにイベント到着頻度が低い場合、データ分析システムは無駄に処理を待つことになる。
【００１４】
一方、命令をほとんどキューに格納せず処理する、すなわちイベントの到着の度にイベントを処理すると、レイテンシは小さくなるが、スループットを大きくすることはできない。この場合、イベント到着頻度が高いと、命令を処理している間に次のイベントが到着してしまい、処理が間に合わない。
【００１５】
そこで、本実施形態の一側面として、連続して取得される、記憶装置に格納されたデータへのアクセス命令に対する処理効率を向上させる技術を提供する。
【００１６】
以下、図面に基づいて本実施形態を説明する。
図１は、本実施形態における情報処理装置の一例を示す。情報処理装置１は、第１記憶装置２、第２記憶装置３、命令受信部４、処理部５を含む。
【００１７】
第１記憶装置２は、連続して処理される複数のデータを含む第１のデータ群を第１の領域に格納し、連続して処理される複数のデータを含む第２のデータ群を第２の記憶領域に格納する。一例として、第１記憶装置２は、複数に区分された記憶領域を含み、連続して処理するデータを同一の区分に格納する。第１記憶装置２の一例として、後述する低速記憶媒体２７が挙げられる。
【００１８】
第２記憶装置３は、第１記憶領域に格納されたデータへのアクセス命令が格納される第３記憶領域と、第２記憶領域に格納されたデータへのアクセス命令が格納される第４記憶領域とを備え、第１記憶装置よりも高速で動作可能である。一例として、第２記憶装置３は、第１記憶装置２よりも高速で動作し、区分に対応する、データへのアクセス命令が格納される待ち行列を含む。第２記憶装置３の一例として、後述する高速記憶媒体２６が挙げられる。
【００１９】
命令受信部４は、受信したアクセス命令を第２記憶装置が備える複数の記憶領域のうちの対応する記憶領域に格納する。一例として、命令受信部４は、外部より連続して到着するデータへのアクセス命令を取得して、いずれかの待ち行列に格納する。命令受信部４の一例として、後述するイベント処理部２１が挙げられる。
【００２０】
処理部５は、前記第２記憶装置におけるいずれかの記憶領域を選択し、選択された記憶領域に格納された１又は複数のアクセス命令を処理する。一例として、処理部５は、いずれかの待ち行列を選択して、選択した待ち行列内に累積して格納されたアクセス命令を処理する。処理部５の一例として、後述するキュー管理部２５が挙げられる。
【００２１】
このように構成することにより、記憶装置に格納されたデータへのアクセス命令に対する処理効率を向上させることができる。
【００２２】
処理部５は、アクセス命令の受信頻度に応じて、第１の選択方法と、第２の選択方法とを切り替えて適用する。第１の選択方法は、第２記憶装置が備える複数の記憶領域のうち最も多くのアクセス命令が格納された記憶領域を選択する方法である。第２の選択方法は、第２記憶装置が備える複数の記憶領域のうち最も古いアクセス命令が格納された記憶領域を選択する方法である。一例として、処理部５は、アクセス命令の到着頻度に応じて、最も命令が格納された待ち行列を選択する第１の選択方法と、最も古い命令が格納されたキューを選択する第２の選択方法とを切り替えて適用する。具体的には、待ち行列処理部５は、単位時間当たりのアクセス命令の処理数が単位時間当たりのアクセス命令の到着数以上になるように、第１の選択方法を適用する割合を決定する。
【００２３】
このように構成することにより、アクセス命令の到着頻度に応じて、各命令処理方法を適用する割合を調整することができる。
【００２４】
情報処理装置１は、さらに、判定部６を含む。判定部６は、第２記憶装置が備える複数の記憶領域を識別する記憶領域識別情報と、該記憶領域に含まれるデータを識別するデータ識別情報とを含む記憶領域関連情報に基づいて、受信したアクセス命令によるデータに対応する記憶領域を判定する。一例として、判定部６は、区分を識別する区分識別情報と、該区分に含まれるデータを識別するデータ識別情報とを含む区分関連情報に基づいて、取得したアクセス命令によるデータに対応する区分を判定する。この場合、命令受信部４は、命令受信部は、判定結果に基づいて、受信したデータへのアクセス命令を、前記第２記憶装置が備える複数の記憶領域のうちの対応する記憶領域に格納する。判定部６の一例として、後述するセグメント管理部２３が挙げられる。
【００２５】
このように構成することにより、アクセス先のデータを有するセグメントに対応するキューに、アクセス命令を格納することができる。
【００２６】
以下では、本実施形態の詳細について説明する。
図２は、本実施形態におけるデータ分析システムの一例を示す。データ分析システムは、クライアント装置（以下、「クライアント」と称する）１０としての情報処理装置と、サーバ装置（以下、「サーバ」と称する）２０としての情報処理装置とを含む。サーバ２０とクライアント１０とは、通信ネットワーク（以下、「ネットワーク」と称する）１１を介して接続されている。
【００２７】
クライアント１０は、分析対象のデータへのアクセス命令を含む情報（イベント情報）を、ネットワーク１１を介してサーバ２０に送信する。
【００２８】
サーバ２０は、クライアント１０から送信されたイベント情報に応じて処理を行う。サーバ２０は、イベント処理部２１、セグメント管理部２３、キュー管理部２５、高速記憶媒体２６、低速記憶媒体２７を含む。
【００２９】
イベント処理部２１は、クライアント１０からイベント情報を受け取り、そのイベント情報から低速記憶媒体２７に格納されたデータへのアクセス命令（命令）を取り出す。イベント処理部２１は、その取り出した命令をどのセグメントに対応するキュー（命令積載キュー）に格納すればよいかを、セグメント管理部２３に問い合わせる。問い合わせの結果、セグメント管理部２３からセグメントを識別するセグメントＩＤが返信された場合、イベント処理部２１は、そのセグメントＩＤに対応する命令積載キューに命令を格納する。
【００３０】
なお、セグメントと命令積載キューとは、１：１で関係づけられており、イベント処理部２１は、セグメントＩＤから命令積載キューを一意に判別することができる。
【００３１】
ここで、セグメントについて説明する。クライアント１０から連続して取得したデータをまとめて処理する場合に、低速記憶媒体２７の記憶領域を区分して、その処理が効率よく行われるように、同一の区分にデータを格納する。低速記憶媒体２７の記憶領域における区分単位をセグメントという。処理が効率よく行われるように格納するとは、例えば、ディスクへのアクセス効率が向上するように一群のデータを同一セグメントに格納したり、ディスク上に近接して一群のデータを同一セグメントに格納したりすることが考えられるが、これに限定されない。本実施形態では、どのデータがどのセグメントに含まれるかは、後述するように、予めデータとセグメントとの対応関係を示す情報（データ・セグメント関係テーブル２４）により設定されている。
【００３２】
セグメント管理部２３は、各データを低速記憶媒体２７のどのセグメントに割り当てるかを管理する。セグメント管理部２３は、データとセグメントとの対応関係を示す情報を格納するデータ・セグメント関係テーブル２４を含む。イベント処理部２１から、そのデータへのアクセス命令をどのセグメントに対応する命令積載キューに格納すればよいかの問い合わせがあると、セグメント管理部２３は、次の処理を行う。すなわち、セグメント管理部２３は、データ・セグメント関係テーブル２４を用いて、そのデータの格納先となるセグメントのセグメントＩＤを取得する。セグメント管理部２３は、取得した格納先のセグメントＩＤをイベント処理部２１に返信する。
【００３３】
キュー管理部２５は、高速記憶媒体２６上の、各セグメントに対応する命令積載キューを管理し、どの命令積載キューを選択して処理するかの判定に用いるための優先度キューを管理し、選択した命令積載キュー内のアクセス命令を処理する。具体的には、キュー管理部２５は、定期的にこれらの命令積載キューの中から所定の優先度に基づいて命令積載キューを選び、その命令積載キュー内の全アクセス命令を処理する。
【００３４】
高速記憶媒体２６は、メモリのような小容量で高速の記憶媒体である。高速記憶媒体２６は、セグメントごとの命令積載キューと、どの命令積載キューから処理するかの優先度キューを保持する。優先度キューは、命令積載キューの選び方（ポリシー）の種類の数だけ設定される。例えば、スループット優先ポリシーとレイテンシ優先ポリシーの２種類のポリシーを適用して命令積載キューを選ぶ場合、高速記憶媒体２６に優先度キューが２種類設定される。
【００３５】
低速記憶媒体２７は、ハードディスクドライブ等の大容量で低速な記憶媒体である。低速記憶媒体２７は、セグメント毎にデータを保持する。
【００３６】
図３は、本実施形態におけるデータ・セグメント関係テーブル２４の一例を示す。データ・セグメント関係テーブル２４は、「データのキー」、「セグメントＩＤ」のデータ項目を含む。「データのキー」には、そのデータに付与されている一意の情報（キー）が格納される。「セグメントＩＤ」には、そのデータの格納先のセグメントのＩＤが格納されている。
【００３７】
例えば、データのキー「C0」で特定されるデータと「Oi」で特定されるデータは、続いてアクセスされると判断され、同じセグメント（seg24）に割り振られている。また、データのキー「B0」で特定されるデータと「Xn」で特定されるデータは、続いてアクセスされると判断され、同じセグメント（seg38）に割り振られている。
【００３８】
図４は、本実施形態におけるイベント到着からアクセス命令処理までのサーバの動作を説明するための図である。上述の通り、本実施形態では、クライアント１０より連続して到着するイベント情報に対応するデータは、セグメントという単位にまとめて扱われる。高速記憶媒体２６から低速記憶媒体２７へのデータ蓄積も、低速記憶媒体２７から高速記憶媒体２６へのデータの引き上げも、セグメント単位で行われる。
【００３９】
これらの前提の下で、以下の処理を行う。まず、高速記憶媒体２６には、セグメント毎に対応するキュー（命令積載キュー）が設定されている。イベント処理部２１は、その命令積載キューに、クライアント１０から送信された、低速記憶媒体２７上に格納されているデータへの命令を格納する。
【００４０】
キュー管理部２５は、一定時間ごとに、上記複数の命令積載キューから処理すべき命令積載キューを選び、その選択した命令積載キュー内の全命令を一度に処理する。キュー管理部２５は、上記複数の命令積載キューから処理すべき命令積載キューを選ぶ場合、例えば、以下の２つのポリシーを用いて命令積載キューの優先順位を決めておき、その順位に従って命令積載キューを選択する。なお、キュー管理部２５は、命令が到着する毎に、優先度を計算し直す。
（１）スループット重視のポリシーの場合には、キュー管理部２５は、最も命令が溜まっている命令積載キューを最優先に選択する。つまり、この場合、キュー管理部２５は、格納している命令数で命令積載キューの優先順位を決定する。
（２）レイテンシ重視のポリシーの場合には、キュー管理部２５は、最も古い命令がある命令積載キューを最優先に選択する。つまり、この場合、キュー管理部２５は、格納している最も古い命令のタイムスタンプで命令積載キューの優先順位を決定する。
【００４１】
キュー管理部２５は、命令積載キューを選ぶ際、上記どちらのポリシーで選ぶかは、ある割合で決める。例えばスループット重視のポリシーとレイテンシ重視のポリシーを１：１の割合で適用する場合、キュー管理部２５は、交互に上記（１）（２）のポリシーを適用する。このポリシーの割合については、調整することができる。
【００４２】
このように、命令積載キューの選び方が固定ではなく調整できるため、イベント情報の到着頻度が一定ではない時でもイベント到着に間に合うよう命令を処理できる。また、無駄な処理待ち時間を生じない。
【００４３】
図５は、本実施形態におけるイベント情報の到着からアクセス命令処理までのフローの一例を示す。図４で説明したように、クライアント１０からイベント情報がサーバ２０のイベント処理部２１に到着すると、そのイベント情報に関係するデータへのステートアクセス命令が発生する（Ｓ１）。すなわち、イベント処理部２１は、クライアント１０から送信されたイベント情報を受信すると、そのイベント情報から低速記憶媒体２７に格納されたデータへのアクセス命令（命令）を取り出す。
【００４４】
イベント処理部２１は、その取り出した命令をどのセグメントに対応する命令積載キューに格納すればよいかをセグメント管理部２３に問い合わせる。すると、セグメント管理部２３は、そのデータの格納先のセグメントＩＤを求める（Ｓ２）。具体的には、セグメント管理部２３は、データ・セグメント関係テーブル２４から、そのデータの格納先のセグメントのセグメントＩＤを取得する。セグメント管理部２３は、取得した格納先のセグメントＩＤをイベント処理部２１に返信する。
【００４５】
イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤを用いて、データへのアクセス命令の格納先の命令積載キューを求める（Ｓ３）。すなわち、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに対応する命令積載キューを選択する。
【００４６】
イベント処理部２１は、その選択された命令積載キュー、すなわちセグメント管理部２３から返信されたセグメントＩＤに対応する命令積載キューに、アクセス命令を積む（Ｓ４）。
【００４７】
キュー管理部２５は、スループット優先の場合の、命令積載キューの優先順位を計算する（Ｓ５）。また、キュー管理部２５は、レイテンシ優先の場合の、命令積載キューの優先順位を計算する（Ｓ６）。
【００４８】
キュー管理部２５は、定期的に上記２つの優先順位をチェックし、最も優先順位の高い命令積載キューを選び、その命令積載キュー内に積まれたアクセス命令を全て処理する（Ｓ７）。このとき、キュー管理部２５は、所定のルールに従って、スループット優先の順位とレイテンシ優先の順位のどちらかを適用する。ルールの一例としては、一定時間が経過する毎に、キュー管理部２５は、２つの優先ポリシーを交互に切り替えて適用する。または、キュー管理部２５は、イベント情報の到着頻度に応じて、スループット優先の順位とレイテンシ優先の順位とを適用する割合を変更してもよい。
【００４９】
キュー管理部２５は、命令積載キュー及び優先度キューから、処理したアクセス命令に対応するエントリを削除する（Ｓ８）。ここで、エントリとは、命令積載キューに格納する各命令または優先度キューに格納する各情報の単位をいう。
【００５０】
図６Ａ及び図６Ｂは、本実施形態における命令積載キューの優先順位の計算方法の一例を説明するための図である。ｔ０〜ｔ５は、命令積載キューに命令を積むタイミング、および命令積載キューを選択するタイミングを示す。キュー管理部２５は、命令積載キューq0，q1，q2，・・・qNの優先順位を、優先度キューを用いて管理する。本実施形態では、キュー管理部２５は、スループット優先の優先度キューq_th、レイテンシ優先の優先度キューq_laを管理する。
【００５１】
キュー管理部２５は、優先度キューq_thに、「命令数」、「命令のタイムスタンプ」、及び「命令積載キューの識別情報（ＩＤ）」を含むエントリを、命令数が多い順にソートして積む。
【００５２】
また、キュー管理部２５は、優先度キューq_laに、各命令積載キューq0〜qNに初めて命令が積まれた時だけ、「命令のタイムスタンプ」、及び「命令積載キューの識別情報（ＩＤ）」のエントリを到着順に積む。従って、優先度キューq_laには、各命令積載キューの最も古いタイムスタンプを含むエントリだけが積まれる。
【００５３】
キュー管理部２５は、命令積載キューを選択するタイミングが来た場合、上述したように、スループット優先ポリシーとレイテンシ優先ポリシーの適用割合に応じて、どちらかの優先度キューを選択する。キュー管理部２５は、その選択した優先度キューの先頭のエントリに対応する命令積載キューを選択する。キュー管理部２５は、その選択した命令積載キュー内の全ての命令を処理して、優先度キューからその選択した命令積載キューに対応するエントリを削除する。
【００５４】
図６Ａ及び図６Ｂでは、キュー管理部２５は、スループット優先ポリシーとレイテンシ優先ポリシーを１：１の割合で適用する例について説明する。本実施形態では、キュー管理部２５は、一定時間が経過したら、２つの優先ポリシーを交互に切り替えて適用する。図６Ａ及び図６Ｂでは、ｔ３経過毎に、スループット優先ポリシーとレイテンシ優先ポリシーを交互に切り替えて適用する。したがって、キュー管理部２５は、ｔ２ではスループット優先ポリシーを適用し、ｔ５ではレイテンシ優先度ポリーを適用している。
【００５５】
ｔ０において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_Cをセグメント２に対応する命令積載キューq2に積む。キュー管理部２５は、優先度キューq_thに、（命令数，命令のタイムスタンプ，命令積載キューのＩＤ）＝（１，ｔ０，q2）のエントリを積む。また、キュー管理部２５は、優先度キューq_laに、（命令のタイムスタンプ，命令積載キューのＩＤ）＝（ｔ０，q2）のエントリを積む。
【００５６】
ｔ１において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_Aをセグメント０に対応する命令積載キューq0に積む。キュー管理部２５は、優先度キューq_thに、（命令数，命令のタイムスタンプ，命令積載キューのＩＤ）＝（１，ｔ１，q0）のエントリを積む。また、キュー管理部２５は、優先度キューq_laに、（命令のタイムスタンプ，命令積載キューのＩＤ）＝（ｔ１，q0）のエントリを積む。
【００５７】
ｔ２において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_Lをセグメント０に対応する命令積載キューq0に積む。命令積載キューq0に命令が１つ追加されたから、キュー管理部２５は、優先度キューq_thに既に積んである命令積載キューq0についてのエントリの「命令数」に１を加え、エントリを命令数が多い順にソートして積む。また、命令op_Lは、命令積載キューq0に最初に積まれた命令ではないので、キュー管理部２５は、優先度キューq_laに、新たなエントリを積まない。
【００５８】
この例では、ｔ２ではスループット優先ポリシーを適用するから、キュー管理部２５は、優先度キューq_thの先頭のエントリに対応する命令積載キューq0内の全ての命令op_A及びop_Lを処理する。キュー管理部２５は、優先度キューq_thから、処理した命令積載キューq0に関するエントリ（２，ｔ１，q0）を削除し、優先度キューq_laから処理した命令積載キューq2に関するエントリ（ｔ１，q0）を削除する。
【００５９】
ｔ３において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_ZをセグメントNに対応する命令積載キューqNに積む。キュー管理部２５は、優先度キューq_thに、（命令数，命令のタイムスタンプ，命令積載キューのＩＤ）＝（１，ｔ３，qN）のエントリを積む。また、キュー管理部２５は、優先度キューq_laに、（命令のタイムスタンプ，命令積載キューのＩＤ）＝（ｔ３，qN）のエントリを積む。
【００６０】
ｔ４において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_Uをセグメント０に対応する命令積載キューq0に積む。キュー管理部２５は、優先度キューq_thに、（命令数，命令のタイムスタンプ，命令積載キューのＩＤ）＝（１，ｔ４，q0）のエントリを積む。また、キュー管理部２５は、優先度キューq_laに、（命令のタイムスタンプ，命令積載キューのＩＤ）＝（ｔ４，q0）のエントリを積む。
【００６１】
ｔ５において、イベント処理部２１は、セグメント管理部２３から返信されたセグメントＩＤに基づいて、命令op_FをセグメントＮに対応する命令積載キューqNに積む。命令積載キューqFに命令が１つ追加されたから、キュー管理部２５は、優先度キューq_thに既に積んである命令積載キューqNについてのエントリの「命令数」に１を加え、エントリを命令数が多い順にソートして積む。また、命令op_Ｆは、命令積載キューq0に最初に積まれた命令ではないので、キュー管理部２５は、優先度キューq_laに、新たなエントリを積まない。
【００６２】
この例では、ｔ５ではレイテンシ優先度ポリーを適用するから、キュー管理部２５は、優先度キューq_laの先頭のエントリに対応する命令積載キューｑ２内の命令op_Cを処理する。キュー管理部２５は、優先度キューq_thから、処理した命令積載キューq2に関するエントリ（１，ｔ０，q2）を削除し、優先度キューq_laから処理した命令積載キューq2に関するエントリ（ｔ０，q2）を削除する。
【００６３】
これにより、低速記憶媒体上のデータへのアクセス命令を、続けてアクセスされるデータ毎にキューイングし、定期的に任意の命令積載キューを選択してその命令積載キュー内の命令をまとめて処理することができる。
【００６４】
次に、スループット優先とレイテンシ優先との適用の方法について説明する。キュー管理部２５は、命令を積んだ命令積載キューを定期的に選択する際に、スループット優先度キューq_thをｒの割合で選び、レイテンシ優先度キューq_laを１−ｒの割合で選ぶ（０＜ｒ≦１）。キュー管理部２５は、イベント到着頻度が高い場合にはｒを高めに設定し、イベント到着頻度が低い場合にはｒを低めに設定してもよい。
【００６５】
また、キュー管理部２５は、イベント到着頻度に合わせて、自動的にｒを決めて設定してもよい。この場合、単位時間当たりのイベント到着頻度をＦ１［event/s］とする。単位時間当たりの命令処理数をＦ２［operation/s］とする。
【００６６】
スループット優先ポリシーのみを適用した場合に、単位時間当たりに処理できる命令数をＦＴ［operation/s］とする。この値は別途測定して求めてもよいし、ｒ＝１として設定した時の単位時間当たりの処理命令数としてもよい。
【００６７】
レイテンシ優先ポリシーのみを適用した場合に、単位時間当たりに処理できる命令数をＦＬ［operation/s］とする。この値は別途測定して求めてもよいし、ｒ＝０として設定した時の単位時間当たりの処理命令数としてもよい。Ｆ２は、ＦＴとＦＬによって以下のように決定される。
【００６８】
Ｆ２ ＝ ＦＴ ＊ ｒ ＋ ＦＬ ＊ （１−ｒ）
Ｆ２ ≧ Ｆ１ となるようにｒを求める。命令積載キューを選択してその命令積載キュー内の命令を処理する時間間隔は、ＦＴ ≧ Ｆ１となるように設定する。時間間隔が短すぎると命令積載キュー内にたまる命令数が少なくなり、つまり一度に処理出来る命令数が少なくなって Ｆ１ ＜ ＦＴ となる。
【００６９】
なお、イベント到着頻度は、例えば、次のようにして得られる。まず、イベント処理部２１が、単位時間当たりのイベント情報の到着数（イベント到着頻度）を計測し、そのイベント到着頻度をキュー管理部２５に通知する。これにより、キュー管理部２５は、イベント到着頻度を取得することができる。
【００７０】
これにより、定期的に複数の命令積載キューから処理すべき命令積載キューを選ぶ際、予め決められた割合で最も命令が多い命令積載キューから優先して選び、残りの割合で最も古い命令がある命令積載キューから優先して選ぶことができる。また、その割合は、単位時間当たりの命令処理数が単位時間当たりのイベント到着数と同じかまたはそれ以上になるように決めるようにすることができる。
【００７１】
図７は、本実施形態を適用したコンピュータのハードウェア環境の構成ブロック図の一例を示す。コンピュータ３０は、本実施形態の処理を行うプログラムを読み込むことにより、命令取得部４、待ち行列処理部５、及び区分判定部６として機能する。
【００７２】
コンピュータ３０は、出力Ｉ／Ｆ３１、ＣＰＵ３２、ＲＯＭ３３、通信Ｉ／Ｆ３４、入力Ｉ／Ｆ３５、ＲＡＭ３６、記憶装置３７、読み取り装置３８、バス３９を含む。コンピュータ３０は、出力機器４１、及び入力機器４２と接続可能である。
【００７３】
ここで、ＣＰＵは、中央演算装置を示す。ＲＯＭは、リードオンリメモリを示す。ＲＡＭは、ランダムアクセスメモリを示す。Ｉ／Ｆは、インターフェースを示す。バス３９には、出力Ｉ／Ｆ３１、ＣＰＵ３２、ＲＯＭ３３、通信Ｉ／Ｆ３４、入力Ｉ／Ｆ３５、ＲＡＭ３６、記憶装置３７、読み取り装置３８が接続されている。読み取り装置３８は、可搬型記録媒体を読み出す装置である。出力機器４１は、出力Ｉ／Ｆ３１に接続されている。入力機器４２は、入力Ｉ／Ｆ３５に接続されている。
【００７４】
記憶装置３７としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。
【００７５】
記憶装置３７またはＲＯＭ３３には、例えば、本実施形態で説明した処理を実現するプログラム、データ、データ・セグメント関係テーブル２４等が格納されている。記憶装置３７は、低速記憶媒体２７に相当する。ＲＡＭ３６は、たとえば、一時蓄積バッファ領域を確保したり、作業領域として使用したりすることができる。ＲＡＭ３６は、高速記憶媒体２６に相当する。
【００７６】
ＣＰＵ３２は、記憶装置３７等に格納した本実施形態で説明した処理を実現するプログラムを読み出し、図５に示すフローを実現するプログラムを実行する。また、本実施形態における図５に示すフローを実現する処理は、オペレーティングシステム（ＯＳ）上で動作するソストウェアのプロセスとして実行されてもよい。
【００７７】
本実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク４０、および通信Ｉ／Ｆ３４を介して、例えば記憶装置３７に格納してもよい。また、本実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置３８にセットされて、ＣＰＵ３２によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣ（integrated circuit）カード、ＵＳＢ（Universal Serial Bus）メモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置３８によって読み取られる。
【００７８】
また、入力機器４２には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。また、出力機器４１には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク４０は、インターネット、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、専用線、有線、無線等の通信網であってよい。
【００７９】
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【００８０】
１      情報処理装置
２      第１記憶装置
３      第２記憶装置
４      命令受信部
５      処理部
６      判定部
１０      クライアント
１１      ネットワーク
２０      サーバ
２１      イベント処理部
２３      セグメント管理部
２４      データ・セグメント関係テーブル
２５      キュー管理部
２６      高速記憶媒体
２７      低速記憶媒体
【図１】
0005938968.tif 000002
【図２】
0005938968.tif 000003
【図３】
0005938968.tif 000004
【図４】
0005938968.tif 000005
【図５】
0005938968.tif 000006
【図６Ａ】
0005938968.tif 000007
【図６Ｂ】
0005938968.tif 000008
【図７】
0005938968.tif 000009