(57)【要約】【課題】データの保存先をアクセス頻度に応じて高速処理可能な記憶部とそれ以外に可変にした情報処理システムを提供する。【解決手段】複数のデータを複数のグループに分割して管理する情報処理システムであって、グループを格納するための外部記憶装置と、高速にアクセスするためのグループが格納される主記憶部、およびグループに対するアクセスの頻度を示す指標となる経過情報の閾値が予め格納され、主記憶部に格納されたグループの経過情報をグループ毎に管理し、所定の時刻から一定時間経過毎に全ての経過情報に一定数を加算し、外部からの指示に基づいて主記憶部に格納されたグループのいずれかにアクセスすると、アクセスしたグループの経過情報を初期値に戻し、経過情報が閾値に一致するグループがあると、グループを外部記憶装置に移動させる制御部を含む情報処理装置と、を有する構成である。【選択図】図１
2009217688.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを複数のグループに分割して管理する情報処理システムであって、
前記グループを格納するための外部記憶装置と、
前記外部記憶装置よりも高速にアクセスするための前記グループが格納される主記憶部、および前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値が予め格納され、前記主記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、外部からの指示に基づいて前記主記憶部に格納されたグループのいずれかにアクセスすると、アクセスしたグループの前記経過情報を初期値に戻し、前記経過情報が前記閾値に一致するグループがあると、該グループを前記外部記憶装置に移動させる制御部を含む情報処理装置と、
を有する情報処理システム。
【請求項２】
複数のデータを複数のグループに分割して管理する情報処理装置であって、
前記グループを格納するための第１の記憶部と、
前記第１の記憶部よりも高速にアクセスするための前記グループが格納される第２の記憶部と、
前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値が予め格納され、前記第２の記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、外部からの指示に基づいて前記第２の記憶部に格納されたグループのいずれかにアクセスすると、アクセスしたグループの前記経過情報を初期値に戻し、前記経過情報が前記閾値に一致するグループがあると、該グループを前記第１の記憶部に移動させる制御部と、
を有する情報処理装置。
【請求項３】
前記制御部は、
外部からの指示に基づいて前記第１の記憶部に格納された前記グループにアクセスすると、該グループを前記第２の記憶部に移動させる、請求項２記載の情報処理装置。
【請求項４】
前記第１の記憶部よりも前記第２の記憶部に優先的に格納されるか否かを示す優先度情報が前記グループ毎に予め決められ、
前記制御部は、
移動対象のグループを前記第１の記憶部から前記第２の記憶部に移動させる際に該第２の記憶部の記憶容量を超えてしまう場合、前記移動対象のグループの前記優先度情報を読み出し、該優先度情報が前記第２の記憶部に優先的に格納されることを示しているとき、前記第２の記憶部に格納されたグループの前記経過情報を比較し、該経過情報が最も大きいグループを前記第１の記憶部に移動させ、続いて、前記移動対象のグループを前記第２の記憶部に移動させ、前記優先度情報が前記第２の記憶部に優先的に格納されることを示していないとき、移動対象のグループを前記第１の記憶部から移動させない、請求項３記載の情報処理装置。
【請求項５】
複数のデータを複数のグループに分割して第１の記憶部と前記グループに前記第１の記憶部よりも高速にアクセスするための第２の記憶部とで管理するデータ管理方法であって、
前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値を予め保持し、
前記第２の記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、
外部からの指示に基づいて前記第２の記憶部に格納されたグループのいずれかにアクセスがあると、アクセスのあったグループの前記経過情報を初期値に戻し、
前記経過情報が前記閾値に一致するグループがあると、該グループを前記第１の記憶部に移動させる、データ管理方法。
【請求項６】
外部からの指示に基づいて前記第１の記憶部に格納された前記グループにアクセスがあると、該グループを前記第２の記憶部に移動させる、請求項５記載のデータ管理方法。
【請求項７】
前記第１の記憶部よりも前記第２の記憶部に優先的に格納されるか否かを示す優先度情報を前記グループ毎に予め決め、
移動対象のグループを前記第１の記憶部から前記第２の記憶部に移動させる際に該第２の記憶部の記憶容量を超えてしまう場合、前記移動対象のグループの前記優先度情報を読み出し、
前記優先度情報が前記第２の記憶部に優先的に格納されることを示しているとき、前記第２の記憶部に格納されたグループの前記経過情報を比較し、該経過情報が最も大きいグループを前記第１の記憶部に移動させ、続いて、前記移動対象のグループを前記第２の記憶部に移動させ、
前記優先度情報が前記第２の記憶部に優先的に格納されることを示していないとき、移動対象のグループを前記第１の記憶部から移動させない、請求項６記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保存するデータを管理するための情報処理システム、情報処理装置およびデータ管理方法に関する。
【背景技術】
【０００２】
データベースシステムには、膨大なデータの中から必要な情報を取り出すために、データを表にして管理するものがある。膨大なデータの中から目的の情報に早くたどり着くには、全てのデータに対して高速読み出しまたは高速書き込みの高速処理を可能にすることが望ましい。高速処理が可能な記憶装置にデータの全てを保存しようとしても、その記憶装置に保存可能なデータ量が限られている。
【０００３】
そこで、管理対象のデータには必ずしも高速処理を必要としないデータも存在することから、高速処理の必要のないデータを外部記憶装置上のファイルや関係データベースに保存するという方法が考えられる。
【０００４】
外部記憶装置上の関係データベースにおいて、使用頻度の高い列を主記憶装置上に配置し、参照処理を高速に行う方法の一例が特許文献１に開示されている。
【特許文献１】特公平７−１０４８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
高速処理の必要のないデータを外部記憶装置上のファイルや関係データベースに保存するという方法では、メモリデータベースとの管理が二重に必要となるという問題点がある。さらに、データの利用方法が変更になると、データの配置場所をユーザ自身で設定し直す必要があり、サービス性が低下する。
【０００６】
高速処理の主記憶装置の容量以上のデータを扱う方法として、低速処理の外部記憶装置を主記憶装置の一部とみなすスワップアウト機能を利用する方法がある。しかし、スワップアウトされるデータを、高速処理の必要がないデータ、使用されないデータに限定することができず、メモリデータベースの高速性が犠牲になるという問題点がある。
【０００７】
特許文献１の方法では、全データを外部記憶装置に保存することが前提となっており、主記憶装置上のデータを更新した場合、外部記憶装置のデータと同期をとる必要がある。特許文献１には開示されていないが、主記憶装置から外部記憶装置上に列を移す時点か、データベースを閉じる時点で同期を行うことが一般的であるため、同期をとる間は同じ項目で異なるデータが存在してしまうことになる。
【０００８】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、データの保存先をアクセス頻度に応じて高速処理可能な記憶部とそれ以外に可変にした情報処理システム、情報処理装置およびデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の情報処理システムは、複数のデータを複数のグループに分割して管理する情報処理システムであって、
前記グループを格納するための外部記憶装置と、
前記外部記憶装置よりも高速にアクセスするための前記グループが格納される主記憶部、および前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値が予め格納され、前記主記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、外部からの指示に基づいて前記主記憶部に格納されたグループのいずれかにアクセスすると、アクセスしたグループの前記経過情報を初期値に戻し、前記経過情報が前記閾値に一致するグループがあると、該グループを前記外部記憶装置に移動させる制御部を含む情報処理装置と、
を有する構成である。
【００１０】
また、本発明の情報処理装置は、複数のデータを複数のグループに分割して管理する情報処理装置であって、
前記グループを格納するための第１の記憶部と、
前記第１の記憶部よりも高速にアクセスするための前記グループが格納される第２の記憶部と、
前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値が予め格納され、前記第２の記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、外部からの指示に基づいて前記第２の記憶部に格納されたグループのいずれかにアクセスすると、アクセスしたグループの前記経過情報を初期値に戻し、前記経過情報が前記閾値に一致するグループがあると、該グループを前記第１の記憶部に移動させる制御部と、
を有する構成である。
【００１１】
さらに、本発明のデータ管理方法は、複数のデータを複数のグループに分割して第１の記憶部と前記グループに前記第１の記憶部よりも高速にアクセスするための第２の記憶部とで管理するデータ管理方法であって、
前記グループに対するアクセスの頻度を示す指標となる経過情報の閾値を予め保持し、
前記第２の記憶部に格納された前記グループの前記経過情報を該グループ毎に管理し、所定の時刻から一定時間経過毎に全ての前記経過情報に一定数を加算し、
外部からの指示に基づいて前記第２の記憶部に格納されたグループのいずれかにアクセスがあると、アクセスのあったグループの前記経過情報を初期値に戻し、
前記経過情報が前記閾値に一致するグループがあると、該グループを前記第１の記憶部に移動させるものである。
【発明の効果】
【００１２】
本発明によれば、アクセス頻度の高いデータを高速処理が可能な記憶装置に保存し、アクセス頻度の高くないデータをその他の記憶装置に保存することで、全てのデータを統一的に管理するとともに、アクセスの高速性を維持できる。
【発明を実施するための最良の形態】
【００１３】
本実施形態の情報処理システムについて説明する。図１は本実施形態の情報処理システムの一構成例を示すブロック図である。
【００１４】
図１に示すように、本実施形態の情報処理システムは、情報処理装置１０と、外部記憶装置２０とを有する。情報処理装置１０と外部記憶装置２０は通信可能に接続されている。情報処理装置１０は、主記憶部１４と、制御部１２とを有する。制御部１２には、プログラムにしたがって所定の処理を実行するＣＰＵ（Central Processing Unit）（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
【００１５】
主記憶部１４の一例は半導体メモリであり、外部記憶装置２０の一例は磁気ディスク装置である。本実施形態では、外部記憶装置２０を情報処理装置１０とは別に設けた構成で説明するが、外部記憶装置２０を情報処理装置１０に設けられたハードディスク装置としてもよい。
【００１６】
情報処理装置１０をサーバ装置とし、インターネットなどのネットワークを介して上記情報処理システムのデータベースに外部の情報端末からアクセスすることが可能である。そのような実施態様を一例として想定しているが、本実施形態はデータ管理方法に特徴があることから、以下では、その特徴に関連する部分を詳細に説明し、データベースへのアクセス方法についての詳細な説明を省略する。以下に、各構成について詳細に説明する。
【００１７】
主記憶部１４および外部記憶装置２０には、アクセス対象となるデータが保存されている。主記憶部１４および外部記憶装置２０を合わせたものが１つの記憶装置として管理される。本実施形態のデータベースはデータが表形式に登録されている。データベースの表は列ごとに分割されている。列を管理するための情報であるパラメータ１、２、３が列毎に添付されている。また、データベース内に保存される列の全体を管理するための情報であるパラメータ４、５、６が予め主記憶部１４に格納されている。
【００１８】
なお、以下では、パラメータ１〜３はシステムの管理に用いられる付加情報とし、パラメータ４〜６は列の管理に用いられる付加情報とする。また、列の移動の際、列の管理に用いられる付加情報も列に伴って移動するものとする。
【００１９】
パラメータ１は、対象の列を主記憶部１４と外部記憶装置２０のいずれに保存するかの情報を示す。高速処理が必要な列やアクセス頻度の高い列は主記憶部１４に保存すべきなので、このような列のパラメータ１の値を「１」とする。反対に、高速処理を必要としない列やアクセス頻度の低い列は外部記憶装置２０に保存してもよいので、このような列のパラメータ１の値を「２」とする。このパラメータ１は、対象の列が外部記憶装置２０よりも主記憶部１４に優先的に保存されるか否かを示す情報となる。この情報が本発明の優先度情報に相当する。
【００２０】
本実施形態では、操作者自身がデータを入力する際にパラメータ１を「１」とするか「２」とするかを指定するものとするが、列が入力されたとき、制御部１２が、列のデータ型を判定し、予め決められた判定基準にしたがってその列のパラメータ１を決めるようにしてもよい。追加で列が入力されるときも同様である。
【００２１】
パラメータ２は、対象の列についていのアクセス頻度を示す指標となる情報である。また、このパラメータは、対象の列が最後にアクセスされてからどのくらいアクセスされていないかを示す経過情報でもある。パラメータ２の初期値はゼロで、一定時間間隔で一定数がパラメータ２に加算される。その値が大きいほど、アクセスされていない時間が長いことを意味する。パラメータ３は、対象の列のデータ量を示す。
【００２２】
パラメータ４は、パラメータ２の値と比較し、そのパラメータ２の値が添付された列を外部記憶装置２０に移動させるか否かの判定基準となる閾値である。パラメータ５は、パラメータ４に一定数を加算する時間間隔を示す。パラメータ６は、主記憶部１４のデータ保存領域の全容量を示す。
【００２３】
図２はパラメータの一例を示す図である。
【００２４】
列の管理に用いられる付加情報は、次のとおりである。図２に示すように、列１のデータは主記憶部１４に保存する対象であるため、パラメータ１は「１」である。ここでは、アクセス可能な状態にする前の段階なので、パラメータ２は「０」である。列１のデータ量が２ＧＢであることから、パラメータ３の値は２ＧＢとなっている。システムの管理に用いられる付加情報は、判定の閾値となるパラメータ４が「４」であり、パラメータ２に一定数を加算するか否かの判定の時間間隔となるパラメータ５が「１５分」である。また、主記憶部１４のデータ保存領域の全容量が６４ＧＢであることから、パラメータ６は６４ＧＢとなっている。
【００２５】
続いて、制御部１２の動作を説明する。
【００２６】
制御部１２は、パラメータ１、２、３が添付された新たな列のデータが入力されると、パラメータ１を読み出し、パラメータ１が「１」である場合、その列のデータを主記憶部１４に保存し、パラメータ１が「２」である場合、その列のデータを外部記憶装置２０に保存する。
【００２７】
制御部１２は、外部からデータベースへのアクセス要求の受付を開始した時刻から時間を計測し、パラメータ５の時間が経過する毎に、主記憶部１４内の各列のパラメータ２の値に予め決められた一定数を加算する。また、いずれかの列のデータにアクセスすると、その列のパラメータ２の値を初期値の０に戻す。パラメータ２がパラメータ４と等しくなると、対象の列を外部記憶装置２０に移動させる。さらに、制御部１２は、外部記憶装置２０に保存した列にアクセスすると、その列のパラメータ１を読み出し、パラメータ１が「１」であると、その列のデータを主記憶部１４に移動させる。
【００２８】
なお、パラメータ１が「１」に指定された列を全て主記憶部１４に保存しても、主記憶部１４の記憶容量に余裕がある場合、パラメータ１が「２」の列を主記憶部１４に保存してもよい。反対に、主記憶装部１４に保存するデータの量がパラメータ６の値を越える場合、それ以降に入力する列のデータを無条件に外部記憶装置２０に保存する。
【００２９】
ここで、データベースで列によってアクセスの頻度が異なる場合の一例を説明する。
【００３０】
図３はデータベースの一例を示す表であり、氏名とその人の住所の情報を表にしたものである。図３に示すように、１列目には「姓」が記述され、２列目には「名」が記述され、３列目に「住所」が記述されている。１行目に示す佐藤たろうさんは東京都に住んでいることを意味する。ここでは、氏名から住所の情報を調べるものとする。
【００３１】
第１のアクセス例として、「姓」が「佐藤」である行を検索する場合、「“姓”の列が“佐藤”に等しい」という条件を制御部１２に入力して検索させる。この場合、制御部１２は、「姓」の列にアクセスする必要があるが、「名」や「住所」の列にアクセスする必要はない。
【００３２】
第２のアクセス例として、「姓」が「佐藤」の行の「名」を取得する場合、「“姓”の列が“佐藤”に等しい行の“名”を取得する」という指示を制御部１２に入力する。この場合、制御部１２は、「姓」の列と「名」の列にアクセスする必要があるが、「住所」の列にはアクセスする必要がない。
【００３３】
上記２つのアクセス例で説明したように、氏名から住所を検索するためのデータベースでは、検索の初期段階では「住所」の列はアクセスされない。このようなデータベースでは、「住所」の列のようにアクセスされる頻度の低いものがパラメータ１＝２の対象になる。
【００３４】
次に、本実施形態の情報処理システムにおける情報処理装置１０の動作を説明する。
【００３５】
図４および図５は本実施形態における情報処理装置による動作を説明するための図である。図６は本実施形態における情報処理装置の動作手順を示すフローチャートである。
【００３６】
ここでは、対象の列のパラメータ１が「１」であり、対象の列が初めに主記憶部１４に保存されたものとする。図４は、データ管理方法を説明するために、対象の列についてパラメータ２の変化を表にしたものである。パラメータ４を「４」とし、パラメータ５を１５分とし、パラメータ２に加算する一定数を「１」としている。
【００３７】
情報処理装置１０が外部からデータベースへのアクセスを可能な状態にする。その状態にした時からの経過時間が図４の表に示す時間である。図６に示すように、制御部１２は、パラメータ５の時間経過までに（ステップ１００３）、対象の列にアクセスしていれば（ステップ１００１）、パラメータ２の値をゼロにする（ステップ１００２）。アクセスしていなければ（ステップ１００１）、パラメータ２の値に１を加算する（ステップ１００４）。
【００３８】
制御部１２は、ステップ１００４の処理を行った後、ステップ１００１の動作に戻る前に、パラメータ２がパラメータ４と等しくなったか否かを判定する（ステップ１００５）。パラメータ２がパラメータ４と等しくない場合、ステップ１００１の動作に戻り、次のパラメータ５の時間の計測を開始する。一方、ステップ１００５でパラメータ２がパラメータ４と等しくなっている場合、対象の列を外部記憶装置２０に移動させる（ステップ１００６）。
【００３９】
上述の動作を図４で説明する。アクセス可能な状態の開始時刻から１回目のパラメータ５の時間が経過するまでアクセスがなかったので、ステップ１００４の処理が行われ、時間「１５分」の場合のパラメータ２は「１」になる。２回目のパラメータ５の時間が経過する前の時間「２８分」でアクセスがあったので、ステップ１００２の処理が行われ、パラメータ２は「０」になる。その後、時間２８分から３０分の間にはアクセスがなかったので、時間「３０分」ではパラメータ２が再び「１」になる。
【００４０】
その後、時間「３０分」から「９０分」まで、一度もアクセスがなかったので、パラメータ５の時間経過する度に１がパラメータ２に加算される。時間「９０分」でパラメータ２の値が４になり、パラメータ４と等しくなった。この段階で、情報処理装置１０は、対象の列を外部記憶装置２０に移動させる。
【００４１】
図６のフローチャートの処理は主記憶部１２に保存された列が対象であるが、制御部１２が外部記憶装置２０に保存された列にアクセスした場合を説明する。制御部１２は、外部記憶装置２０に保存した列にアクセスすると、その列のパラメータ１の情報を読み出す。パラメータ１が「１」である場合、その列を主記憶部１４に移動させ、その列の情報を外部記憶装置２０から削除する。
【００４２】
ここで、制御部１２が外部記憶装置２０から主記憶部１４に列を移動する際、主記憶部１４に保存するデータがパラメータ６を超過してしまう場合がある。その場合、制御部１２は、主記憶装置１４に保存した列の中でパラメータ２の値が最も大きな列を外部記憶装置２０に移動させ、その列を主記憶装置１４から削除する。このようにして、主記憶装置１４の記憶領域の範囲で、アクセス頻度のより高い列を主記憶装置１４に配置することが可能となる。
【００４３】
一方、外部記憶装置２０にアクセスのあった列のパラメータ１が「２」である場合、制御部１２は、新たに列が追加されたときと同様に、主記憶装置１４の記憶領域に余裕があれば主記憶部１４に移動させるが、余裕がなければ外部記憶装置２０にそのまま保持させる。
【００４４】
本実施形態では、各列のアクセス頻度が監視され、アクセス頻度の高い列は主記憶装置に配置され、アクセス頻度の高くない列は外部記憶装置に移動する。そのため、メモリデータベースの高速な処理が可能となる。また、長い時間アクセスされない列、高速処理の必要のない列は外部記憶装置に配置されるため、主記憶部の記憶容量以上のデータ量をメモリデータベース上で統一的に取り扱うことができる。
【００４５】
また、管理対象の列を選択的に外部記憶装置に配置することにより、全データを主記憶部に配置する方法に比べて、高速処理の必要な多くのデータを主記憶装置上に配置することが可能である。
【００４６】
本発明によれば、アクセス頻度の高いデータを高速処理が可能な記憶装置に保存し、アクセス頻度の高くないデータをその他の記憶装置に保存することで、全てのデータを統一的に管理するとともに、アクセスの高速性を維持できる。
【００４７】
なお、本実施形態では、外部記憶装置２０を情報処理装置１０とは別に設けた構成で説明したが、外部記憶装置２０を情報処理装置１０に設けられた記憶装置としてもよい。
【００４８】
また、パラメータ４〜６を主記憶部１４に保存する場合で説明したが、パラメータ４〜６は少ない記憶容量ですむため、制御部１２のメモリ（不図示）に保存するか、メモリ内のプログラムに書き込まれていてもよい。
【００４９】
また、管理対象の複数のデータを複数のグループに分割する方法として、表を列に分割したが、管理対象のデータの分割の仕方は列の場合に限らない。リレーショナル型データベースでは、グループを列にすることで、図３を用いて説明したような効果が得られる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態の情報処理システムの一構成例を示すブロック図である。
【図２】パラメータの一例を示す図である。
【図３】データベースの一例を示す表である。
【図４】本実施形態における情報処理装置の動作を説明するための図である。
【図５】本実施形態における情報処理装置の動作を説明するための図である。
【図６】本実施形態における情報処理装置の動作手順を示すフローチャートである。
【符号の説明】
【００５１】
１０    情報処理装置
１２    制御部
１４    主記憶部
２０    外部記憶装置
【図１】
2009217688.tif 000003
【図２】
2009217688.tif 000004
【図３】
2009217688.tif 000005
【図４】
2009217688.tif 000006
【図５】
2009217688.tif 000007
【図６】
2009217688.tif 000008