(57)【特許請求の範囲】
【請求項１】
複数ページから構成されるストリームを記憶するストリーム記憶部と、
ストリーム毎に、連続したページの集合であるエクステントと、当該エクステントに属するページへの書込状況と、前記ストリーム記憶部への書き込みか前記ストリーム記憶部に書き込まれるページを一時的に記憶する一時記憶部への書き込みかを示す書込ルールと、を対応付けたトレース情報を記憶するトレース情報記憶部と、
ストリームを構成するページの書込要求を受け付ける受付部と、
書込要求が受け付けられた前記ページが属するストリームの前記トレース情報を参照し、前記ページが属するエクステントと前記トレース情報のエクステントとが一致しない場合に、前記ページが属するストリームの前記書込状況に基づいて、前記ページが属するストリームの前記書込ルールを前記一時記憶部への書き込みか前記ストリーム記憶部への書き込みかに決定する決定部と、
前記ページが属するストリームの前記トレース情報の前記エクステントを書込要求が受け付けられた前記ページが属するエクステントに更新し、前記トレース情報の前記書込ルールを前記決定部に決定された書込ルールに更新し、前記トレース情報の前記書込状況を更新する更新部と、
前記ページが属するストリームの前記トレース情報を参照し、前記ページが属するストリームの前記書込ルールが前記ストリーム記憶部への書き込みを示す場合に前記ページを前記ストリーム記憶部へ書き込み、前記書込ルールが前記一時記憶部への書き込みを示す場合に前記ページを前記一時記憶部へ書き込み、所定のタイミングで前記一時記憶部へ書き込まれた前記ページをエクステント単位で前記ストリーム記憶部へ書き込む管理部と、
を備えることを特徴とする管理装置。
【請求項２】
前記管理部は、書込要求が受け付けられた前記ページが属するストリームの前記トレース情報を参照し、前記ページが属するエクステントと前記トレース情報のエクステントとが一致しない場合に、前記一時記憶部へ書き込まれている複数の前記ページをエクステント単位で前記ストリーム記憶部へ書き込むことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記書込状況は、前記エクステントに属するページのうちの書き込み済みの書込ページ数であり、
前記決定部は、前記ページが属するエクステントと前記トレース情報のエクステントとが一致しない場合に、前記書込ページ数、又は前記エクステントに属する全ページ数に対する前記書込ページ数の割合が閾値を超えているか否か判定し、前記閾値を超えている場合に前記ページが属するストリームの前記書込ルールを前記一時記憶部への書き込みに決定し、前記閾値を超えていない場合に前記ページが属するストリームの前記書込ルールを前記ストリーム記憶部への書き込みに決定し、
前記更新部は、前記ページが属するストリームの前記トレース情報の前記書込ページ数を初期化することを特徴とする請求項２に記載の管理装置。
【請求項４】
前記更新部は、前記ストリーム記憶部への前記ページの書き込み、又は前記一時記憶部への前記ページの書き込みが行われた場合に、前記ページが属するストリームの前記トレース情報の前記書込ページ数をインクリメントすることを特徴とする請求項３に記載の管理装置。
【請求項５】
前記ストリーム記憶部への前記ページの書き込み内容、及び前記一時記憶部への前記ページの書き込み内容を示すログを一時的に格納するログバッファと、
前記ストリーム記憶部への前記ページの書き込みが行われる場合に、前記ログバッファに格納されている前記ログをログ記憶部へ書きこむバッファ制御部と、
を更に備えることを特徴とする請求項１に記載の管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置に関する。
【背景技術】
【０００２】
近年、デジタル家電などの大規模ストレージを備えた組込み機器においても、データベース管理システムが利用されている。このような組込み機器では、メインメモリの容量も増加してはいるものの、その容量は数ＫＢ〜数ＭＢ程度であり、限られたリソースの範囲内で処理を行わなければならず、登録性能や更新性能はさほど高くない。【０００３】
メインメモリの容量不足に対処する技術として、例えば特許文献１には、ＤＢファイル、ページ単位の更新データを一時的に保持する一時書き込みファイル、及び一時書き込みファイル内の更新ページのリストを記録するためのマップテーブルを利用したシャドウページ方式に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４１０４５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような従来技術では、マップテーブルのサイズが大きくなってしまうため、メモリのリソースが乏しい環境には適さない。【０００６】
本発明は、上記に鑑みてなされたものであって、メモリのリソースが乏しい環境においても登録性能や更新性能を向上することができる管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の管理装置は、複数ページから構成されるストリームを記憶するストリーム記憶部と、ストリーム毎に、連続したページの集合であるエクステントと、当該エクステントに属するページへの書込状況と、前記ストリーム記憶部への書き込みか前記ストリーム記憶部に書き込まれるページを一時的に記憶する一時記憶部への書き込みかを示す書込ルールと、を対応付けたトレース情報を記憶するトレース情報記憶部と、ストリームを構成するページの書込要求を受け付ける受付部と、書込要求が受け付けられた前記ページが属するストリームの前記トレース情報を参照し、前記ページが属するエクステントと前記トレース情報のエクステントとが一致しない場合に、前記ページが属するストリームの前記書込状況に基づいて、前記ページが属するストリームの前記書込ルールを前記一時記憶部への書き込みか前記ストリーム記憶部への書き込みかに決定する決定部と、前記ページが属するストリームの前記トレース情報の前記エクステントを書込要求が受け付けられた前記ページが属するエクステントに更新し、前記トレース情報の前記書込ルールを前記決定部に決定された書込ルールに更新し、前記トレース情報の前記書込状況を更新する更新部と、前記ページが属するストリームの前記トレース情報を参照し、前記ページが属するストリームの前記書込ルールが前記ストリーム記憶部への書き込みを示す場合に前記ページを前記ストリーム記憶部へ書き込み、前記書込ルールが前記一時記憶部への書き込みを示す場合に前記ページを前記一時記憶部へ書き込み、所定のタイミングで前記一時記憶部へ書き込まれた前記ページをエクステント単位で前記ストリーム記憶部へ書き込む管理部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メモリのリソースが乏しい環境においても登録性能や更新性能を向上することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の管理装置の構成例を示す図。
【図２】主副ストリームの論理的な構成例を示す図。
【図３】主副ストリームの物理的な構成例を示す図。
【図４】ページの一例を示す図。
【図５】エクステントでページを配置しない場合のページ読み出し例を示す図。
【図６】エクステントでページを配置した場合のページ読み出し例を示す図。
【図７】エクステントでページを配置した場合のページ書き込み例を示す図。
【図８】トレース情報の一例を示す図。
【図９】本実施形態の書込処理例を示すフローチャート。
【図１０】本実施形態の読出処理例を示すフローチャート。
【図１１】本実施形態の書込処理の具体例の説明図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら、本発明の管理装置の実施形態を詳細に説明する。なお、本実施形態では、管理装置がデジタル家電などの組込み機器に組み込まれた例について説明する。
【００１１】
図１は、本実施形態の管理装置１の構成の一例を示すブロック図である。図１に示すように、管理装置１は、指示部１０と、トランザクション部２０と、ストリーム生成部３０と、バッファ制御部４０と、エクステント処理部５０と、ストリーム記憶部６０と、一時記憶部７０と、ログ記憶部８０とを備える。
【００１２】
指示部１０は、図示せぬ上位層から、ストリームデータの登録要求を受け付け、トランザクション部２０にトランザクションの開始を指示したり、ストリーム生成部３０にストリームデータの登録を指示したりする。また、指示部１０は、ストリームデータの登録が正常に終了したことを確認すると、トランザクション部２０にトランザクションの終了を指示する。
【００１３】
なお、トランザクションとは、データベース（本実施形態では、ストリーム記憶部６０、一時記憶部７０、及びログ記憶部８０等）に対する一つの原子的な操作を意味する。ここで、原子的とは、これ以上分解できないという意味であり、操作とはデータベースに対する書き込みや読み込みを意味する。また本実施形態の管理装置１のようなデータベース管理システムでは、通常、ＡＣＩＤ（Ａｔｏｍｉｃｉｔｙ：原子性、Ｃｏｎｓｉｓｔｅｎｃｙ：一貫性、Ｉｓｏｌａｔｉｏｎ：隔離性、及びＤｕｒａｂｉｌｉｔｙ：耐久性）と呼ばれる特性を保っている。
【００１４】
また、ストリームデータとは、データ間の時系列を維持したデータ列であり、データが発生した直線的な流れを例えてストリームと呼ばれている。このようなストリーム指向のデータベースは、例えば、特開２００７−２２６４５２号公報に開示されている。
【００１５】
トランザクション部２０は、指示部１０によりトランザクションの開始が指示されると、トランザクションの開始を示す開始ログの書き込みをバッファ制御部４０に依頼する。また、トランザクション部２０は、指示部１０によりトランザクションの終了を指示されると、トランザクションの終了を示す終了ログの書き込みをバッファ制御部４０に依頼する。
【００１６】
ストリーム生成部３０は、指示部１０によりストリームデータの登録を指示されると、ストリームデータを解析して、データストリームや索引ストリームなど複数の主副ストリームを生成する。
【００１７】
図２は、ストリーム生成部３０により生成される主副ストリームの論理的な構成例を示す図である。図２に示す例では、主ストリームＡはデータストリームであり、実データであるレコードを含んでいる。ここで、レコードとは、あるまとまりを持ったデータの列であり、基本データであるカラムデータにより構成されている。例えば、管理装置１がデジタルテレビなどに適用されている場合には、レコードは番組情報に該当し、カラムデータは、番組情報の構成要素である放送日や放送局などが該当する。
【００１８】
また、副ストリームＢ、Ｃは、索引ストリームであり、カラムデータから生成された語彙索引や数値索引などの索引を含む。また、副ストリームＢ、Ｃに含まれる索引には、主ストリームＡに含まれるいずれかのレコードのＩＤが含まれている。これにより、レコードと索引とがリンクされている。なお、副ストリームＢ、Ｃに含まれる索引の前後関係と、これらの索引がリンクされたレコードの前後関係は、同じ関係となる。つまり、図２に示すように、レコードと索引とのリンクを示す矢印は交差しない。
【００１９】
図３は、ストリーム生成部３０により生成される主副ストリームの物理的な構成例を示す図である。図３に示すように、本実施形態では、ストリームは、ストリームメタ情報をルートとして、そこから複数のエクステントにリンクが張られている。エクステントとは、物理的に連続したページの列であり、本実施形態では、エクステントの連続ページ数は８ページであり、各ページのサイズは４ＫＢとなっている。
【００２０】
図４は、エクステント内のページの一例を示す図である。図４に示すように、ページにはレコードなどのデータが格納される。なお、データが可変長の場合に備えて、ページはスロット付きのデータ構造となっている。
【００２１】
図３に戻り、ストリーム生成部３０は、データベースを作成する際に、全ストリームそれぞれに対して、まずエクステントを１つ用意する。そして、ストリーム生成部３０は、エクステントの先頭ページから順次データを格納する。なお、ストリーム生成部３０は、ページサイズを越える長大なデータについては、連続した複数ページにまたがって格納する。そして、ストリーム生成部３０は、エクステントの全てのページにデータを格納すると、新たなエクステントを用意し、ページへのデータの格納を繰り返す。
【００２２】
このように本実施形態では、エクステントでページを配置するため、連続ページをひとまとまりにすることができ、個別のページを記憶するためのメタデータのサイズを削減できる。また、ページをグループ化することで、ハードディスクなどへの複数にわたるＩ／Ｏ処理を１つにまとめて効率化することができる。
【００２３】
例えば、図５に示すように、エクステントでページを配置しないケースでは、ストリームＡのページを読み取るためのハードディスクのディスクヘッドの移動量が大きく、ページの読み出しに時間がかかっている。これに対し、図６に示すように、エクステントでページを配置したケースでは、ストリームＡのページを読み取るためのディスクヘッドの移動量が小さく、ページの読み出し時間を短縮できている。
【００２４】
但し、データ登録時には、ストリーム毎にデータを登録しなければならないため、図７に示すように、エクステントでページを配置したケースでは、ディスクヘッドの移動量が大きく、ページの書き込みに時間がかかってしまう。
【００２５】
このようにエクステントでページを配置すると、ページは物理的に連続するため、検索（読み出し）は高速化されるが、登録（書き込み）はランダムにページを書き込む必要があるため、低速化される。なお、後述のバッファ制御部４０でストリーム数分のエクステントを格納できるサイズのバッファを用意できれば、エクステント単位で書き込めるため、登録速度の改善は可能であるが、本実施形態の管理装置１のようなメモリのリソースが乏しい環境では、この手法は採用できない。
【００２６】
そこで本実施形態では、後述するように一時記憶部７０に追記でページを書き込み、所定のタイミングにエクステント単位でストリーム記憶部６０に移動する。これにより、少メモリ環境下でも、エクステント内ブロックの連続化を維持して検索速度を維持しつつ、登録速度や一括更新速度を高速化することができる。
【００２７】
図１に戻り、ストリーム生成部３０は、生成した主副ストリームのページ単位での書き込みをバッファ制御部４０に依頼する。
【００２８】
また、ストリーム生成部３０は、ストリームデータの登録に関する一連の操作内容であるログの書き込みをバッファ制御部４０に依頼する。また、ストリーム生成部３０は、同時実行制御のため、図示せぬロック管理部にロック確保やロック解放を依頼する。
【００２９】
バッファ制御部４０は、ストリーム生成部３０により生成された主副ストリームのページを一時的に記憶するストリームバッファ４２と、ストリーム生成部３０により作成されたログを一時的に記憶するログバッファ４４とを備え、各バッファを制御する。例えば、バッファ制御部４０は、ＷＡＬプロトコルに従って、ストリームバッファ４２とログバッファ４４とを協調させながら、エクステント処理部５０にストリーム記憶部６０への主副ストリームの書き込みを依頼したり、ログ記憶部８０にログを書き込んだりする。なお、ストリームバッファ４２やログバッファ４４はＤＲＡＭ（Dynamic  Random  Access  Memory）などの揮発性メモリにより実現できる。
【００３０】
ログはトランザクションの実行中にストリーム生成部３０により次々と作成されるため、バッファ制御部４０は、これらのログを順次ログバッファ４４に追記する。そして、ログバッファ４４のサイズ近くのログがログバッファ４４に溜まると、ログ記憶部８０に強制的に書き込む。
【００３１】
また、バッファ制御部４０は、ストリームバッファ４２のサイズ近くのページがストリームバッファ４２に溜まっている場合、ストリームバッファ４２に新たなページを読み出す際に、ストリームバッファ４２からページの追い出しを行い、後述のエクステント処理部５０に追い出したページの書き込みを要求する。ページの追い出しには、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ)やＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）などの手法を用いることができる。
【００３２】
また、バッファ制御部４０は、ＷＡＬ（Write  Ahead  Logging：ログ先行書込み）を行う。ＷＡＬとは、ストリームバッファ４２とログバッファ４４との同期を行うためのプロトコルであり、本実施形態では、ストリーム記憶部６０に更新内容を書き込む前にログ記憶部８０に更新内容を書き込むというものである。このように、ＷＡＬを保証すれば、チェックポイント処理（ストリーム記憶部６０へのフラッシュ処理）と組み合わせることで、障害回復が可能となる。
【００３３】
また、バッファ制御部４０は、ログバッファ４４にログを書き込んでから、ストリームバッファ４２にページを書き込むことで協調的に動作させる。ストリームバッファ４２に書き込まれたページはストリーム記憶部６０にランダムに書き込まれるが、ログバッファ４４に書き込まれたログは、ログ記憶部８０に追記で書き込まれる。通常、登録、更新には局所性があるので、ページはストリームバッファ４２に格納したまま、ログだけログ記憶部８０への追記書き込みが可能となり、追記書き込みは高速なので登録・更新性能が向上する。
【００３４】
バッファ制御部４０は、同時実行制御のため、２ＰＬ（Ｔｗｏ−Ｐｈａｓｅ  Ｌｏｃｋｉｎｇ：２相ロック）プロトコルを用いるが、トランザクションでデータを参照、更新時にはロックを確保し、トランザクションのコミットかロールバックでの終了時にトランザクションが保持しているロックを全解放する。
【００３５】
エクステント処理部５０は、受付部５１と、トレース情報記憶部５２と、決定部５３と、管理部５４と、更新部５５とを備える。
【００３６】
受付部５１は、バッファ制御部４０からストリームを構成するページの書込要求を受け付ける。
【００３７】
トレース情報記憶部５２は、ストリーム毎に、連続したページの集合であるエクステントと、エクステントに属するページのうちの書き込み済みの書込ページ数と、書込ルールと、ページ位置情報とを対応付けたトレース情報を記憶する。図８は、トレース情報記憶部５２に記憶されているトレース情報の一例を示す図である。図８に示す例では、ストリームＡ〜Ｃ毎に、エクステントを示すエクステントＮＯと、書込ページ数と、書込ルールと、そしてエクステントに属する８ページ分のページ位置情報とを対応付けたトレース情報を記憶する。なお、ページ位置情報は、エクステントに属するどのページが更新されたかを記憶しており、一時記憶部７０及びストリーム記憶部６０のどちらに該当ページが書き込まれているかが示されている。
【００３８】
決定部５３は、書込要求が受け付けられたページが属するエクステントとトレース情報のエクステントとが一致しない場合に、書込ページ数、又はエクステントに属する全ページ数に対する書込ページ数の割合が閾値を超えているか否か判定する。そして、決定部５３は、閾値を超えている場合に書込要求が受け付けられたページが属するエクステントの書込ルールを一時記憶部７０への書き込みに決定し、閾値を超えていない場合に書込要求が受け付けられたページが属するエクステントの書込ルールをストリーム記憶部６０への書き込みに決定する。
【００３９】
管理部５４は、書込要求が受け付けられたページが属するストリームのトレース情報を参照し、ページが属するエクステントに対応付けられた書込ルールがストリーム記憶部６０への書き込みを示す場合にページをストリーム記憶部６０へ書き込み、書込ルールが一時記憶部７０への書き込みを示す場合にページを一時記憶部７０へ書き込み、所定のタイミングで一時記憶部７０へ書き込まれたページをエクステント単位でストリーム記憶部６０へ書き込む。
【００４０】
具体的には、管理部５４は、書込要求が受け付けられたページが属するストリームのトレース情報を参照し、ページが属するエクステントとトレース情報のエクステントとが一致しない場合に、一時記憶部７０へ書き込まれている複数のページをエクステント単位でストリーム記憶部６０へ書き込む。
【００４１】
なお、管理部５４は、一時記憶部７０へ書き込む場合には最後尾にページを追記し、ストリーム記憶部６０へ書き込む場合にはエクステントの番号とページの番号からストリーム記憶部６０上のオフセットを計算し、計算した位置にページを書き込む。
【００４２】
更新部５５は、書込要求が受け付けられたページが属するストリームのトレース情報のエクステントを書込要求が受け付けられたページが属するエクステントに更新し、トレース情報の書込ルールを決定部５３に決定された書込ルールに更新し、書込ページ数を初期化する。
【００４３】
また、更新部５５は、ストリーム記憶部６０へのページの書き込み、又は一時記憶部７０へのページの書き込みが行われた場合に、書込要求が受け付けられたページが属するストリームのトレース情報の書込ページ数をインクリメントする。
【００４４】
ストリーム記憶部６０は、複数ページから構成されるストリームを記憶するものであり、本実施形態ではデータベースとして機能する。なお、ストリーム記憶部６０は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）などにより実現できる。
【００４５】
一時記憶部７０は、ストリーム記憶部６０に書き込まれるページを一時的に記憶するものであり、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、メモリカード、光ディスクなどにより実現できる。なお、ストリーム記憶部６０やログ記憶部８０の一部を用いてもよい。
【００４６】
ログ記憶部８０は、ログを記憶するものであり、本実施形態ではデータベースとして機能する。なお、ログ記憶部８０は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）などにより実現できる。
【００４７】
図９は、本実施形態のエクステント処理部５０で行われる書込処理の手順の流れの一例を示すフローチャートである。
【００４８】
ステップＳ１００では、受付部５１は、バッファ制御部４０からページ書込要求を受け付ける。
【００４９】
ステップＳ１０２では、管理部５４は、トレース情報記憶部５２から書込要求されたページが属するストリームのトレース情報を参照し、書込要求されたページが属するエクステントが登録されているか否かを確認する。そして、エクステントが登録されていない場合には（ステップＳ１０２でＮｏ）、ステップＳ１０４へ進み、エクステントが登録されている場合には（ステップＳ１０２でＹｅｓ）、ステップＳ１１２へ進む。
【００５０】
ステップＳ１０４では、決定部５３は、書込要求されたページが属するエクステントの書込ルールを決定する。例えば、決定部５３は、書込要求されたページが属するストリームのトレース情報に登録されているページ数をエクステント内のページ数で除した値が閾値より大きいか否かで書込ルールを決定する。これはエクステント内のページほとんどが一時記憶部７０に書き出されていれば、そのまま一時記憶部７０に追記する方が有利という理由に基づく。なお本実施形態では、決定部５３は、閾値より大きい場合には、書込ルールを一時記憶部７０への書き込みに決定し、閾値以下である場合には、書込ルールをストリーム記憶部６０への書き込みに決定する。
【００５１】
ステップＳ１０６では、バッファ制御部４０は、管理部５４からの依頼を受け、ログ記憶部８０にログを書き込む（ＷＡＬフラッシュ）。
【００５２】
ステップＳ１０８では、管理部５４は、書込要求されたページが属するストリームのトレース情報に登録されているエクステントに属するページを一時記憶部７０から読み出し、ストリーム記憶部６０にエクステント単位で書き込み、エクステントを移動する。
【００５３】
ステップＳ１１０では、更新部５５は、書込要求されたページが属するストリームのトレース情報を更新する。具体的には、更新部５５は、トレース情報のエクステントＮＯを書込要求されたページが属するエクステントのエクステントＮＯに更新し、ページ数を０に更新し、書込ルールをステップＳ１０４で決定された書込ルールに更新し、ページ位置情報を初期値（ＵＮＤＥＦ）に更新する。
【００５４】
ステップＳ１１２では、管理部５４は、書込要求されたページが属するストリームのトレース情報を参照し、書込ルールが一時記憶部７０への書き込みを示しているか否かを確認する。そして、一時記憶部７０への書き込みを示していない場合には（ステップＳ１１２でＮｏ）、ステップＳ１１４へ進み、一時記憶部７０への書き込みを示している場合には（ステップＳ１１２でＹｅｓ）、ステップＳ１２０へ進む。
【００５５】
ステップＳ１１４では、バッファ制御部４０は、管理部５４からの依頼を受け、ログ記憶部８０にログを書き込む（ＷＡＬフラッシュ）。
【００５６】
ステップＳ１１６では、管理部５４は、書込要求されたページをストリーム記憶部６０に書き込む。具体的には、管理部５４は、ストリーム記憶部６０内の書込要求されたページが属するエクステントのオフセットに書込要求されたページを書き込む。
【００５７】
ステップＳ１１８では、更新部５５は、書込要求されたページが属するストリームのトレース情報を更新する。具体的には、更新部５５は、ページ数をインクリメントし、ストリーム記憶部６０に書き込まれたページのページ位置情報にオフセットを設定する。
【００５８】
ステップＳ１２０では、管理部５４は、書込要求されたページを一時記憶部７０へ書き込む。
【００５９】
ステップＳ１２２では、更新部５５は、書込要求されたページが属するストリームのトレース情報を更新する。具体的には、更新部５５は、ページ数をインクリメントし、ストリーム記憶部６０に書き込まれたページのページ位置情報にオフセットを設定する。
【００６０】
図１０は、本実施形態のエクステント処理部５０で行われる読出処理の手順の流れの一例を示すフローチャートである。
【００６１】
ステップＳ２００では、受付部５１は、バッファ制御部４０からページ読出要求を受け付ける。
【００６２】
ステップＳ２０２では、管理部５４は、トレース情報記憶部５２から読出要求されたページが属するストリームのトレース情報を参照し、読出要求されたページが属するエクステントが登録されているか否かを確認する。そして、エクステントが登録されている場合には（ステップＳ２０２でＹｅｓ）、ステップＳ２０４へ進み、エクステントが登録されていない場合には（ステップＳ２０２でＮｏ）、ステップＳ２０８へ進む。
【００６３】
ステップＳ２０４では、管理部５４は、読出要求されたページが属するストリームのトレース情報を参照し、書込ルールが一時記憶部７０への書き込みを示しているか否かを確認する。そして、一時記憶部７０への書き込みを示している場合には（ステップＳ２０４でＹｅｓ）、ステップＳ２０６へ進み、一時記憶部７０への書き込みを示していない場合には（ステップＳ２０４でＮｏ）、ステップＳ２０８へ進む。
【００６４】
ステップＳ２０６では、管理部５４は、一時記憶部７０から読出要求されたページを読み出す。
【００６５】
ステップＳ２０８では、管理部５４は、ストリーム記憶部６０から読出要求されたページを読み出す。
【００６６】
図１１は、本実施形態のエクステント処理部５０で行われる書込処理の具体例を説明するための図である。図１１に示す例では、ストリームの一括登録が続いた後にランダム更新が発生するというトランザクションパターンを示している。なお、説明を簡略化するため、ここでは、ストリームＡのみの書込処理について説明する。また、ｔ１０の時点における書込ルールは、ストリーム記憶部６０への書き込みを示しているものとする。
【００６７】
まず、ｔ１０の時点において、受付部５１は、エクステント１０に属するページ０のページ書込要求をバッファ制御部４０から受け付ける。ｔ１０の時点では、書込ルールはストリーム記憶部６０への書き込みを示しているため、管理部５４は、ストリーム記憶部６０内のエクステント１０に属するページ０のオフセットに書込要求されたページを書き込む。そして、更新部５５は、エクステント１０の書込ページ数をインクリメントする。
【００６８】
続いて、エクステント処理部５０は、ｔ２０の時点において、エクステント１０に属するページ１に対して、ｔ１０の時点に行った処理と同様の処理を行い、ｔ３０の時点において、エクステント１０に属するページ２に対して、ｔ１０の時点に行った処理と同様の処理を行う。
【００６９】
続いて、ｔ４０の時点において、受付部５１は、エクステント１２に属するページ０のページ書込要求をバッファ制御部４０から受け付ける。ｔ４０の時点では、ストリームＡのトレース情報にはエクステント１０が登録されており、エクステント１２は登録されていないため、決定部５３は、エクステント１２の書込ルールを決定する。ここで、エクステント１０の８ページのうちページ０、１、２がストリーム記憶部６０へ書き込まれているため、エクステントの全ページに対する書込ページ数は３／８となる。ここで、閾値の値を０．３とすると、３／８＞０．３となるため、決定部５３は、エクステント１２の書込ルールを一時記憶部７０への書き込みに決定し、更新部５５は、エクステント１２の書込ルールを一時記憶部７０に更新する。そして、管理部５４は、一時記憶部７０に書込要求されたページを書き込み、更新部５５は、エクステント１２の書込ページ数をインクリメントする。
【００７０】
続いて、ｔ５０の時点において、受付部５１は、エクステント１２に属するページ１のページ書込要求をバッファ制御部４０から受け付ける。ｔ５０の時点では、書込ルールは一時記憶部７０への書き込みを示しているため、管理部５４は、一時記憶部７０に書込要求されたページを追記する。そして、更新部５５は、エクステント１２の書込ページ数をインクリメントする。
【００７１】
続いて、エクステント処理部５０は、ｔ６０の時点において、エクステント１２に属するページ２に対して、ｔ５０の時点に行った処理と同様の処理を行い、ｔ７０の時点において、エクステント１２に属するページ７に対して、ｔ５０の時点に行った処理と同様の処理を行う。
【００７２】
続いて、ｔ８０の時点において、受付部５１は、エクステント５に属するページ５のページ書込要求をバッファ制御部４０から受け付ける。ｔ８０の時点では、ストリームＡのトレース情報にはエクステント１２が登録されており、エクステント５は登録されていないため、決定部５３は、エクステント５の書込ルールを決定する。ここで、エクステント１２の８ページのうちページ０、１、２、７が一時記憶部７０へ書き込まれているため、４／８＞０．３となり、決定部５３は、エクステント５の書込ルールを一時記憶部７０への書き込みに決定する。そして、管理部５４は、一時記憶部７０に書き込まれているエクステント１２のページ０、１、２、７をエクステント単位でストリーム記憶部６０へ書きこみ、更新部５５は、エクステント５の書込ルールを一時記憶部７０に更新する。そして、管理部５４は、一時記憶部７０に書込要求されたページを書き込み、更新部５５は、エクステント５の書込ページ数をインクリメントする。
【００７３】
続いて、ｔ９０の時点において、受付部５１は、エクステント８に属するページ３のページ書込要求をバッファ制御部４０から受け付ける。ｔ９０の時点では、ストリームＡのトレース情報にはエクステント５が登録されており、エクステント８は登録されていないため、決定部５３は、エクステント８の書込ルールを決定する。ここで、エクステント５の８ページのうちページ５が一時記憶部７０へ書き込まれているため、１／８＞０．３となり、決定部５３は、エクステント５の書込ルールをストリーム記憶部６０への書き込みに決定する。そして、管理部５４は、一時記憶部７０に書き込まれているエクステント５のページ５をエクステント単位でストリーム記憶部６０へ書きこみ、更新部５５は、エクステント８の書込ルールをストリーム記憶部６０に更新する。そして、管理部５４は、ストリーム記憶部６０に書込要求されたページを書き込み、更新部５５は、エクステント８の書込ページ数をインクリメントする。
【００７４】
続いて、ｔ１００の時点において、受付部５１は、エクステント９に属するページ５のページ書込要求をバッファ制御部４０から受け付ける。ｔ１００の時点では、ストリームＡのトレース情報にはエクステント８が登録されており、エクステント９は登録されていないため、決定部５３は、エクステント９の書込ルールを決定する。ここで、エクステント８の８ページのうちページ３がストリーム記憶部６０へ書き込まれているため、１／８＞０．３となり、決定部５３は、エクステント９の書込ルールをストリーム記憶部６０への書き込みに決定し、更新部５５は、エクステント９の書込ルールをストリーム記憶部６０に更新する。そして、管理部５４は、ストリーム記憶部６０に書込要求されたページを書き込み、更新部５５は、エクステント９の書込ページ数をインクリメントする。
【００７５】
このように、図１１に示す例では、ｔ７０までデータの一括登録が続いた後に、データのランダム更新が発生するというトランザクションパターンについて説明した。このようにエクステント単位でページの書き込みに関するトレースを管理しながら、次のエクステントの書き込み戦略を決定することで、様々なトランザクションパターンに追従(対応)しながら、最良な登録処理、更新処理が実現できる。
【００７６】
以上のように本実施の形態では、ページが属するエクステントとトレース情報のエクステントとが一致しない場合に、一時記憶部７０へ書き込まれたページをエクステント単位でストリーム記憶部６０へ書き込むため、少メモリ環境下でも、エクステント内ブロックの連続化を維持して検索速度を維持しつつ、登録速度や一括更新速度を高速化することができる。
【００７７】
なお、本実施形態の管理装置は、ＣＰＵなどの制御装置と、ＲＯＭやＲＡＭなどの記憶装置と、ＨＤＤなどの外部記憶装置と、ディスプレイなどの表示装置と、キースイッチなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００７８】
（変形例）
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【００７９】
例えば、上記実施の形態では、管理装置をデジタル家電などの組込み機器に組み込んだ例について説明したが、これに限定されず、クライアントサーバ型の管理システムに適用することもできる。
【００８０】
また例えば、上記実施の形態では、エクステントに属する全ページ数に対する書込ページ数の割合が閾値を超えているか否かで書込ルールを決定したが、書込ページ数が閾値を超えているか否かで書込ルールを決定してもよい。
【符号の説明】
【００８１】
１  管理装置
１０  指示部
２０  トランザクション部
３０  ストリーム生成部
４０  バッファ制御部
４２  ストリームバッファ
４４  ログバッファ
５０  エクステント処理部
５１  受付部
５２  トレース情報記憶部
５３  決定部
５４  管理部
５５  更新部
６０  ストリーム記憶部
７０  一時記憶部
８０  ログ記憶部
【図１】
0005380542.tif 000002
【図２】
0005380542.tif 000003
【図３】
0005380542.tif 000004
【図４】
0005380542.tif 000005
【図５】
0005380542.tif 000006
【図６】
0005380542.tif 000007
【図７】
0005380542.tif 000008
【図８】
0005380542.tif 000009
【図９】
0005380542.tif 000010
【図１０】
0005380542.tif 000011
【図１１】
0005380542.tif 000012