(57)【要約】【課題】使用頻度の高いデータへのアクセスの高速性を容易に維持する。【解決手段】データを格納する外部記憶装置２００と接続され、外部記憶装置２００へのアクセスよりも高速にアクセス可能であるメモリ１２０を具備する情報処理装置１００にて、データを所定の単位のグループに分割してメモリ１２０に格納し、メモリ１２０に格納されているグループへのアクセスが継続して行われない時間とあらかじめ設定された第１の経過時間とが一致した場合、当該グループを圧縮してメモリ１２０に格納し、その後、グループへのアクセスが継続して行われない時間とあらかじめ設定された第２の経過時間とが一致した場合、当該グループを外部記憶装置２００へ移動させる。【選択図】図１
2010182075.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する外部記憶装置と、該外部記憶装置と接続され、該外部記憶装置へのアクセスよりも高速にアクセス可能であるメモリを具備する情報処理装置とから構成された情報処理システムにおいて、
前記情報処理装置は、前記データを所定の単位のグループに分割して前記メモリに格納し、前記メモリに格納されている前記グループへのアクセスが継続して行われない時間とあらかじめ設定された第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納し、その後、前記グループへのアクセスが継続して行われない時間とあらかじめ設定された第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させることを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記情報処理装置は、前記メモリに格納されている前記グループがアクセスされた回数をカウントし、前記圧縮するグループが複数存在する場合、前記回数に基づいて前記グループの圧縮する優先順位を設定することを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムにおいて、
前記情報処理装置は、前記回数が多いほど前記優先順位を低く設定することを特徴とする情報処理システム。
【請求項４】
請求項１に記載の情報処理システムにおいて、
前記情報処理装置は、前記メモリに格納されている前記グループがアクセスされた回数をカウントし、前記外部記憶装置へ移動させるグループが複数存在する場合、前記回数に基づいて前記外部記憶装置へ移動させるグループの優先順位を設定することを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
前記情報処理装置は、前記回数が多いほど前記優先順位を低く設定することを特徴とする情報処理システム。
【請求項６】
データを格納する外部記憶装置と接続された情報処理装置であって、
前記外部記憶装置へのアクセスよりも高速にアクセス可能であり、前記データを所定の単位のグループに分割して格納するメモリと、
前記メモリに格納されている前記グループへのアクセスが継続して行われない時間を計測し、前記計測した時間とあらかじめ設定された第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納し、その後、前記計測した時間とあらかじめ設定された第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させる制御部とを有する情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
前記制御部は、
前記メモリに格納されている前記グループへのアクセスが継続して行われない時間を計測するタイマと、
前記タイマが計測した時間と前記１の経過時間とを比較する第１の比較部と、
前記第１の比較部における比較の結果、前記タイマが計測した時間と前記第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納する圧縮部と、
その後、前記タイマが計測した時間と前記第２の経過時間とを比較する第２の比較部と、
前記第２の比較部における比較の結果、前記タイマが計測した時間と前記第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させる移動部とを有することを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記制御部は、
前記メモリに格納されている前記グループがアクセスされた回数をカウントするカウンタと、
前記圧縮するグループが複数存在する場合、前記回数に基づいて前記グループの圧縮する優先順位を設定する優先順位設定部とを有することを特徴とする情報処理装置。
【請求項９】
請求項８に記載の情報処理装置において、
前記優先順位設定部は、前記回数が多いほど前記優先順位を低く設定することを特徴とする情報処理装置。
【請求項１０】
請求項７に記載の情報処理装置において、
前記制御部は、
前記メモリに格納されている前記グループがアクセスされた回数をカウントするカウンタと、
前記外部記憶装置へ移動させるグループが複数存在する場合、前記回数に基づいて前記外部記憶装置へ移動させるグループの優先順位を設定する優先順位設定部とを有することを特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、
前記優先順位設定部は、前記回数が多いほど前記優先順位を低く設定することを特徴とする情報処理装置。
【請求項１２】
第１の記憶部と、該第１の記憶部へのアクセスよりも高速にアクセス可能な第２の記憶部とに、データを所定の単位のグループに分割して格納するデータ格納方法であって、
前記第２の記憶部に格納されている前記グループへのアクセスが継続して行われない時間を計測する処理と、
前記計測した時間とあらかじめ設定された第１の経過時間とを比較する第１の比較処理と、
前記第１の比較処理の結果、前記計測した時間と前記第１の経過時間とが一致した場合、該グループを圧縮して前記第２の記憶部に格納する処理と、
その後、前記計測した時間とあらかじめ設定された第２の経過時間とを比較する第２の比較処理と、
前記第２の比較処理の結果、前記計測した時間と前記第２の経過時間とが一致した場合、該グループを前記第１の記憶部へ移動させる処理とを有するデータ格納方法。
【請求項１３】
請求項１２に記載のデータ格納方法において、
前記第２の記憶部に格納されている前記グループがアクセスされた回数をカウントする処理と、
前記圧縮するグループが複数存在する場合、前記回数に基づいて前記グループの圧縮する優先順位を設定する処理とを有することを特徴とするデータ格納方法。
【請求項１４】
請求項１３に記載のデータ格納方法において、
前記回数が多いほど前記優先順位を低く設定する処理を有することを特徴とするデータ格納方法。
【請求項１５】
請求項１２に記載のデータ格納方法において、
前記第２の記憶部に格納されている前記グループがアクセスされた回数をカウントする処理と、
前記第１の記憶部へ移動させるグループが複数存在する場合、前記回数に基づいて前記第１の記憶部へ移動させるグループの優先順位を設定する処理とを有することを特徴とするデータ格納方法。
【請求項１６】
請求項１５に記載のデータ格納方法において、
前記回数が多いほど前記優先順位を低く設定する処理を有することを特徴とするデータ格納方法。
【請求項１７】
データを格納する外部記憶装置と接続され、前記外部記憶装置へのアクセスよりも高速にアクセス可能なメモリを有する情報処理装置に、
前記データを所定の単位のグループに分割して前記メモリに格納する手順と、
前記メモリに格納されている前記グループへのアクセスが継続して行われない時間を計測する手順と、
前記計測した時間とあらかじめ設定された第１の経過時間とを比較する第１の比較手順と、
前記第１の比較手順の結果、前記計測した時間と前記第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納する手順と、
その後、前記計測した時間とあらかじめ設定された第２の経過時間とを比較する第２の比較手順と、
前記第２の比較手順の結果、前記計測した時間と前記第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させる手順とを実行させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムにおいて、
前記メモリに格納されている前記グループがアクセスされた回数をカウントする手順と、
前記圧縮するグループが複数存在する場合、前記回数に基づいて前記グループの圧縮する優先順位を設定する手順とを実行させるためのプログラム。
【請求項１９】
請求項１８に記載のプログラムにおいて、
前記回数が多いほど前記優先順位を低く設定する手順を実行させるためのプログラム。
【請求項２０】
請求項１７に記載のプログラムにおいて、
前記メモリに格納されている前記グループがアクセスされた回数をカウントする手順と、
前記外部記憶装置へ移動させるグループが複数存在する場合、前記回数に基づいて前記外部記憶装置へ移動させるグループの優先順位を設定する手順とを実行させるためのプログラム。
【請求項２１】
請求項２０に記載のプログラムにおいて、
前記回数が多いほど前記優先順位を低く設定する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納するための情報処理システム、情報処理装置、データ格納方法およびプログラムに関する。
【背景技術】
【０００２】
一般的に、データを格納するメモリ等の記憶素子には、格納できる容量に制限がある。近年の情報化社会では、処理されるデータ量が膨大であり、それらのデータ量は、情報処理装置に具備されたメモリの容量をはるかに超えるものとなっている場合が多い。
【０００３】
そこで、情報処理装置の外部に外部記憶装置を接続し、当該情報処理装置に具備されたメモリに格納しきれなかったデータを外部記憶装置に格納するという方法が一般的に取られている。
【０００４】
しかしながら、情報処理装置から外部記憶装置へのアクセス速度は情報処理装置から情報処理装置が具備するメモリへのアクセス速度に対して非常に低速であるため、情報処理装置にて外部記憶装置に格納されたデータを用いた処理を行う場合、高速に処理することができない。
【０００５】
そこで、データの参照頻度に応じて、情報処理装置が具備するメモリ（内部記憶装置）に格納されているデータを外部記憶装置へ移動させる技術が考えられている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特公平７−１０４８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術においては、すべてのデータを外部記憶装置に格納することが前提となっており、内部記憶装置に格納されているデータと、外部記憶装置に格納されたデータとの同期を取らなければならないという問題点がある。
【０００８】
本発明は、上述した課題を解決する情報処理システム、情報処理装置、データ格納方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理システムは、
データを格納する外部記憶装置と、該外部記憶装置と接続され、該外部記憶装置へのアクセスよりも高速にアクセス可能であるメモリを具備する情報処理装置とから構成された情報処理システムにおいて、
前記情報処理装置は、前記データを所定の単位のグループに分割して前記メモリに格納し、前記メモリに格納されている前記グループへのアクセスが継続して行われない時間とあらかじめ設定された第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納し、その後、前記グループへのアクセスが継続して行われない時間とあらかじめ設定された第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させることを特徴とする。
【００１０】
また、本発明の情報処理装置は、
データを格納する外部記憶装置と接続された情報処理装置であって、
前記外部記憶装置へのアクセスよりも高速にアクセス可能であり、前記データを所定の単位のグループに分割して格納するメモリと、
前記メモリに格納されている前記グループへのアクセスが継続して行われない時間を計測し、前記計測した時間とあらかじめ設定された第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納し、その後、前記計測した時間とあらかじめ設定された第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させる制御部とを有する。
【００１１】
また、本発明のデータ格納方法は、
第１の記憶部と、該第１の記憶部へのアクセスよりも高速にアクセス可能な第２の記憶部とに、データを所定の単位のグループに分割して格納するデータ格納方法であって、
前記第２の記憶部に格納されている前記グループへのアクセスが継続して行われない時間を計測する処理と、
前記計測した時間とあらかじめ設定された第１の経過時間とを比較する第１の比較処理と、
前記第１の比較処理の結果、前記計測した時間と前記第１の経過時間とが一致した場合、該グループを圧縮して前記第２の記憶部に格納する処理と、
その後、前記計測した時間とあらかじめ設定された第２の経過時間とを比較する第２の比較処理と、
前記第２の比較処理の結果、前記計測した時間と前記第２の経過時間とが一致した場合、該グループを前記第１の記憶部へ移動させる処理とを有する。
【００１２】
また、本発明のプログラムは、
データを格納する外部記憶装置と接続され、前記外部記憶装置へのアクセスよりも高速にアクセス可能なメモリを有する情報処理装置に実行させるためのプログラムであって、
前記データを所定の単位のグループに分割して前記メモリに格納する手順と、
前記メモリに格納されている前記グループへのアクセスが継続して行われない時間を計測する手順と、
前記計測した時間とあらかじめ設定された第１の経過時間とを比較する第１の比較手順と、
前記第１の比較手順の結果、前記計測した時間と前記第１の経過時間とが一致した場合、該グループを圧縮して前記メモリに格納する手順と、
その後、前記計測した時間とあらかじめ設定された第２の経過時間とを比較する第２の比較手順と、
前記第２の比較手順の結果、前記計測した時間と前記第２の経過時間とが一致した場合、該グループを前記外部記憶装置へ移動させる手順とを実行させる。
【発明の効果】
【００１３】
以上説明したように本発明においては、データを格納する外部記憶装置と接続され、外部記憶装置へのアクセスよりも高速にアクセス可能であるメモリを具備する情報処理装置にて、データを所定の単位のグループに分割してメモリに格納し、メモリに格納されているグループへのアクセスが継続して行われない時間とあらかじめ設定された第１の経過時間とが一致した場合、当該グループを圧縮してメモリに格納し、その後、グループへのアクセスが継続して行われない時間とあらかじめ設定された第２の経過時間とが一致した場合、当該グループを外部記憶装置へ移動させる構成としたため、使用頻度の高いデータへのアクセスの高速性を容易に維持することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の情報処理システムの実施の一形態を示す図である。
【図２】図１に示した制御部の内部構成の一例を示す図である。
【図３】各列とともにメモリまたは外部記憶装置に格納されたパラメータの一例を示す図である。
【図４】システムとして設定されたパラメータの一例を示す図である。
【図５】列１〜５について格納されたパラメータの一例を示す図である。
【図６】各パラメータが列毎にメモリと外部記憶装置とに格納された様子を示す図である。
【図７】本形態におけるデータ格納方法を説明するためのフローチャートである。
【図８】列１についてのパラメータ、状態および格納場所の遷移の様子を示す図である。
【図９】パラメータ３がパラメータ８に到達した場合のパラメータ３のスケールダウンの様子を示す図である。
【図１０】列に対する検索処理が要求された際の処理を説明するためのフローチャートである。
【図１１】昇順で格納された列データの一例を示す図である。
【図１２】解凍（非圧縮状態に）する実データの範囲を特定する処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１６】
図１は、本発明の情報処理システムの実施の一形態を示す図である。
【００１７】
本形態は図１に示すように、情報処理装置１００と、外部記憶装置２００とから構成されている。
【００１８】
情報処理装置１００は、所望のデータを処理する。また、保持すべきデータを外部記憶装置２００へ書き込む。また、外部記憶装置２００に格納されているデータを読み出す。
【００１９】
外部記憶装置２００は、情報処理装置１００から書き込まれたデータを格納する第１の記憶部である。
【００２０】
また、情報処理装置１００には、制御部１１０と、メモリ１２０とが設けられている。
【００２１】
制御部１１０は、所望のデータを処理する。また、制御部１１０は、保持すべきデータをメモリ１２０または外部記憶装置２００へ書き込む。このとき、制御部１１０は、データを所定の単位のグループに分割して書き込む。また、制御部１１０は、メモリ１２０または外部記憶装置２００に格納されているデータを読み出す。また、制御部１１０は、メモリ１２０に格納されているデータのうち、所定の計算に基づいて決定したデータ（グループ）を外部記憶装置２００へ移動させる。
【００２２】
メモリ１２０は、制御部１１０から書き込まれたデータを格納する第２の記憶部である。また、メモリ１２０は制御部１１０が具備されている情報処理装置１００内に設けられているため、制御部１１０からメモリ１２０へのアクセス速度は制御部１１０から外部記憶装置２００へのアクセス速度よりも高速である。
【００２３】
図２は、図１に示した制御部１１０の内部構成の一例を示す図である。
【００２４】
図１に示した制御部１１０には図２に示すように、タイマ１１１と、比較部１１２，１１４と、圧縮部１１３と、移動部１１５と、カウンタ１１６と、優先順位設定部１１７とが設けられている。なお、図２には、図１に示した制御部１１０の構成要素のうち、本発明に関わる構成要素のみを示した。
【００２５】
タイマ１１１は、メモリ１２０に格納されているデータ（グループ）へのアクセスが行われない時間を計測する。
【００２６】
比較部１１２は、タイマ１１１が計測した時間とあらかじめ設定された第１の経過時間とを比較する第１の比較部である。
【００２７】
圧縮部１１３は、比較部１１２における比較の結果、タイマ１１１が計測した時間と第１の経過時間とが一致した場合、そのデータ（グループ）をメモリ１２０から読み出し、圧縮してメモリ１２０に再度格納する。
【００２８】
比較部１１４は、圧縮１１３にて圧縮されてメモリ１２０に格納されたデータ（グループう）について、タイマ１１１が計測した時間とあらかじめ設定された第２の経過時間とを比較する第２の比較部である。なお、比較部１１４の機能を比較部１１２が担うものであっても良い。
【００２９】
移動部１１５は、比較部１１４における比較の結果、タイマ１１１が計測した時間と第２の経過時間とが一致した場合、そのデータ（グループ）をメモリ１２０から読み出し、外部記憶装置２００へ書き込む。つまり、当該グループをメモリ１２０から外部記憶装置２００へ移動させる。
【００３０】
カウンタ１１６は、メモリ１２０に格納されているグループがアクセスされた回数をカウントする。
【００３１】
優先順位設定部１１７は、圧縮部１１３が圧縮するグループ、または移動部１１５が移動させるグループが複数存在する場合、カウンタ１１６がカウントした回数に基づいて、圧縮または移動の優先順位を設定する。
【００３２】
以下、上述したグループを「列」として説明する。また、列の番号とは、当該列を識別するためにあらかじめ付与したものである。
【００３３】
図３は、各列とともにメモリ１２０または外部記憶装置２００に格納されたパラメータの一例を示す図である。このパラメータは、列毎に格納されている。
【００３４】
図３に示したパラメータ１は、当該列へのアクセスの種類を示す。この種類とは、高速処理が必要な列か否かを示すものであり、外部から設定可能である。データ型から判断される既定値、もしくはユーザ指定の値をとる。例えば、パラメータ１の値が「１」である列は、高速処理が必要なデータであり、非圧縮状態でメモリ１２０に格納しておくものであることを示す。また、パラメータ１の値が「２」である列は、高速処理が不要なデータであり、非圧縮状態で外部記憶装置２００に格納しておくものであることを示す。本形態においては、パラメータ１の値によって高速処理が不要であると判断される列のデータは、常に外部記憶装置２００に格納しておく。
【００３５】
また、パラメータ２は、当該列の不使用度を示す。具体的には、後述するパラメータ７で指定された一定時間間隔で値が一定数増加する、初期状態が「０」であるパラメータである。当該列へのアクセスがある度に初期状態へ戻される。パラメータ２は、任意の設定は不可能である。
【００３６】
また、パラメータ３は、当該列へのアクセス数を示す。当該列へのアクセスがある度にカウントアップされる、初期状態が「０」のパラメータ。この値は、カウンタ１１６によってカウントされた回数が書き込まれるものである。また、ある列のパラメータ３の値が後述するパラメータ８の値に達した場合、全ての列のパラメータ３の値を後述するパラメータ９の値で指定される一定の割合でスケールダウンする。パラメータ３は、任意の設定は不可能である。
【００３７】
また、パラメータ４は、当該列の非圧縮状態のデータの容量とこれらパラメータの付加情報のデータ容量とを合計した容量を示す。パラメータ４は、任意の設定は不可能である。
【００３８】
図４は、システムとして設定されたパラメータの一例を示す図である。図４に示したパラメータは、メモリ１２０に格納されている。
【００３９】
図４に示したパラメータ５は、列のデータを圧縮するかどうかを判別するための閾値である。具体的には、パラメータ２に示した値とパラメータ５に示した値とが一致した場合、当該列のデータを圧縮部１１３が圧縮するための基準値である。パラメータ５は、外部から設定可能である。
【００４０】
また、パラメータ６は、列のデータを外部記憶装置２００へ移動させるかどうかを判別するための閾値である。具体的には、パラメータ２に示した値とパラメータ６に示した値とが一致した場合、当該列のデータを移動部１１５がメモリ１２０から外部記憶装置２００へ移動させるための基準値である。パラメータ６は、外部から設定可能である。
【００４１】
また、パラメータ７は、各列のパラメータ２の増加間隔を示す。具体的には、パラメータ２を一定数増加させる時間間隔を示すものである。例えば、図４に示すようにパラメータ７が「１５分」である場合、１５分間隔でパラメータ２を一定数増加させる。パラメータ７は、外部から設定可能である。
【００４２】
また、パラメータ８は、各列のパラメータ３の上限値を示す。パラメータ８は、外部から設定可能である。
【００４３】
また、パラメータ９は、各列のパラメータ３を減少させる割合を示す。つまり、パラメータ３の値がパラメータ８の値に到達した列のパラメータ３を減少させる（スケールダウンさせる）割合を示すものである。パラメータ９は、外部から設定可能である。
【００４４】
また、パラメータ１０は、メモリ１２０に割り当てられた物理メモリの領域を示すパラメータである。
【００４５】
図５は、列１〜５について格納されたパラメータの一例を示す図である。
【００４６】
図５に示すように、各列毎にパラメータ１〜４が格納されており、システムとしてパラメータ５〜１０が格納されている。これらのパラメータ１〜１０を用いて列のデータを圧縮するか、外部記憶装置２００へ移動させるかを判別する。
【００４７】
図６は、各パラメータが列毎にメモリ１２０と外部記憶装置２００とに格納された様子を示す図である。
【００４８】
図６に示すように、各列の上述したパラメータ１の値が「１」である列（図６に示した例では、列１〜４）は、高速処理が必要なデータであるため、当該列のパラメータ１〜４はメモリ１２０に格納されている。一方、パラメータ１の値が「２」である列（図６に示した例では、列５）は、高速処理が不要なデータであるため、当該列のパラメータ１〜４は外部記憶装置２００に格納されている。また、システムとしてのパラメータであるパラメータ５〜１０は、メモリ１２０に格納されている。
【００４９】
このように、データをメモリデータベースに追加する時点で、システムはパラメータ１の値に基づいて、当該列のデータを主記憶装置（メモリ１２０）に配置するか、外部記憶装置２００に配置するかを判断する。
【００５０】
以下に、本形態におけるデータ格納方法について説明する。
【００５１】
図７は、本形態におけるデータ格納方法を説明するためのフローチャートである。
【００５２】
まず、タイマ１１１がリセットされる（ステップＳ１）。このステップＳ１の処理は、タイマ１１１と、パラメータ２の値とがリセットされる。
【００５３】
その後、当該列にアクセスが行われたかどうかが判別される（ステップＳ２）。
【００５４】
アクセスが行われた場合、カウンタ１１６によってパラメータ３の値がカウントアップされ（ステップＳ３）、ステップＳ１の処理が行われる。
【００５５】
一方、アクセスが行われていない場合、アクセスが行われていない時間とあらかじめ設定された第１の経過時間とが比較部１１２にて比較される（ステップＳ４）。
【００５６】
ここで、アクセスが行われていない時間を計測し、当該時間と第１の経過時間との比較方法について説明する。
【００５７】
タイマ１１１によって計測されている時間が、パラメータ７に設定された時間になった場合、列のパラメータ２に示す値がカウントアップされ、タイマ１１１がリセットされる。アクセスが行われていない状態が続いた場合、この処理が繰り返される。一方、アクセスが行われた場合、パラメータ２の値がリセットされる。そして、パラメータ２の値とパラメータ５の値とが比較部１１２にて比較される。なお、この方法に限らず、上位概念的にパラメータ５の値とパラメータ７の値とを乗じた値を第１の経過時間とし、タイマ１１１によって計測されている時間と第１の経過時間とが比較できるものであれば良い。つまり、アクセスが継続して行われていない時間と、あらかじめ設定された時間（第１の経過時間）とが比較部１１２にて比較される。
【００５８】
ステップＳ４にてアクセスが行われていない時間とあらかじめ設定された第１の経過時間とが一致していない場合、ステップＳ２の処理が行われる。
【００５９】
一方、ステップＳ４にてアクセスが行われていない時間とあらかじめ設定された第１の経過時間とが一致した場合、当該列のデータが圧縮部１１３によってメモリ１２０から読み出され、圧縮処理されて、再度メモリ１２０に格納される（ステップＳ５）。なお、この圧縮処理に用いる圧縮アルゴリズムについては、特に規定しない。また、このとき、アクセスが行われていない時間とあらかじめ設定された第１の経過時間とが一致した列が複数存在する場合、カウンタ１１６によってカウントアップされているパラメータ３の値が小さな（アクセスされた回数が少ない）列から順に圧縮される。つまり、アクセスされた回数に基づいて圧縮される優先順位が優先順位設定部１１７にて設定される。さらに具体的には、アクセスされた回数が多い列ほど、圧縮される優先順位が低いものに優先順位設定部１１７にて設定される。
【００６０】
ここで、圧縮処理に必要な物理メモリがメモリ１２０上に確保できない場合、圧縮状態にある列のうち、パラメータ２の値が大きな列から順に外部記憶装置２００に移動させる。これにより、圧縮処理に必要な物理メモリをメモリ１２０上に確保する。
【００６１】
その後、引き続き当該列にアクセスが行われたかどうかが判別される（ステップＳ６）。
【００６２】
アクセスが行われた場合、カウンタ１１６によってパラメータ３の値がカウントアップされる（ステップＳ７）。また、メモリ１２０から圧縮されて格納されている列が読み出され、解凍（非圧縮）され、当該列に対して処理が行われる。そして、当該列のデータは、非圧縮状態でメモリ１２０に格納される（ステップＳ８）。このとき、当該列のパラメータ２の値がクリアされる。そして、ステップＳ１の処理が行われる。
【００６３】
一方、アクセスが行われていない場合、アクセスが行われていない時間とあらかじめ設定された第２の経過時間とが比較部１１４にて比較される（ステップＳ９）。
【００６４】
ここで、アクセスが行われていない時間を計測し、当該時間と第２の経過時間との比較方法について説明する。
【００６５】
タイマ１１１によって計測されている時間が、パラメータ７に設定された時間になった場合、列のパラメータ２に示す値がカウントアップされ、タイマ１１１がリセットされる。アクセスが行われていない状態が続いた場合、この処理が繰り返される。一方、アクセスが行われた場合、パラメータ２の値がリセットされる。そして、パラメータ２の値とパラメータ６の値とが比較部１１４にて比較される。なお、この方法に限らず、上位概念的にパラメータ６の値とパラメータ７の値とを乗じた値を第２の経過時間とし、タイマ１１１によって計測されている時間と第２の経過時間とが比較できるものであれば良い。つまり、アクセスが継続して行われていない時間と、あらかじめ設定された時間（第２の経過時間）とが比較部１１４にて比較される。
【００６６】
ステップＳ９にてアクセスが行われていない時間とあらかじめ設定された第２の経過時間とが一致していない場合、ステップＳ６の処理が行われる。
【００６７】
一方、ステップＳ９にてアクセスが行われていない時間とあらかじめ設定された第２の経過時間とが一致した場合、当該列のデータが移動部１１５によってメモリ１２０から読み出され、外部記憶装置２００に格納される（ステップＳ１０）。このとき、当該列のデータは、メモリ１２０から消去（削除）される。つまり、当該列のデータがメモリ１２０から外部記憶装置２００へ移動部１１５によって移動させられる。また、このとき、アクセスが行われていない時間とあらかじめ設定された第２の経過時間とが一致した列が複数存在する場合、カウンタ１１６によってカウントアップされているパラメータ３の値が小さな（アクセスされた回数が少ない）列から順に移動させられる。つまり、アクセスされた回数に基づいて移動させる優先順位が優先順位設定部１１７にて設定される。さらに具体的には、アクセスされた回数が多い列ほど、移動させる優先順位が低いものに優先順位設定部１１７にて設定される。
【００６８】
図８は、列１についてのパラメータ、状態および格納場所の遷移の様子を示す図である。ここでは、システムとしてのパラメータとして、パラメータ５は「３回」、パラメータ６は「６回」、パラメータ７は「１５分」と設定されている場合を例に挙げて説明する。
【００６９】
図８に示すように、まず、初期状態（０分後）では、列１のデータは非圧縮の状態で物理メモリ（メモリ１２０）に格納されており、パラメータ２およびパラメータ３の値は「０回」である。
【００７０】
１５分後までにアクセスがない場合、１５分後のパラメータ２の値が「１回」となる。
【００７１】
その後、１７分後に列１にアクセスが行われた場合、パラメータ２の値がリセットされ、初期値「０回」となる。また、パラメータ３の値が「１回」となる。
【００７２】
３０分後までにアクセスがない場合、３０分後のパラメータ２の値は「１回」となる。
【００７３】
さらに、４５分後までにアクセスがない場合、４５分後のパラメータ２の値は「２回」となる。
【００７４】
また、６０分後までにアクセスがない場合、６０分後のパラメータ２の値は「３回」となる。ここでパラメータ２の値とパラメータ５の値とが一致するため、列１のデータが圧縮部１１３にて圧縮され、メモリ１２０に格納される。
【００７５】
その後、７５分後までにアクセスがない場合、７５分後のパラメータ２の値は「４回」となる。
【００７６】
また、９０分後までにアクセスがない場合、９０分後のパラメータ２の値は「５回」となる。
【００７７】
さらに、１０５分後までにアクセスがない場合、１０５分後のパラメータ２の値は「６回」となる。ここでパラメータ２の値とパラメータ６の値とが一致するため、列１のデータが移動部１１５によってメモリ１２０から外部記憶装置２００へ移動させられる。
【００７８】
その後、１２０分後までにアクセスがない場合、１２０分後のパラメータ２の値は「７回」となる。
【００７９】
以下に、各状態にある列に対するアクセスについて説明する。
【００８０】
まずは、非圧縮状態でメモリ１２０上にある列へアクセスする場合について説明する。
【００８１】
非圧縮状態で物理メモリ上にある列へアクセスする場合、通常のデータ処理を実行する。
【００８２】
次に、圧縮状態でメモリ１２０上にある列へアクセスする場合について説明する。
【００８３】
圧縮状態にある列へアクセスする場合、圧縮部１１３によって非圧縮状態への変換処理を行った後にアクセス処理を行う。このとき、非圧縮状態への変換処理に際して必要な物理メモリ量がメモリ１２０上に確保できない場合、圧縮状態にある列のうち、パラメータ２の大きな列から順に外部記憶装置２００へ移動させることで圧縮処理に必要な物理メモリを確保する。
【００８４】
次に、圧縮状態で外部記憶装置２００にある列へアクセスする場合について説明する。
【００８５】
圧縮状態で外部記憶装置２００上にある列へアクセスする場合、以下の（１）〜（３）の手順をとる。
【００８６】
（１）圧縮状態のままメモリ１２０上に移す。外部記憶装置２００からは削除する。
【００８７】
該当列をメモリ１２０に移すことで、メモリ１２０上のデータ量がメモリＤＢに割り当てられたメモリ量のパラメータ１０を超過する場合は、メモリ１２０上の列の中で、パラメータ２の値が最も大きな列を外部記憶装置２００へ移し、メモリ１２０から削除することでメモリ１２０を確保する。
【００８８】
（２）メモリ１２０上で圧縮状態から非圧縮状態へ変換処理を行う。
【００８９】
非圧縮状態への変換処理に際して必要な物理メモリ量がメモリ１２０上で確保できない場合、圧縮状態にある列のうち、パラメータ２の大きな列から順に外部記憶装置２００へ移すことで圧縮処理に必要な容量をメモリ１２０上で確保する。
【００９０】
（３）データ処理を行う。
【００９１】
次に、高速アクセスが不要であるとパラメータ１を設定され、非圧縮状態で外部記憶装置２００にある列へアクセスする場合について説明する。
【００９２】
高速アクセスが不要な列の場合は、外部記憶装置２００上のままデータ処理を実行する。このパラメータ１で高速アクセスが不要であると設定された列のパラメータ２およびパラメータ３は、本発明の管理対象外とし、初期値のまま固定するか、高速アクセスが必要と設定された列と同様にパラメータ２およびパラメータ３を変化するかは規定しない。
【００９３】
次に、パラメータ３がパラメータ８に到達した場合のパラメータ３のスケールダウンの処理について説明する。
【００９４】
図９は、パラメータ３がパラメータ８に到達した場合のパラメータ３のスケールダウンの様子を示す図である。ここでは、パラメータ８に「１０００回」、パラメータ９に「１００分の１」が設定されている場合を例に挙げて説明する。
【００９５】
図９に示すように、パラメータ３が「１０００回」未満である場合、各列のパラメータ３は各列にアクセスが行われる度にカウンタ１１６によってカウントアップされる。その後、列のうちパラメータ３の値がパラメータ８に設定されている上限値になった際、各列のパラメータ３の値がパラメータ９に設定されている割合でスケールダウンされる。
【００９６】
次に、列に対する検索処理が要求された際の処理について説明する。
【００９７】
図１０は、列に対する検索処理が要求された際の処理を説明するためのフローチャートである。
【００９８】
まず、検索処理が要求された検索対象列がメモリ１２０上にあるかどうかが判別される（ステップＳ１１）。
【００９９】
検索対象列がメモリ１２０上にあると判別された場合、当該検索対象列が非圧縮状態であるかどうかが判別される（ステップＳ１２）。
【０１００】
当該検索対象列が非圧縮状態であると判別された場合、当該列全体を解凍する（非圧縮状態に変換する）方が実データの範囲のみを解凍するよりも短時間で済むかどうかが判別される（ステップＳ１３）。
【０１０１】
当該列全体を解凍する（非圧縮状態に変換する）方が実データの範囲のみを解凍するよりも短時間で済まないと判別された場合、実データの範囲が特定され（ステップＳ１４）、特定された実データの範囲が解凍される（ステップＳ１５）。
【０１０２】
そして、解凍されたデータに検索処理が行われる（ステップＳ１６）。
【０１０３】
また、ステップＳ１３にて、当該列全体を解凍する（非圧縮状態に変換する）方が実データの範囲のみを解凍するよりも短時間で済むと判別された場合、当該列全体が解凍され（ステップＳ１７）、ステップＳ１６にて検索処理が行われる。
【０１０４】
一方、ステップＳ１１にて、検索対象列がメモリ１２０上にないと判別された場合、検索対象列が圧縮状態であるかどうかが判別される（ステップＳ１８）。
【０１０５】
ステップＳ１８にて、検索対象列が圧縮状態であると判別された場合、当該列のデータが外部記憶装置２００からメモリ１２０へ移動させられ（ステップＳ１９）、ステップＳ１３の処理が行われる。
【０１０６】
また、ステップＳ１８にて、検索対象列が圧縮状態ではないと判別された場合は、そのまま外部記憶装置２００上でステップＳ１６にて検索処理が行われる。
【０１０７】
ステップＳ１４の処理において、解凍（非圧縮状態に）する実データの範囲を特定する処理について説明する。
【０１０８】
図１１は、昇順で格納された列データの一例を示す図である。また、図１２は、解凍（非圧縮状態に）する実データの範囲を特定する処理を説明するためのフローチャートである。
【０１０９】
図１１に示すように、列のデータを昇順で格納する内部構造を取り、非圧縮化状態にする範囲を特定するためのパラメータを付与する。これを用いて、解凍（非圧縮状態に）する実データの範囲を特定する。
【０１１０】
まず、非圧縮化開始位置が特定される（ステップＳ２１）。ここでは、開始位置が検索値以下の最も大きな検索キーとなる。
【０１１１】
そして、非圧縮化終了位置が特定される（ステップＳ２２）。ここでは、開始位置が検索値以上の最も小さな検索キーとなる。
【０１１２】
このように本発明においては、以下の効果を奏する。
【０１１３】
第１の効果は、より多くのデータを物理メモリ上に配置することができることである。
【０１１４】
その理由は、メモリ１２０にある列で、一定期間アクセスされない列を圧縮状態に変換するためである。
【０１１５】
第２の効果は、一定期間アクセスされない列に対するアクセス時間を短縮することができることである。
【０１１６】
その理由は、本発明では、非圧縮状態のデータを外部記憶装置２００からメモリ１２０に移すディスクＩ／Ｏの時間よりも十分高速な圧縮化、非圧縮化アルゴリズムを採用するためである。
【０１１７】
第３の効果は、ディスクＩ／Ｏを減少させることができることである。
【０１１８】
その理由は、本発明では、メモリ１２０と外部記憶装置２００との間を通る列のデータを圧縮状態とするためである。
【０１１９】
第４の効果は、同じ期間アクセスされていない列に対して圧縮状態に変換、外部記憶装置２００へ移す際の優先順位付けができることである。
【０１２０】
その理由は、本発明ではアクセス数のカウンタを用いるためであり、本発明ではある列のアクセス数のカウンタが上限値に到達すると、全ての列のカウンタ値を一定の割合でスケールダウンさせる。これにより、カウンタの値が過去のアクセスの傾向を考慮しつつ、最近のアクセス傾向に重みを持つためである。
【０１２１】
第５の効果は、圧縮状態にある列に対して検索処理が要求された場合、列の全体を非圧縮状態に移すのではなく、該当情報が含まれる限定された範囲のみを非圧縮状態に移すことにより、列全体を非圧縮状態に移す場合に比べ、検索要求に対する応答時間を短縮化できることである。
【０１２２】
その理由は、列のデータを図１２のような昇順で格納する内部構造を取り、非圧縮化状態にする範囲を特定するためのパラメータを付与したためである。
【０１２３】
なお、上述した情報処理装置１００の処理は、目的に応じて作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したプログラムを情報処理装置１００にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを情報処理装置１００に読み込ませ、実行するものであっても良い。情報処理装置１００にて読取可能な記録媒体とは、フロッピーディスク（登録商標）、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、情報処理装置１００に内蔵されたＲＯＭ、ＲＡＭ等のメモリやＨＤＤ等を指す。この記録媒体に記録されたプログラムは情報処理装置１００内の制御部１１０にて読み込まれ、制御部１１０の制御によって、上述したものと同様の処理が行われる。ここで、制御部１１０は、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【符号の説明】
【０１２４】
１００    情報処理装置
１１０    制御部
１１１    タイマ
１１２，１１４    比較部
１１３    圧縮部
１１５    移動部
１１６    カウンタ
１１７    優先順位設定部
１２０    メモリ
２００    外部記憶装置
【図１】
2010182075.tif 000003
【図２】
2010182075.tif 000004
【図３】
2010182075.tif 000005
【図４】
2010182075.tif 000006
【図５】
2010182075.tif 000007
【図６】
2010182075.tif 000008
【図７】
2010182075.tif 000009
【図８】
2010182075.tif 000010
【図９】
2010182075.tif 000011
【図１０】
2010182075.tif 000012
【図１１】
2010182075.tif 000013
【図１２】
2010182075.tif 000014