JPH08255103A - ファイル管理方法及びファイル管理装置 - Google Patents
ファイル管理方法及びファイル管理装置Info
- Publication number
- JPH08255103A JPH08255103A JP7059378A JP5937895A JPH08255103A JP H08255103 A JPH08255103 A JP H08255103A JP 7059378 A JP7059378 A JP 7059378A JP 5937895 A JP5937895 A JP 5937895A JP H08255103 A JPH08255103 A JP H08255103A
- Authority
- JP
- Japan
- Prior art keywords
- record
- index
- page
- slice
- long
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ルを管理するためのファイル管理方法及び装置に関し、
レコードサイズの制約がなく、且つ部分的なアクセスに
対しても高速に行なうことができるようにすることを目
的とする。 【構成】 レコード操作手段2aで、規定サイズ内のレ
コードに関する要求を受けた場合は、通常レコード操作
手段4aで、1個のレコード内でデータベース6aに対
してアクセスを行なう一方、規定のサイズ内に収まらな
いサイズであって、複数のスライスにより構成された長
大レコードに関する要求を受けた場合は、長大レコード
操作手段3aで、長大レコードについてスライス単位に
分解し、スライス単位に分解された長大レコード内での
部分的アクセスをデータベース6aとの間で行なうか、
又はインデクス操作手段5aで、長大レコードのインデ
クスを生成又は更新し、長大レコードのアクセスをデー
タベースとの間で行なうように構成する。
Description
説明(図3) ・本実施例にかかるファイル管理装置を実現するための
ヘッダファイルのプログラミング例の説明(図24〜図
36) ・本実施例にかかるファイル管理装置を文書編集システ
ムに適用した場合の動作の概略の説明(図4) ・本実施例にかかるファイル管理装置の適用されたデー
タベースの詳細な説明(図5,図6) ・データベース上のレコードのサイズ変更に伴った状態
遷移の説明(図7) ・本実施例におけるファイル管理装置による、レコード
の新規作成の際の動作の詳細な説明(図8) ・本実施例におけるファイル管理装置による、レコード
の途中挿入の際の動作の詳細な説明(図9〜図12) ・本実施例におけるファイル管理装置による、レコード
の途中削除の際の動作の詳細な説明(図13〜図16) ・第1のガベージコレクションの態様の説明(図17〜
図20) ・第2のガベージコレクションの態様の説明(図21〜
図23) ・その他 発明の効果
れるファイルを管理するためのファイル管理方法及びフ
ァイル管理装置に関し、特に、データベースにおけるデ
ータの入出力動作の単位としてのページ内に収まらない
ようなデータについてアクセスする際に用いて好適な、
ファイル管理方法及びファイル管理装置に関する。
ース等により構成され、応用プログラム等が起動される
ワークステーションにおいては、例えばDBMS(Data
base Management System)等のようなデータベースに登
録されるファイルを管理するためのシステムが用いられ
ている。
ースに対して、数値や文字列等のような基本的なデータ
型(atomic data type)により構成されるファイルにつ
いての部分的な読み込み,更新,及びデータの挿入や削
除に伴うサイズ変更等のアクセス処理が行なわれてい
る。また、上述のワークステーション等においては、文
書、画像データ、CAD/CAEにおける可変長の座標
配列等のマルチメディアデータについてもデータベース
上に表現したいというニーズも高まっている。
サイズが可変であり、データに対する固定的な意味付け
(大小比較等)は限定することができない。そこで、多
くのRDBMS(リレーショナルDBMS)では、マル
チメディアデータを、例えばレコード(タップル,行)
単位に可変長のビット/バイト列を表すBLOB(binar
y large objects)というデータ型で表現することによ
り、上述の基本的なデータ型とは区別されている。
データを応用プログラム間でやり取りする際のデータの
単位をいう。なお、マルチメディアデータを、レコード
を構成するデータ項目(フィールド、カラム)単位に対
応してBLOBとして扱う場合においては、そのBLO
Bレコードへのアドレス参照により実現できる。
data」,「spatial data」,「bulkdata 」のように英
語表現される場合がある。ところで、上述したように、
マルチメディアデータをファイルとしてデータベースに
登録するにあたっては、レコードのサイズが可変であ
り、複数の物理ページ間にまたがるような大きいサイズ
となる場合があり、このような場合においては、マルチ
メディアデータを、基本的なデータと同様にはデータベ
ース上に登録することができない。
されるレコードは、レコード全体のサイズが大きくな
り、全てのデータ量を主記憶上に常駐させることができ
なくなり、ワークステーションの運用の際に、応用プロ
グラムや問い合わせに対する要求として、データベース
におけるレコード全体に対する部分的なアクセスを行な
える必要が生じている。
管理するファイル管理装置において、複数の物理ページ
間にまたがる大きなサイズのレコード(BLOBデー
タ)101を、データベース上にページ単位に分割して
格納するとともに、これらの分割して格納された破片1
01−1〜101−nをアドレスリンクすることが考え
られる。
データをデータベースに登録した場合は、ファイル管理
装置では、レコード全体に対する部分的なアクセスを行
なう際には、アドレスリンクに基づいて、先頭の破片か
ら順次ナビゲートしていくようになっている。しかしな
がら、近年のデータベースに格納すべきデータの量の増
大に伴って、複数の物理ページに分割された破片数を多
くすることになる。従って、データベースに対してのア
クセス時間が増加し、例えば画像データの時間軸に対す
るスキップや、CAEの部分的な配列データへの瞬時な
アクセスを実現することができないという課題がある。
イル管理装置において、ページ単位に分割された破片
(スライス)101−1〜101−nにより構成される
レコードに対して、各スライス101−1〜101−n
についてのサイズとアドレスとからなる一覧情報(ディ
レクトリ情報)を格納するページ102を別個に登録し
ておくことにより、データベース上のBLOBデータに
対する部分的アクセスの時間を少なくすることができ
る。
格納されたページに部分的アクセスする場合において
は、それぞれ、ディレクトリ情報が格納されたページ1
02における指針102−1〜102−nを参照するこ
とにより、部分的アクセスの時間を少なくしているので
ある。
図38に示すようなファイル管理装置によるデータベー
スのアクセス手法では、ページ102に格納されたディ
レクトリ情報自体は、一つの物理ページに収まらなけれ
ばならず、結果としてBLOBのレコード全体に対する
最大サイズが制約されるという課題がある。
規模のBLOBデータに対しても、必ずディレクトリ情
報のためのページが必要となる。即ち、単にページ内に
収まらない小規模のBLOBデータについて、上述の図
38に示すようなアクセス手法を用いると、ディレクト
リ情報のための領域の設定とそのメンテナンスが、空間
的、時間的なオーバーヘッドとなる課題もある。
の便宜を図るべく、応用プログラム側において、データ
ベース側の環境を意識する必要がないインターフェイス
を構築することも必要である。本発明は、このような課
題に鑑み創案されたもので、レコードサイズの制約がな
く、且つ部分的なアクセスに対しても高速に行なうこと
ができる、ファイル管理方法及びファイル管理装置を提
供することを目的とする。
ブロック図であり、この図1において、1aはファイル
管理装置であり、このファイル管理装置1aは、データ
ベース6aに登録されるファイルを管理するものであ
り、レコード操作手段2a,長大レコード操作手段3
a,通常レコード操作手段4a及びインデクス操作手段
5aをそなえている。
る各種要求を受け付けるものであり、ここでいうレコー
ドとは、データベース6内のデータをレコード操作手段
2側の要求元との間でやり取りする際のデータの単位を
いう。また、長大レコード操作手段3aは、規定のサイ
ズ内に収まらないサイズであって、複数のスライスによ
り構成された長大レコードに関する要求をレコード操作
手段2aから受けると、その長大レコードについて、ス
ライス単位に分解するものである。
コード操作手段1aからの規定サイズ内のレコードに関
する要求又は長大レコード操作手段3aからの長大レコ
ードに関する要求を受け、1個のレコード内でのアクセ
ス又はレコード内での部分的アクセスを、データベース
6aとの間で行なうものである。また、インデクス操作
手段5aは、長大レコードのインデクスを生成又は更新
し、長大レコードのアクセスをデータベースとの間で行
なうものである。
図であり、この図2において、1bはファイル管理装置
であり、このファイル管理装置1bは、データベース6
bに登録されるファイルを管理するものであり、レコー
ド操作手段2b,長大レコード操作手段3b,データペ
ージ操作手段4b及び木インデクス操作手段5bをそな
えている。
ド又はレコード内の部分的なデータに対して、レコード
の新規作成、抹消、フェッチ、レコード内の部分的なデ
ータに対する途中挿入、途中削除、更新又は読み込みの
いずれかのレコード操作要求を受け付けるものであり、
ここでいうレコードについても、データベース6b内の
データをレコード操作手段2側の要求元との間でやり取
りする際のデータの単位をいう。
ード操作手段2bにて受け付けた要求の対象となるデー
タが1ページ内に収まるサイズの通常レコードである場
合において、該要求の対象としての新規レコード又はデ
ータベース6b上で登録されたレコード識別子で示され
る既存レコードを1ページに収まる通常レコードとして
割り当てて、各種レコード操作を行なうとともに、1個
の通常レコード内における部分的アクセスを行なうもの
である。
データに関しての物理的な入出力動作の最小単位であ
る。さらに、長大レコード操作手段3bは、レコード操
作手段2bにて受け付けた要求の対象となるデータが、
ページ内に収まらないサイズであって、複数のスライス
により構成された長大レコードである場合は、新規レコ
ード又はデータベース6b上で登録された長大レコード
に対し、操作を受けるスライス単位に分解してから、デ
ータページ操作手段4bに対して各種レコード操作を要
求するものであり、後述するアクセス開始点決定制御部
3b−1及びメンテナンス部3b−2をそなえている。
フレベルのインデクスでは各スライスそのもののサイズ
とスライスへのレコード識別子を格納し、その上の階層
のインデクスは下位のインデクスの表すサイズの総和を
格納し、最上位のルートレベルのインデクスの表すサイ
ズの総和は長大レコード全体のサイズに一致し、リーフ
レベルのインデクスの順番は、これらの対応する各スラ
イスのオフセットの順番に一致するようにインデクスを
構成するものである。
ス開始点決定制御部3b−1は、既存の長大レコードに
対する部分的なアクセスを行なう場合には、レコード全
体に対するオフセットより操作対象となるスライスの開
始点を、スライス間のアドレスリンクを順次ナビゲート
する方法又は上記木インデクスより求める方法のいずれ
かにより決定するものである。
イス単位の追加、削除に伴う上記木インデクスのメンテ
ナンスを木インデクス操作手段5bに要求するものであ
る(請求項3,4)。また、データページ操作手段4b
が、ページ内の各レコードの、通常レコードと長大レコ
ードとの区別を記録するレコード区別記録部をそなえる
とともに、レコード操作手段2bが、データページ操作
手段4bのレコード区別記録部からの、既存のレコード
のレコード識別子に対応するレコードの区別に基づき、
通常レコードの場合にはデータページ操作手段4bに、
長大レコードの場合には長大レコード操作手段3bにそ
れぞれレコード操作を要求する操作要求部をそなえるこ
ともできる(請求項5)。
通常レコードに対し、操作に伴いレコード全体のサイズ
が1ページに収まらなくなる場合には、通常レコードを
長大レコードとして登録し直してから長大レコード操作
手段3bにレコード操作を要求する一方、既存の長大レ
コードに対し、操作を完了した後、長大レコード全体の
サイズが1ページに収まる場合には、このレコード操作
の完了した長大レコードを通常レコードとして登録し直
す再登録操作部をそなえることもできる(請求項6)。
が、既存の長大レコードに対する部分的なアクセスを行
なうスライスの開始点を決定する際に、木インデクスが
構成されている場合は木インデクス操作手段5bによ
り、無ければスライス自体の持つアドレスリンクをナビ
ゲートしてその開始点を決定することができる(請求項
7)。
の制御に基づいて、該木インデクス操作手段5bにより
アクセス開始点の決定する場合は、メンテナンス部3b
−2を、長大レコード全体のサイズに対する予め決めら
れたしきいサイズとの大小に基づいて、木インデクスの
作成と削除とを決定するように構成することができるほ
か(請求項8)、部分的なアクセスの要否により木イン
デクスの作成又は削除することを決定し(請求項9)、
さらに、部分的なアクセスが発生すると、木インデクス
を作成するように構成することができる(請求項1
0)。
ナンス部3b−2を長大レコード全体のサイズに対する
予め決められたしきいサイズとの大小関係、及び部分的
なアクセスの要否により木インデクスの作成又は削除す
ることを決定するように構成することができる(請求項
11)。さらに、木インデクス操作手段5bが、長大レ
コード全体に対するオフセットからスライスを検索する
際に、木インデクスの最上位のルートインデクスページ
から最下位のリーフインデクスページに至る各インデク
スのサイズの積算が、所望のオフセットと一致又は直前
となるインデクスを検索し、検索されたインデクスから
逐次下位階層のインデクスページに移って検索を行なう
ことにより、リーフインデクスページ上のインデクスに
おいて当該オフセットを含むスライスへのレコード識別
子を取得するインデクスページ操作部をそなえることも
できる(請求項12)。
レコードに対する部分的な挿入を行なう際に、挿入操作
後に新規生成されたスライスの格納ページに空き領域が
あれば、新規生成されたスライスと直後のスライス間で
併合するインデクスページ間操作部をそなえることがで
きるほか(請求項13)、長大レコードに対する部分的
な削除を行なう際に、削除操作の開始点を含むスライス
と終了点をスライス間で併合するインデクスページ間操
作部をそなえることもできる(請求項14)。
大レコードに対するサイズ変更操作が行なわれた後に、
当該長大レコードを構成する全てのスライスについての
スライスサイズの総和を演算する総和演算部と、総和演
算部において演算された総和に対する、スライスの個数
とページ単位サイズの積との比を演算する比演算部と、
比演算部において演算された比と、予め設定された比率
とを比較する比率比較部と、比率比較部における比率の
比較の結果、比演算部において演算された比が予め設定
された比率よりも小さい場合は、全てのスライスについ
てガベージコレクションを行なうように制御するガベー
ジコレクション制御部をそなえることができる(請求項
15)。
テナンス部3b−2において、インデクスに対する修正
をした後に、修正されたリーフインデクスページ内にお
ける、スライスサイズの総和を演算する総和演算部と、
総和演算部において演算された総和に対する、スライス
の個数とページ単位サイズの積との比率を演算する比演
算部と、比演算部において演算された比と、予め設定さ
れた比率とを比較する比率比較部と、比率比較部におけ
る比率の比較の結果、比演算部において演算された比が
予め設定された比率よりも小さい場合は、リーフインデ
クスページ内におけるインデクスに対応したスライスに
ついてガベージコレクションを行なうように制御するガ
ベージコレクション制御部をそなえることもできる(請
求項16)。
コード操作手段2aにおいて、規定サイズ内のレコード
に関する要求を受けた場合は、通常レコード操作手段4
aにより、1個のレコード内でデータベース6aに対し
てアクセスを行なう。また、レコード操作手段2aにお
いて、規定のサイズ内に収まらないサイズであって、複
数のスライスにより構成された長大レコードに関する要
求を受けた場合は、長大レコード操作手段3aにより、
長大レコードについて、スライス単位に分解する。
り、スライス単位に分解された長大レコード内での部分
的アクセスをデータベース6aとの間で行なうか、又は
インデクス操作手段5aにより、長大レコードのインデ
クスを生成又は更新し、長大レコードのアクセスをデー
タベース6aとの間で行なう。これにより、ファイル管
理装置1aでは、データベース6aに格納されるファイ
ルを管理することができる(請求項1,2)。
装置1bにおいては、レコード操作手段2bでは、レコ
ード又はレコード内の部分的なデータに対して、レコー
ドの新規作成、抹消、フェッチ、レコード内の部分的な
データに対する途中挿入、途中削除、更新又は読み込み
のいずれかのレコード操作要求を受け付ける。また、デ
ータページ操作手段4bでは、レコード操作手段2bに
て受け付けた要求の対象となるデータが1ページ内に収
まるサイズの通常レコードである場合は、該要求の対象
としての新規レコード又はデータベース6b上で登録さ
れたレコード識別子で示される既存レコードを1ページ
に収まる通常レコードとして割り当てて、各種レコード
操作を行なうとともに、1個の通常レコード内における
部分的アクセスを行なう。
レコード操作手段2bにて受け付けた要求の対象となる
データが、ページ内に収まらないサイズであって、複数
のスライスにより構成された長大レコードである場合
は、新規レコード又はデータベース6b上で登録された
長大レコードに対し、操作を受けるスライス単位に分解
してから、データページ操作手段4bに対して各種レコ
ード操作を要求する。
下位リーフレベルのインデクスでは各スライスそのもの
のサイズとスライスへのレコード識別子を格納し、その
上の階層のインデクスは下位のインデクスの表すサイズ
の総和を格納し、最上位のルートレベルのインデクスの
表すサイズの総和は長大レコード全体のサイズに一致
し、リーフレベルのインデクスの順番は、これらの対応
する各スライスのオフセットの順番に一致するようにイ
ンデクスを構成する。
ス開始点決定制御部3b−1では、既存の長大レコード
に対する部分的なアクセスを行なう場合には、レコード
全体に対するオフセットより操作対象となるスライスの
開始点を、スライス間のアドレスリンクを順次ナビゲー
トする方法又は上記木インデクスより求める方法のいず
れかにより決定し、メンテナンス部3b−2では、スラ
イス単位の追加、削除に伴う上記木インデクスのメンテ
ナンスを木インデクス操作手段5bに要求する。
操作要求の対象のレコードに基づいて、データベース6
bに登録されるファイルを管理することができる(請求
項3,4)。また、データページ操作手段4bでは、レ
コード区別記録部により、ページ内の各レコードの通常
レコードと長大レコードとの区別を記録しておき、レコ
ード操作手段2bの操作要求部により、データページ操
作手段4bのレコード区別記録部からの既存のレコード
のレコード識別子に対応するレコードの区別に基づき、
通常レコードの場合にはデータページ操作手段4bに、
長大レコードの場合には長大レコード操作手段3bにそ
れぞれレコード操作を要求する(請求項5)。これによ
り、レコード操作手段2bでは、既存のレコードのレコ
ード識別子に対応するレコードの区別に応じてレコード
操作を要求することができる。
作部により、既存の通常レコードに対し、操作に伴いレ
コード全体のサイズが1ページに収まらなくなる場合に
は、通常レコードを長大レコードとして登録し直してか
ら長大レコード操作手段3bにレコード操作を要求する
一方、既存の長大レコードに対し、操作を完了した後、
長大レコード全体のサイズが1ページに収まる場合に
は、このレコード操作の完了した長大レコードを通常レ
コードとして登録し直すこともできる(請求項6)。
ス開始点決定制御部3b−1では、既存の長大レコード
に対する部分的なアクセスを行なうスライスの開始点を
決定する際に、木インデクスが構成されている場合は木
インデクス操作手段5bにより、無ければスライス自体
の持つアドレスリンクをナビゲートしてその開始点を決
定するように制御することができる(請求項7)。
制御部3b−1による制御に基づき、木エンデクス操作
手段5bによりアクセス開始点を決定する場合は、メン
テンナンス部3b−2では、長大レコード全体のサイズ
に対する予め決められたしきいサイズとの大小に基づい
て、木インデクスの作成と削除とを決定することができ
るほか(請求項8)、部分的なアクセスの要否により木
インデクスの作成又は削除することを決定することがで
き(請求項9)、さらに、部分的なアクセスが発生する
と、木インデクスを作成することもできる(請求項1
0)。
レコード全体のサイズに対する予め決められたしきいサ
イズとの大小関係、及び部分的なアクセスの要否により
木インデクスの作成又は削除することを決定することが
できる(請求項11)。さらに、木インデクス操作手段
5bのインデクスページ操作部では、長大レコード全体
に対するオフセットからスライスを検索する際に、木イ
ンデクスの最上位のルートインデクスページから最下位
のリーフインデクスページに至る各インデクスのサイズ
の積算が、所望のオフセットと一致又は直前となるイン
デクスを検索し、検索されたインデクスから逐次下位階
層のインデクスページに移って検索を行なうことによ
り、リーフインデクスページ上のインデクスにおいて当
該オフセットを含むスライスへのレコード識別子を取得
することもできる(請求項12)。
クスページ間操作部により、長大レコードに対する部分
的な挿入を行なう際に、挿入操作後に新規生成されたス
ライスの格納ページに空き領域があれば、新規生成され
たスライスと直後のスライス間で併合することができる
ほか(請求項13)、長大レコードに対する部分的な削
除を行なう際に、削除操作の開始点を含むスライスと終
了点をスライス間で併合することもできる(請求項1
4)。
操作が行なわれた後に、総和演算部では、当該長大レコ
ードを構成する全てのスライスについてのスライスサイ
ズの総和を演算し、比演算部では、総和演算部において
演算された総和に対するスライスの個数とページ単位サ
イズの積との比を演算し、比率比較部では、比演算部に
おいて演算された比と予め設定された比率とを比較し、
ガベージコレクション制御部では、比率比較部における
比率の比較の結果、比演算部において演算された比が予
め設定された比率よりも小さい場合は、全てのスライス
についてガベージコレクションを行なうように制御する
ことができる(請求項15)。
インデクスに対する修正をした後に、総和演算部では、
修正されたリーフインデクスページ内における、スライ
スサイズの総和を演算し、比演算部では、総和演算部に
おいて演算された総和に対するスライスの個数とページ
単位サイズの積との比率を演算し、比率比較部では、比
演算部において演算された比と予め設定された比率とを
比較し、ガベージコレクション制御部では、比率比較部
における比率の比較の結果、比演算部において演算され
た比が予め設定された比率よりも小さい場合は、リーフ
インデクスページ内におけるインデクスに対応したスラ
イスについてガベージコレクションを行なうように制御
することもできる(請求項16)。
施例について説明する。 (a)本発明の一実施例にかかるファイル管理装置の概
要の説明 図3は本実施例にかかるファイル管理装置が適用された
システムを示すブロック図であり、この図3に示すシス
テムは、複数の端末とデータベース等により構成され、
例えば端末利用者による文書編集処理を行なうための応
用プログラム等が起動されるワークステーションなどと
して機能するものであり、ファイル管理装置は、データ
ベースに登録されるファイルを管理するためのものであ
る。
用者による処理内容等を表示するディスプレイ装置であ
り、12は端末利用者からのデータやコマンド等を入力
するためのキーボードである。また、13はキーボード
12からの入力やデータベース14に格納されているデ
ータに基づいて、例えば文書編集処理等の応用プログラ
ムを実行したり、プログラム実行の際に使用されるデー
タをデータベース14から読み込んで格納する中央処理
装置/主記憶装置であり、この中央処理装置/主記憶装
置13は、本実施例にかかるファイル管理装置としての
機能を有している。
/主記憶装置13において起動される応用プログラムの
ための各種データ等をファイル毎に格納しておくもので
あり、このデータベース14では、データに関しての物
理的な入出力動作をページ単位に行なうようになってい
る。ここで、CPU及び主記憶装置13は、応用処理部
21,レコード操作部22,BLOBレコード操作部2
3,ツリーインデクス操作部24,データページ操作部
25及びページバッファ26をそなえており、それぞれ
の機能はソフトウェアにより実現することができる。
リケーションプログラム)による処理を実行するもので
あり、本実施例においては、文書編集処理の応用プログ
ラムを実行するものである。レコード操作部(レコード
操作手段)22は、データベース14内のデータを応用
プログラム間でやり取りする際のデータの単位としての
レコード又はレコード内の部分的なデータに対する各種
レコード操作要求を受け付けるものであり、操作要求部
22a及び再登録操作部22bをそなえている。
単位に対する操作要求として文書の新規作成(crea
te),抹消(remove)又はフェッチ(fetc
h)を、レコード内の部分的なデータに対する操作要求
として途中挿入(insert)、途中削除(cu
t)、更新(update),読み込み(read)を
受け付けるようになっている。
2aは、データページ操作部25からのレコード識別子
(Record IDentifier,RID)で示される、既存のレコ
ードにおけるレコードの区別(割り当て)に基づき、通
常レコードの場合にはデータページ操作部25に、BL
OBレコード(長大レコード)の場合にはBLOBレコ
ード操作部23にそれぞれレコード操作を要求するもの
である。
常レコードに対し、操作に伴いレコード全体のサイズが
1ページに収まらなくなる場合には、通常レコードを長
大レコードとして登録し直してからBLOBレコード操
作部23にレコード操作を要求する一方、既存の長大レ
コードに対し、操作を完了した後、長大レコード全体の
サイズが1ページに収まる場合には、このレコード操作
の完了した長大レコードを通常レコードとして登録し直
すものである。
操作手段,データページ操作手段)25は、データを格
納するデータページを、ページ毎に操作するものであ
る。具体的には、レコード操作部22にて受け付けた要
求の対象となるデータが1ページ内に収まるサイズの通
常レコードである場合に、新規レコード又はデータベー
ス14上で登録されたレコード識別子で示される既存レ
コードが1ページに収まる通常レコードとしての各種レ
コード操作を行なうとともに、通常レコードにおける1
ページ内に収まる部分的アクセスを行なうものである。
ジ内の各レコードの、通常レコードとBLOBレコード
との区別をRIDとして記録するレコード区別記録部2
5aをそなえている。また、BLOBレコード操作部
(長大レコード操作手段)23は、レコード操作部22
にて受け付けた要求の対象となるデータが、1ページ内
に収まらないサイズであって、複数のスライスにより構
成された長大レコードとしてのBLOB(binary large
objects)レコードである場合は、新規レコード又はデー
タベース14上で登録されたBLOBレコードに対し、
操作を受けるスライス単位に分解してから、データペー
ジ操作部25に対して各種レコード操作を要求するもの
であり、アクセス開始点決定制御部23a及びメンテナ
ンス部23bをそなえている。
17にて後述するように、総和演算部23c,比演算部
23d,比率比較部23e及びガベージコレクション
(Garbage Collection) 制御部23fをそなえ、データ
ベース14におけるスライスの空の領域を整理すること
もできる。ここで、アクセス開始点決定制御部23a
は、既存のBLOBレコードに対する部分的なアクセス
を行なう場合には、レコード全体に対するオフセットよ
り操作対象となるスライスの開始点を、スライス間のア
ドレスリンクを順次ナビゲートする方法又は後述するツ
リーインデクス操作部24のツリーインデクス情報で求
める方法のいずれかにより決定するものである。
単位の追加、削除に伴うツリーインデクス情報のメンテ
ナンスをTreeインデクス操作部24に要求するものであ
る。さらに、ツリーインデクス(Tree Index) 操作部2
4は、ツリーインデクスを構成して、データベース14
におけるインデクスページに格納させるものであり、イ
ンデクスページ(Index Page)操作部24a及びインデク
スページ間操作部24bをそなえている。
分的なアクセスを行なう場合には、このツリーインデク
ス操作部24で構成されたツリーインデクス情報に基づ
いててアクセスを行なうことができるようになってい
る。上述のツリーインデクスの構成としては、下位リー
フレベル(Leaf Level)のインデクスでは各スライスその
もののサイズとスライスへのレコード識別子を格納し、
その上の階層のインデクスは下位のインデクスの表すサ
イズの総和を格納し、最上位のルートレベル(Root Leve
l)のインデクスの表すサイズの総和は該長大レコード全
体のサイズに一致し、リーフレベルのインデクスの順番
は、これらの対応する各スライスのオフセットの順番に
一致するように構成することができる。
かるファイル管理装置では、以下に示すような処理が行
なわれる。即ち、レコード操作部22では、応用処理部
21の応用プログラムからのレコードに対するアクセス
要求を受け付ける。例えば、レコード単位のアクセス要
求として、新規作成(create),抹消(remo
ve)又はフェッチ(fetch)を受け付け、また、
部分的なアクセスとして、途中挿入(insert),
途中削除(cut),更新(update)又は読み込
み(read)を受け付ける。
ドの新規作成時は、そのレコードに対する要求サイズに
より、通常レコードか又はBLOBレコードの区別を設
定する。また、レコード操作部22において受け付けた
アクセス要求が、既存のレコードに対するものならば、
データページ操作部25からのRIDに基づいて、その
レコードが通常レコードであるかBLOBレコードであ
るかを区別する。
22aでは、受け付けたアクセスに対応するレコード
が、通常レコードである場合は、直接データページ操作
部25に実際のレコード操作を要求する一方、BLOB
レコードである場合は、BLOBレコード操作部23に
実際のレコード操作を要求する。また、既存のレコード
が通常のレコードの場合でも、要求されたレコード操作
に伴ってレコード全体サイズが1サイズに収まらなくな
る場合には、再登録操作部22bにより既存の通常レコ
ードをBLOBレコードとして登録し直し、その後、操
作要求部22aによりBLOBレコード操作部23に実
際のレコード操作を要求する。
作を完了した後、BLOBレコード全体が1ページに収
まるようになった場合には、再登録操作部22bによ
り、そのレコード操作完了後のBLOBレコードを通常
レコードとして登録し直す。なお、レコード操作部22
において受けたアクセス要求が既存の通常レコードに対
するものである場合は、RIDは、それ自体1個のレコ
ードのデータベース14における所在を示している。
受けたアクセス要求がBLOBレコードの場合には、R
IDは、BLOBレコードに対する管理情報のデータベ
ース14における所在を示している。また、データベー
ス14に所在する管理情報としては、複数のスライスを
ナビゲートする情報,ツリーインデクスに関する情報か
ら構成される。
作部22からの要求に基づいて、新規レコード又はRI
Dで示される既存レコードが1ページに収まる通常レコ
ードとしての割り当て、削除、更新等のレコード操作を
行なうほか、1個の通常レコード内における途中削除,
部分的な読み出し、及び1ページ内に収まる範囲の途中
挿入といったレコード内(スライス内)での部分的アク
セスを行なう。
ド操作部22において受けたアクセス要求が、新規レコ
ードのBLOBレコードか又はRIDで示される既存レ
コードが複数ページに点在したスライスにまたがって格
納されるBLOBレコードに対するものである場合は、
そのBLOBレコードについて、操作を受けるスライス
単位に分解することにより、見かけ上個別の通常レコー
ドに対するアクセスを行なうことができる。
セス開始点決定制御部23aでは、レコード全体に対す
るオフセットより操作対象となるスライスの開始点を、
スライス間のアドレスリンクを順次ナビゲートする方法
又はツリーインデクス操作部24により生成されたツリ
ーインデクス情報により求める方法のいずれかにより決
定する。
3aでは、ツリーインデクス操作部24においてツリー
インデクスが作成されている場合は、ツリーインデクス
操作部24により部分的なアクセス対象となるスライス
の開始点を決定するが、作成されていない場合は、スラ
イス自体が有するアドレスリンクをナビゲートしてその
開始点を決定するのである。
で決定すると、BLOBレコード操作部23では、開始
点以降のスライス単位のレコード操作については、アド
レスリンクをナビゲートして、スライス単位にデータペ
ージ操作部25によるアクセス処理を繰り返し実行させ
るとともに、スライス単位のデータの追加、削除に伴っ
て、アドレスリンクのメンテナンスを行なう。
いてツリーインデクスが作成されている場合において
は、メンテナンス部23bでは、各スライス単位の追
加、削除、サイズ変更に関わる操作に伴い、ツリーイン
デクスをメンテナンスする。なお、メンテナンス部23
bでは、部分的なアクセスの要否や、BLOBレコード
全体のサイズに応じて、ツリーインデクスを新規に一括
生成したり、すでにあるツリーインデクスを消滅させ
る。
BLOBレコードとして格納管理されるデータの種類毎
に事前に定義された辞書を参照したり、応用プログラム
から部分的なアクセス要求を受け付けることにより判断
し、BLOBレコード全体のサイズは、レコード操作後
にサイズが縮小した結果、通常レコードに変換される可
能性があるので、レコード操作後のサイズに基づいて判
断されている。
は、データベース14上のインデクスページにおける、
各スライスに対応したインデクスを操作する。このイン
デクスは、ページ当たりのインデクスの格納数をX,平
均格納率をγ(0.5≦γ≦1.0)とすれば、インデ
クスの階層の高さHはlogγX(n)となり、スライ
ス数の増加に対して動的にインデクスを増加させるとと
もに、アクセス性能の劣化を緩和することができる。
生成されるインデクスでは、各インデクスには対応する
スライスのサイズを格納し、最下位のリーフレベルのイ
ンデクスは、各スライスそのもののサイズを格納し、結
果として最上位のインデクスの表すサイズの総和が、B
LOBレコード全体のサイズに一致する。さらに、リー
フレベルのインデクスの順番は、これらに対応する各ス
ライスのオフセットの順番に一致しており、結果的に上
位のインデクスにより、下位のインデクスページをナビ
ゲートすることなく、少ないページアクセスで効率的に
BLOB全体に対するオフセットに対応したリーフレベ
ルのインデクスに行き着くことができる。
(リーフ)に至るインデクスページ上の各インデクスの
サイズの積算が、所望のオフセットと一致又は直前とな
るインデクスを見つけ、そのインデクスから逐次下位階
層のインデクスページに移って検索することにより、リ
ーフインデクスページ(Leaf Index Page) 上のインデク
スに当該オフセットを含むスライスのRIDを取得す
る。これにより、BLOBレコード全体からのオフセッ
トからスライスを特定することができる。
デクスページ単位の操作を行なう。即ち、インデクスを
検索する際は、ルートインデクスページ(Root Index Pa
ge)から下位のインデクスページに向かって逐次検索さ
れるが、インデクスをメンテナンスする際は、インデク
スページ間操作部24bを介して、リーフインデクスペ
ージから上位のインデクスページに対して順次変更が反
映される。
は、同一階層での前後のインデクスページ間のリンク
や、上位/下位インデクスページ間のリンクのメンテナ
ンスを行なう。ところで、ツリーインデクス操作部24
において、データページにおけるスライスの増減に伴っ
た、インデクスページにおけるインデクスの増減操作を
行なう際においては、同一階層内での前後のインデクス
ページ間でのインデクスの移動が伴うオーバーフローや
アンダーフロー、さらに前後のインデクスページ間であ
ふれたインデクスを収容できない場合のスプリットや、
極端に過疎になったインデクスページのマージを行な
う。
部24aがリーフレベルのインデクスに対するメンテナ
ンス要求を受け付けると、インデクスページ操作部24
aからインデクスページ間操作部24bに実際のインデ
クスに対するメンテナンス要求を行なう。メンテナンス
要求を受けたインデクスページ間操作部24bでは、前
記のインデクスページ間にまたがるメンテナンス(オー
バフロー,アンダーフロー,スプリット又はマージ)を
行ない、インデクスページ単位のインデクスの挿入,削
除はインデクスページ操作部24aに要求する。
では、一つの階層に対するインデクスのメンテナンスが
完了すると、その変更内容を上位階層のインデクスペー
ジに反映する。例えば、下位階層のインデクスページの
総サイズが変更された場合には、その下位階層のインデ
クスページを代表する上位階層のインデクスのサイズ及
び当該上位階層のインデクスページの総サイズを更新す
る。
タベース14におけるファイル上のページアドレスに従
って、物理ページ単位の入出力,主記憶装置に読み込ま
れたページのバッファリング,新規ページのデータベー
ス14上への割り当て,データレコードやインデクスが
空になって不要になったページの、データベース14か
らの開放等を行なう。
により、BLOBレコードのインデクスを生成し、BL
OBレコードのアクセスをデータベース14との間で行
なうことができるので、管理すべきBLOBレコードの
最大レコードサイズの制約を無くすとともに、高速に部
分的アクセスを行なえる利点もある。また、再登録操作
部22aにより、操作に伴ってレコード全体のサイズが
変わっても、そのレコード全体のサイズに応じて、通常
レコード又はBLOBレコードとして登録することがで
きるほか、レコード区別記録部25aにより、ページ内
の各レコードの、BLOBレコードと通常レコードとの
区別を記録しておき、この区別に基づき、通常レコード
とBLOBレコードの操作との分岐制御を行なうことが
できるので、応用処理部21側において、通常レコード
とBLOBレコードの区別を意識する必要がなく、ファ
イル管理装置を、データ長を区別しない一貫性のあるイ
ンターフェイスとして機能させることができる利点があ
る。
クセス開始点決定制御部23aにより、レコード全体に
対するオフセットから操作対象となるスライスの開始点
を、スライス間のアドレスリンクを順次ナビゲートする
方法又はツリーインデクスから求める方法のいずれかに
より決定することができるので、レコードの規模とアク
セス形態に応じた最適なアクセス手段を選択することが
できる利点があるほか、ファイル管理装置を、応用処理
部21側においてデータベース側の環境を意識する必要
のない独立性のあるインターフェイスとして機能するこ
とができる利点もある。
BLOBレコード全体のサイズの対する予め決められた
しきいサイズとの大小関係又は部分的なアクセスの要否
によりツリーインデクスを動的に増減して更新,作成又
は削除を行なうことができるので、データベースの領域
を有効に活用しながら、管理すべき長大レコードの最大
レコードサイズの制約を無くすとともに、高速に部分的
アクセスを行なえる利点もある。
を実現するためのヘッダファイルのプログラミング例の
説明 上述のファイル管理装置としての機能をソフトウェアに
より構成する場合は、例えば、以下に示す図24〜図3
6に示すような、C言語のプログラムにより実現するこ
とができる。
例にかかるファイル管理装置を実現するためのヘッダフ
ァイルのプログラミング例を示す図であり、図24は初
期の設定を行なうためのもので、図25はレコード操作
部22を実現するためのもので、図26はページバッフ
ァ26を実現するためのものである。また、図27はデ
ータベース14におけるデータページ内のヘッダ部分の
構造を設定するためのもので、図28はデータページ操
作部25を実現するためのもので、図29はデータペー
ジ内のレコードエントリ部分の構造を設定するためのも
のである。
するためのもので、図31はBLOBレコード操作部2
3を実現するためのもので、図32はツリーインデクス
操作部24を実現するためのもので、図33はインデク
スページ内のスライス毎のインデクスの構造を設定する
ためのもので、図34はインデクスページ内のヘッダ部
の構造を設定するためのもので、図35はインデクスペ
ージ操作部24aを実現するためのもので、図36はイ
ンデクスページ間操作部24bを実現するためのもので
ある。
イル管理装置を実現するためのヘッダファイルが構成さ
れている場合においては、データベース14におけるデ
ータページ内においては、先頭に、図27のプログラム
により設定されたヘッダ部(DataHead)が格納
され、その直後にレコードエントリが可変数の配列とし
て格納される。なお、このレコードエントリの配列数と
しては、図27のプログラムにおける変数entryM
axが相当する。また、可変長となるレコードはデータ
ページの最後尾から格納され、レコードエントリとレコ
ード領域が衝突しない範囲で格納されるようになってい
る。
クスページ内においては、先頭に、図34のプログラム
により設定されたヘッダ部(IndexHead)が格
納され、その直後に、図33のプログラムにより設定さ
れた個々のスライス毎のインデクス(IndexTup
le)が固定数の配列として格納される。なお、インデ
クスが固定数の配列として格納されているので、インデ
クスのページサイズも固定である。
たインデクスページ操作部24a及び図36のプログラ
ムにより実現されたインデクスページ間操作部24b
は、図32のプログラムにより実現されたツリーインデ
クス操作部24から利用されるようになっている。 (c)本実施例にかかるファイル管理装置を文書編集シ
ステムに適用した場合の動作の概略の説明 次に、図3に示したファイル管理装置を文書編集システ
ムを起動する応用プログラムに適用した場合の動作につ
いて、図4に示すフローチャートを用いて以下に説明す
る。
ーボード12からの入力指示とディスプレイ装置11へ
の表示により文書編集作業を進め、文書情報をデータベ
ース14から入出力する。まず、利用者は最初にキーボ
ードより新規/既存の文書指定を行ない(ステップA
1,ステップA2)、指定された文書が新規文書である
場合は、文書ヘッダ情報をcreate操作により新規
レコードとしてデータベース14に書き込む(ステップ
A3)。
合は、その文書をデータベース14から取り出すために
fetch操作を行なう(ステップA4)。さらに、ペ
ージ単位の文書編集を行なう場合については(ステップ
A5)、キーボード12により編集すべき文書ページを
指示する(ステップA6)。これにより、データベース
14上において、BLOBレコード又は通常レコードで
構成された文書の当該文書ページに対応するオフセット
をlocate操作により位置付ける(ステップA
7)。
ジ当たりの総バイト数を固定にすることにより、文書ペ
ージとオフセットとが一意に対応付けることができる。
また、locate操作により指示されたオフセットに
対応するBLOBレコード又は通常レコード内の単位文
書ページに対応する特定サイズ分だけをread操作に
よりデータベース14から読み込む(ステップA8)。
14から読み込まれた文書の内容をディスプレイ装置1
1に表示する(ステップA9)。以後、表示中の文書に
対する部分文字列,行の単位での修正作業等をキーボー
ド12で指示し(ステップA10)、これらに対応し
て、途中挿入insert(ステップA11),途中削
除cut(ステップA12),部分変更update
(ステップA13)といったデータベース14に対する
操作が行なわれる。
述したような編集作業を繰り返すことができる。また、
文書を削除する指示に対しては、キーボード12により
不要文書を指定すると(ステップA14)、remov
e操作を行なうことにより、BLOBレコード又は通常
レコード単位で削除する(ステップA15)。
の適用されたデータベース14の詳細な説明 図5は本実施例にかかるファイル管理装置の適用された
データベース14の詳細を示すブロック図であり、この
図5に示すように、14aはレコードエントリー部であ
り、このレコードエントリ部14aは、ページバッファ
26からのアクセス要求のあったレコードを特定するた
めのRIDを入力され、このRIDに対応するレコード
の所在(例えばページ内の相対バイト位置等)と通常レ
コードとBLOBレコードとの区別を記録するものであ
る。
記録されたレコードの区別に基づき、ファイル管理装置
側においては、前述のデータページ操作部25のレコー
ド区別記録部25aにて記録されるようになっている。
なお、このRIDには、レコード毎に採番されたユニー
ク番号を用いたり、レコードアドレスを用いることがで
きる。この場合ではレコードアドレスを用いてRIDを
構成する。なお、RIDは、レコードを格納するページ
のアドレスとともに、そのページ内でのレコード追番と
により構成されている。
ータページ操作部25の操作に基づいて通常レコード及
びBLOBレコードを格納するデータページ14eと、
ツリーインデクス操作部24の操作に基づきツリーイン
デクス情報を格納するインデクスページ14dをそなえ
ている。なお、いずれのページ14d,14eにおいて
も、データベース14のファイル上では、一つの物理ペ
ージであり、ページのファイルとの入出力やバッファリ
ングはページバッファ操作部26で共通して行なわれる
ようになっている。。
たツリーインデクスとデータページ14eに格納された
BLOBレコードとしてのn個のスライス14−1〜1
4−nとは、図6に示すような関係を有している。即
ち、この図6に示すように、n個のスライス14−1〜
14−nにより、応用処理部21から要求される1個の
BLOBレコードを構成しており、それぞれのスライス
14−1〜14−nは、各スライスに続くスライスのア
ドレス情報としてのnextアドレス等の制御情報をそ
なえ、これにより、例えば各スライス14−1〜14−
nを順にnextアドレスに従ってアクセスすることに
より、全体としてBLOBレコードにアクセスすること
ができるようになっている。
は、以下に示す式(1)に示すように、各スライス14
−1〜14−n毎のサイズS1〜Snについての制御情
報領域を除いた総和Sとなる。 さらに、インデクスページ14dのツリーインデクス
は、3段の階層構成を有するインデクス群14d−1〜
14d−3により構成されており、各インデクス群14
d−1〜14d−3には対応するスライスのサイズが格
納されている。
群14d−3には、各スライスそのもののサイズを格納
し、その上の階層のインデクス群14d−2には、下位
のインデクスの表すサイズの総和を格納し、結果として
最上位のルートレベルのインデクス群14d−1の表す
サイズの総和が、BLOBレコード全体のサイズに一致
する。
d−3の順番は、これらに対応する各スライスのオフセ
ットの順番に一致しており、従って、上位のインデクス
群14d−2,14d−1を参照することにより、下位
のインデクス群14d−3をナビゲートすることなく、
少ないページアクセスで効率的にBLOB全体に対する
オフセットに対応したリーフレベルのインデクスを検索
できるようになっている。
−1〜14d−3は、複数のインデクスページにより構
成することができる。さらに、各々のインデクス群14
d−1〜14d−3を構成するインデクス1個は、例え
ば、スライスに対するRIDで8バイト、スライスのサ
イズで4バイト、更に上位から下位へのインデクスへの
ページアドレスとして4バイトの合計16バイトからな
り、1ページのサイズを4KBとすると、約250個の
インデクスを1インデクスページに収容することができ
る。
部14aにおいて記録された内容に基づき、アクセス要
求のあったレコードが通常レコードである場合は、その
レコードは一つのページ上に存在し、且つそのレコード
の所在位置がレコードエントリの記録から直接示される
(図5における(a)参照)。また、アクセス要求のあ
ったレコードが、複数ページ上に分散されたスライス1
4−1〜14−nにより構成されるBLOBレコードで
ある場合は、レコードエントリ部14aにおいて記録さ
れている所在位置情報は、アクセス要求のあったBLO
BレコードについてのBLOB管理情報14cを示して
いる(図5における(b)参照)。
り、複数ページ上に分散されたスライスの内の先頭のも
のへの位置が示されるとともに、このBLOBレコード
に対応するツリーインデクスが生成されている場合は、
このBLOBレコードを構成する分散されたスライスへ
のツリーインデクスへのトップ(ルート)が示されてい
る。
基づいて、データページ14e上のデータにアクセスす
る際においては、スライス間のアドレスリンクを順次ナ
ビゲートする方法か又はインデクスページ14dに生成
されたツリーインデクスによりアクセスする方法を採用
する。具体的には、BLOBレコードを構成するスライ
スの個数が少なかったり、部分的なアクセスを要しない
場合にはスライス間のアドレスリンクを順次ナビゲート
する方法を採用し、インデクスページ14dにツリーイ
ンデクスが生成されていたり、部分的なアクセスを要す
る場合は、ツリーインデクスによりアクセスする方法を
採用する。
データアクセスを行なう方法を採用する場合において
は、BLOB管理情報14cからのBLOBレコード全
体からのオフセットに基づいて、最上位階層(ルート)
から最下位(リーフ)に至るインデクスページ上の各イ
ンデクスのサイズの積算が所望のオフセットと一致又は
直前となるインデクスを見つけ、そのインデクスから逐
次下位階層のインデクスページに移っていくことによ
り、リーフインデクスページ上のインデクスに当該オフ
セットを含むスライスのRIDを取得することができ、
これにより、BLOBレコード全体からのオフセットか
らスライスを特定することができる。
る部分的なアクセスを必要とする場合、このi番目のス
ライスは、応用処理部21からのBLOBレコード全体
におけるオフセットで特定される。ここで、このオフセ
ットに基づいてアクセスする際に、ツリーインデクスを
利用した方法を用いた場合においては、上述したよう
に、ルートレベルのインデクス群14d−1からオフセ
ット1が求まり、インデクス群14d−2からオフセッ
ト2が求まり、リーフレベルのインデクス群14d−3
からオフセット3が求まる。
タの内容を含むスライス14−iを検索することがで
き、巨大なBLOBレコード全体の内の1部分に対する
アクセスを高速に実現することができる。なお、アクセ
ス要求のあったBLOBデータについて、実際に存在す
るスライスが数ページ(例えば10ページ)の場合や、
常に先頭から順次読み込むような目的の場合(例えばデ
ータベース14が単なる大きなデータの格納庫であった
り、膨大なメモリ空間に一括して読み込むか、読み込め
る範囲のサイズまでしかデータ量が増大しないものの場
合)は、ツリーインデクスによらずにスライス間のアド
レスリンクを順次ナビゲートしてアクセスを行なう。
るサイズや部分的なレコードのアクセスの要否によりア
クセス方法を選択して、ツリーインデクスの生成/削除
をを選択することができるので、インデクスページ14
eを生成するのに必要なデータベース14上の記憶領域
や、インデクスページ14eのためのメンテナンス時間
の冗長性を抑止することができる。
変更に伴った状態遷移の説明 また、データベース14上のレコードは、前述の(b)
にて示したような文書ファイルについての修正等が行な
われると、データベース14上では、その修正等に応じ
て図7に示すように状態が遷移するようになっている。
即ち、文書ファイルにおけるレコードの新規作成(cr
eate,図7の状態B1参照)に対しては、初回のレ
コードサイズが1物理ページに収まれば通常レコードと
して登録され(図7の状態B1から状態B2)、収まら
なければBLOBレコードとして登録される(状態B1
から状態B3)。
中挿入(insert)を行なった結果、レコードサイ
ズが1物理ページに収まらなくなった場合は、BLOB
レコードとして再登録され(状態B2から状態B3)、
逆に、BLOBレコードに対し、途中削除(cut,図
7の状態B4参照)を行なった結果、レコードサイズが
1物理ページに収まれば通常レコードとして再登録され
る(状態B3からB2)。
BLOBレコードに対して、途中挿入(insert)
により更にレコードサイズが増加するか、既に新規作成
(create)段階で充分大きなレコードサイズにな
っている場合か、又は途中挿入(insert)、途中
削除(cut)、途中更新(update)、途中読み
込み(read)といった部分的なアクセスが必要であ
る場合は、このBLOBレコードに対し、ツリーインデ
クス操作部24による操作に基づいて、前述の図6に示
すようなツリーインデクスを生成する(状態B3から状
態B5)。
削除(cut)を行なった結果、レコードサイズが充分
小さくなるので、ツリーインデクスはオーバーヘッドと
なり、再びツリーインデクスは不要とみなされる。これ
により、インデクスページ14eに生成されたツリーイ
ンデクスを削除される(状態B5から状態B3)。上述
のツリーインデクスの生成、削除を行なう際の判断は、
レコード操作部22において、BLOBレコードのサイ
ズの基準値に基づいて行なっているが、このサイズの基
準値は、インデクスページ14eのサイズが、最小のイ
ンデクス構成で冗長にならないような全スライスのサイ
ズの総和の閾値として設定されている。
条件は、例えばルートとリーフが一致するとともに1個
のインデクスページから成り、且つ1ページ内の格納率
が0.5とすることができる。例えば、前述の図6にお
けるツリーインデクスの場合においては、1個のインデ
クスページでは250個のインデクスを格納できるの
で、その0.5の格納率の125個以上のインデクスを
保つようなスライス数(=インデクス数)であり、その
数分のスライスサイズの総和となる。
ライスが密に詰められた状態で、125個分のインデク
スに対応したページの総サイズを閾値としてのサイズと
するので、以下に示す式(2)に基づき、500KBと
することができる。 4KB×125=500KB …(2) なお、レコードの削除/抹消(remove)を行なう
際は、最後のレコードサイズに依存して、BLOBレコ
ードと通常レコードの両方の状態から遷移しうる。ま
た、ツリーインデクスが生成されている状態であって
も、レコード削除(remove)に伴い、スライスの
削除が発生し、その結果の中間の状態遷移としてTre
eインデクス無しのBLOBレコードへの状態遷移とな
る(図7における状態B5から状態B3)。
Bレコードと通常レコードとの区別を記録しておき、こ
の区別に基づき、通常レコードとBLOBレコードの操
作との分岐制御を行なうことができるので、応用処理部
21側において、通常レコードとBLOBレコードの区
別を意識する必要がなく、ファイル管理装置を、データ
長を区別しない一貫性のあるインターフェイスとして機
能させることができる。
による、レコードの新規作成の際の動作の詳細な説明 図8はレコードの新規作成(create)を行なう際
の動作を詳細に説明するためのフローチャートであり、
この図8に示すように、まず新規作成に要求されるレコ
ードサイズがページ内に収まるか否かのチェックを行な
い(ステップC1)、このチェック結果に応じて、デー
タベース14に格納される際のレコードの種類としての
通常レコード又はBLOBレコードのいずれかが選択さ
れる(ステップC2)。
収まらず、BLOBレコードとして格納することが選択
された場合は(ステップC2から“BLOBレコード”
ルート)、BLOBレコード操作部23において、最初
にBLOBレコードに関わる管理情報を作成するととも
に、データページ操作部25の操作により、この管理情
報をあたかも通常レコードの如く1物理ページ内に割り
当てる(ステップC3)。
ドは、データページ操作部25の操作により、スライス
形式で複数ページ間に分割して格納される。スライス単
位の格納は、あたかも1個1個の通常レコードの如くデ
ータページ操作で格納されるが、スライス毎には、制御
情報として、スライス間のRIDによるリンク、そのス
ライスの持つデータのサイズが付加されている(ステッ
プC4)。
いて、ツリーインデクス要のフラグが立っているか否か
を判定する(ステップC6)。この段階において、BL
OBレコード既に巨大化しており、BLOBレコード操
作部23aにおいて、ツリーインデクス要のフラグが立
っている場合は(ステップC6の“要”ルート)、ツリ
ーインデクス操作部24の操作により、ツリーインデク
スを一括作成する(ステップC7)。
合においても、ツリーインデクスを作成することができ
るが、新規作成段階では、実際の部分的なアクセス発生
をもってその必要性の判断を行なう場合はない。このよ
うに作成された複数スライスの先頭のスライスへのRI
Dや、Treeンデクスのルートインデクスページへの
ページアドレスといったBLOBレコードに関わる情報
を、前述のBLOB管理情報に返却記録する(ステップ
C8)。
ージ内に割り当てられた各領域への所在を示すレコード
エントリには、そのBLOBレコードの所在と共に、レ
コードの種類として、通常レコード、BLOB管理情
報、スライスの区別が記録されている。また、ステップ
C2において、レコードサイズが1物理ページに収まる
通常レコードである場合は、単にデータページ操作部2
5により、1ページ内にレコードを格納し、RIDをデ
ータベース14に返却する(ステップC9,ステップC
10)。
RIDを返却した結果、通常レコードならばそのRID
はそのままその領域を示し、BLOBレコードならばそ
のRIDはBLOB管理情報を示すことになる。従っ
て、操作に伴ってレコード全体のサイズが変わっても、
そのレコード全体のサイズに応じて、通常レコード又は
BLOBレコードとして登録することができるので、応
用処理部21側において、通常レコードとBLOBレコ
ードの区別を意識する必要がなく、ファイル管理装置
を、データ長を区別しない一貫性のあるインターフェイ
スとして機能させることができる。
による、レコードの途中挿入の際の動作の詳細な説明 図9〜図12はレコードの途中挿入(insert)を
行なう際のレコードの操作の一例とともに、その後の隣
接ページのマージの様子を示す図である。例えば、図9
に示すように、n個のスライス14−1〜14−nから
なるBLOBレコードに対して、i番目のスライス14
−iの途中となるオフセットXから、rバイトのデータ
30の挿入を行なう場合においては、まず、目標オフセ
ット位置への位置付け(locate)及び押し出され
るデータの有無の判定を行なう。
となるオフセットが、i番目のスライス14−iの途中
に位置付けられると、このオフセット位置Xからrバイ
ト分のデータ30が挿入されるが、もともとスライス1
4−iは空き領域がなかったため、挿入されるべき領域
にあるrバイト分のデータは押し出される。この場合の
ように、押し出されるデータがある場合は、新規スライ
ス領域31を確保しておき、押し出されるデータをその
新規スライス領域31に退避させてから、スライス14
−iにおける空いた領域に、新データを挿入する。
置Xからrバイト分のデータ30の挿入に伴い、i番目
のスライス14−i内に存在するデータrバイト分のデ
ータが、新規に設定されたページ上の新たなスライス領
域31として押し出され、元のi番目のスライス14−
iの直後のi+1番目だったスライス14−(i+1)
のデータが、新規生成されたスライス領域の後ろにマー
ジされる。
だったスライス14−(i+1)内の全てのデータが、
新規スライス上にマージできれば、i+1番目だったス
ライスは空となり削除することができ、新規スライスを
新しいi+1番目のスライス14−(i+1)とするこ
とができる。従って、挿入操作の直後に隣接するページ
とのマージを行なうことにより、挿入操作によるスライ
スの増加を抑制することができ、アクセス性能の劣化を
防止することができる。
による、レコードの途中削除の際の動作の詳細な説明 図13〜図16はレコードの途中削除(cut)を行な
う際のレコードの操作の一例とともに、その後の隣接ペ
ージのマージの様子を示す図である。即ち、図13に示
すように、n個のスライス14−1〜14−nからなる
BLOBレコードに対し、i番目のスライス14−iの
途中となるオフセットXから、r(=k+m+n)バイ
トの途中削除を行なう場合においては、最初に削除の開
始点となるオフセットへの位置付け(locate)を
行なって、i番目のスライス14−iの途中に位置付け
る。
4−i〜14−(i+2)内のデータ削除を行ない、目
標全ての削除が終わるまで行なう。即ち、スライス14
−iにおけるオフセットXから最終位置までのkバイ
ト,スライス14−(i+1)における先頭位置から最
終位置までのmバイト及びスライス14−(i+2)に
おける先頭のnバイトを削除する。
4−(i+1)を削除し、スライス14−iとスライス
14−(i+2)との間のスライス間のリンクを結び直
すとともに、スライス14−(i+2)内の使用部分
(先頭からnバイトの位置から最終位置までの部分)
を、当該スライス14−(i+2)の先頭部分に詰め直
す。
のスライス14−iの開いたスペース(オフセットXか
ら最終位置までのkバイト)に、新たなi+1番目のス
ライス14−(i+1)(削除前にi+2番目のスライ
ス14−(i+2)だったもの)のデータをマージし、
残ったスライス14−(i+1)のデータについては、
前述の図15におけるスライス14−(i+2)と同様
に、先頭位置に詰め直す。
疎なスライスの増加を抑制することができ、アクセス性
能の劣化を抑制することができる。なお、新たなi+1
番目のスライス14−(i+1)内でのデータの再度の
マージの際に、新たなi+1番目スライス14−(i+
1)のデータが全てi番目のスライス14−i内に収ま
れば、この新たなi+1番目のスライスも削除されるこ
とになる。
の説明 ところで、本実施例にかかるファイル管理装置のBLO
Bレコード操作部23は、詳細には図17に示すよう
に、総和演算部23c,比演算部23d,比率比較部2
3e及びガベージコレクション制御部23fをそなえて
おり、ツリーインデクス操作部24においてツリーイン
デクスを生成していない場合において、データベース1
4におけるスライスの空の領域を整理するガベージコレ
クション制御を行なうことができるようになっており、
このため、BLOBレコード操作部23は、詳細には図
17に示すように、総和演算部23c,比演算部23
d,比率比較部23e及びガベージコレクション制御部
23fをそなえている。
コードに対するサイズ変更操作が行なわれた後に、当該
BLOBレコードを構成する全てのスライスについての
スライスサイズの総和を演算するものである。また、比
演算部23dは、総和演算部において演算された総和に
対する、スライス14−1〜14−nの個数nとページ
単位サイズPの積Dとの比S/Dを演算するものであ
り、比率比較部23eは、比演算部23dにおいて演算
された比S/Dと、予め設定された比率αとを比較する
ものである。
fは、比率比較部23eにおける比率の比較の結果、比
演算部23dにおいて演算された比S/Dが予め設定さ
れた比率αよりも小さい場合は、データベース14にお
ける全てのスライス14−1〜14−nについてガベー
ジコレクションを行なうように、データページ操作部2
5を介して制御するものである。
管理装置では、ツリーインデクス操作部24においてツ
リーインデクスを生成しておらず、nextリンクのみ
でBLOBデータが管理されている場合は、以下に示す
ようにガベージコレクションを行なっている。ところ
で、個々のスライスが1ページ丸々のサイズ分のデータ
を持てば、BLOBレコード全体のサイズを満足すべき
最小スライス数とすることができる。例えば図18に示
すように、スライス14−1〜14−nにデータが格納
されている場合においては、スライス14−1〜14−
nの個数nとページ単位サイズPの積D(=n×P)
が、管理することができるBLOBレコードの最大サイ
ズである。
納されているデータの総和が所定の格納率αを下回った
場合は、図18〜図20に示すように、BLOBレコー
ドを構成する全てのスライスに対し、ガベージコレクシ
ョン制御を行なうことができる。即ち、図18に示すよ
うに、BLOBレコードに対するサイズ変更操作が行な
われた後に、総和演算部23cでは、当該BLOBレコ
ードを構成する全てのスライス14−1〜14−nにつ
いてのスライスサイズの総和Sを、前述の式(1)に従
って演算する。
おいて演算された総和Sに対するスライス14−1〜1
4−nの個数nとページ単位サイズPの積D(=n×
P)との比S/Dを演算する。そして、比率比較部23
eでは、比演算部23dにおいて演算された比S/Dと
予め設定された比率α(例えばα=0.5)と比較し、
S/Dがαよりも小さい場合は、スライスに格納される
データ量が、極度に過疎の状態にあると判定され、ガベ
ージコレクション制御部23fにより、全てのスライス
14−1〜14−nについてガベージコレクションを行
なうように制御する。
nについてガベージコレクションを行なう際において
は、例えば図19におけるスライス14−1〜14−3
の間のように、隣り合うスライス間において、自スライ
スとnextアドレスで続くnextスライスとの間で
マージすることが行なわれる。即ち、例えばスライス1
4−1の空き領域にスライス14−2のデータS2 及び
スライス14−3のデータの一部S3-1 がマージされ
(図19の参照)、スライス14−2のように、スラ
イス14−2が空になると、スライス削除が発生する
(図19の参照)。
ス内のデータが空でないものについては、残ったデータ
S3-2 を当該スライス14−3における先頭部分に詰め
直す(図19の参照)。以後、続くスライス14−4
〜14−nについても、上述の〜における処理と同
様のガベージコレクションを行なうことにより、図20
に示すような総スライス数がm(<n)のスライスとす
ることができるが、この総スライス数の値mは、以下に
示す式(3)により表すことができる。
って長大レコード全体のサイズが変わった場合において
は、データベース14におけるスライスの空の領域を整
理して、スライス数を減少させることができるので、デ
ータベース14の領域を有効に活用することができる利
点がある。
の説明 上述の(i)で詳述した第1のガベージコレクションの
態様においては、ツリーインデクス操作部24において
ツリーインデクスを生成していない場合に行なわれるガ
ベージコレクション制御について説明したが、第2のガ
ベージコレクションの態様としては、ツリーインデクス
が生成されている場合のガベージコレクション制御を行
なうこともできる。
における図17に示すように、BLOBレコード操作部
23は、総和演算部23c,比演算部23d,比率比較
部23e及びガベージコレクション制御部23fをそな
えているが、それぞれの機能は上述の(i)におけるも
のと異なる。即ち、総和演算部23cは、メンテナンス
部23bにおいて、インデクスに対する修正をした後
に、修正されたリーフインデクスページ内における、ス
ライスサイズの総和を演算するものであり、比演算部2
3dは、総和演算部23cにおいて演算された総和に対
する、スライスの個数とページ単位サイズの積との比率
を演算するものである。
3dにおいて演算された比と、予め設定された比率とを
比較するものであり、ガベージコレクション制御部23
fは、比率比較部23eにおける比率の比較の結果、比
演算部23dにおいて演算された比が予め設定された比
率よりも小さい場合は、リーフインデクスページ内にお
けるインデクスに対応したスライスについてガベージコ
レクションを行なうように制御するものである。
管理装置では、ツリーインデクス操作部24により、ツ
リーインデクスが構成されているBLOBレコードに対
するガベージコレクションの動作について、図21〜図
23を用いて以下に説明する。即ち、スライス14−1
〜14−Nに対する修正を行なうとともに、メンテナン
ス部23bにおいてインデクスに対する修正を行なうこ
とにより、図21に示すようなインデクス15及びこの
インデクス15に対応するスライス14−1〜14−N
となった場合においては、以下に示すようにガベージコ
レクションを行なうか否かを判定する。
リーフインデクスページ15内におけるスライスサイズ
の総和Sを演算し、比演算部23dでは、総和演算部2
3cにおいて演算された総和Sに対する、リーフインデ
クスページ15内におけるスライスの個数Nとスライス
ページ単位サイズPの積D(=N×P)との比S/Dを
演算する。
23dにおいて演算された比S/Dと予め設定された比
率とを比較し、ガベージコレクション制御部23fで
は、比率比較部における比率の比較の結果、比演算部2
3dにおいて演算された比が予め設定された比率α(例
えばα=0.5)よりも小さい場合は、リーフインデク
スページ15内におけるインデクスに対応したスライス
14−1〜14−Nについてガベージコレクションを行
なうように制御する。
クスページ15内のスライス14−1〜14−Nについ
てガベージコレクションを行なう際においても、前述の
図19におけるスライス14−1〜14−3の間のよう
に、隣り合うスライス間において、自スライスとnex
tアドレスで続くnextスライスとの間でマージする
ことが行なわれる。
の隣り合うスライス間のマージ処理を行なう毎にインデ
クスページのメンテナンスを行なっている。即ち、例え
ばスライス削除が生じた場合は、対応するインデクスも
削除する。具体的には、スライス14−1の空き領域に
スライス14−2のデータS2 がマージされ(図22の
参照)、空になったスライス14−2が削除されると
(図22の参照)、対応するリーフインデクスページ
15におけるインデクス15A(サイズS2 が格納され
ている領域)が削除され、インデクスの詰め直しが行な
われる(図22の参照)。
ついても、上述の図22における〜における処理と
同様のガベージコレクションを行なうことにより、図2
3に示すような総スライス数がm(≦n)のスライスと
することができる。これにより、ツリーインデクスを構
成するリーフインデクスページ15内で、ガベージコレ
クションを行なう対象となるスライス群の範囲をスライ
ス14−1〜14−Nに限定することができる。
り、操作に伴って長大レコード全体のサイズが変わった
場合においては、データベース14におけるスライスの
空の領域を整理して、スライス数を減少させることがで
きるので、データベース14の領域を有効に活用するこ
とができる利点がある。また、ツリーインデクス操作部
24によりツリーインデクスが生成される場合のよう
に、詰めなおしの対象となるスライス数が多い場合にお
いて、ガベージコレクションを行なう対象となるスライ
ス群の範囲を限定することにより、データの入出力負荷
を抑制することもできる。
計サイズは、ガベージコレクションを行なった後も変わ
らないので、総管理サイズも変わらず、仮にツリーイン
デクスが複数段により構成されている場合においても、
リーフインデクスページのメンテナンス時の、対応する
上位インデクスページのメンテナンスを容易にすること
ができる。
する格納率に基づいてガベージコレクションを行なうか
否かを判定しているが、本発明によればこれに限定され
ず、理想スライス数に基づいて上述の判定を行なうこと
ができ、このようにしても前述の(i),(j)と同様
の作用効果を得ることができる。
LOBレコード全体のサイズ)をSとし、スライスペー
ジ単位サイズをPとすると、理想のスライス数、即ち最
小のスライス数Mを、以下に示す式(4)のように設定
する。 M=CEIL(S/P);CEILは小数点以下を切り上げる関数 …(4) これにより、上述の式(4)にて得られた理想スライス
数Mを用いて、実際のスライス数Nに対する理想スライ
ス数Mとの比率N/Mと所定の閾値αとを比較し、この
比較結果に基づいてガベージコレクションを行なうか否
かを判定するのである。
2記載の本発明によれば、ツリーインデクス操作手段に
より、長大レコードのインデクスを生成し、長大レコー
ドのアクセスをデータベースとの間で行なうことができ
るので、管理すべき長大レコードの最大レコードサイズ
の制約を無くすとともに、高速に部分的アクセスを行な
える利点もある。
ば、再登録操作部により、操作に伴ってレコード全体の
サイズが変わっても、そのレコード全体のサイズに応じ
て、通常レコード又は長大レコードとして登録すること
ができるので、応用プログラム側において、通常レコー
ドとBLOBレコードの区別を意識する必要がなく、フ
ァイル管理装置を、データ長を区別しない一貫性のある
インターフェイスとして機能させることができる利点も
ある。
データページ操作手段のレコード区別記録部により、ペ
ージ内の各レコードの、長大レコードと通常レコードと
の区別を記録しておき、この区別に基づき、通常レコー
ドと長大レコードの操作との分岐制御を行なうことがで
きるので、前述の請求項4,6の場合と同様の利点があ
る。
大レコード操作手段のアクセス開始点決定制御部によ
り、レコード全体に対するオフセットより操作対象とな
るスライスの開始点を、スライス間のアドレスリンクを
順次ナビゲートする方法又は上記木インデクスより求め
る方法のいずれかにより決定することができるので、レ
コードの規模とアクセス形態に応じた最適なアクセス手
段を選択することができるほか、ファイル管理装置を、
応用プログラム側においてデータベース側の環境を意識
する必要のない独立性のあるインターフェイスとして機
能することができる利点もある。
れば、ツリーインデクス操作手段では、長大レコード全
体のサイズの対する予め決められたしきいサイズとの大
小関係又は部分的なアクセスの要否によりツリーインデ
クスを動的に増減して更新,作成又は削除を行なうこと
ができるので、データベースの領域を有効に活用しなが
ら、管理すべき長大レコードの最大レコードサイズの制
約を無くすとともに、高速に部分的アクセスを行なえる
利点もある。
れば、長大レコード操作手段により、操作に伴って長大
レコード全体のサイズが変わった場合においては、デー
タベースにおけるスライスの空の領域を整理して、スラ
イス数を減少させることができるので、前述の場合と同
様に、データベースの領域を有効に活用することができ
る利点がある。
ば、長大レコード操作手段により、ガベージコレクショ
ンを行なう際に、詰めなおしの対象となるスライス数が
多い場合において、ガベージコレクションを行なう対象
となるスライス群の範囲を限定することにより、入出力
負荷を抑制することができる利点もある。
たシステムを示すブロック図である。
システムを起動する応用プログラムに適用した場合の動
作を説明するためのフローチャートである。
たデータベースの詳細を示すブロック図である。
スとインデクスの関係を示す図である。
明するための図である。
ドの新規作成を行なう際の動作を詳細に説明するための
フローチャートである。
ドの途中挿入を行なう際のレコードの操作の一例ととも
に、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
Bレコード操作部を詳細に示すブロック図である。
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
るためのヘッダファイルのプログラミング例を示す図で
ある。
コードのアクセス手法を示す図である。
コードのアクセス手法を示す図である。
段) 23a アクセス開始点決定制御部 23b メンテナンス部 23c 総和演算部 23d 比演算部 23e 比率比較部 23f ガベージコレクション制御部 24 ツリーインデクス操作部 24a インデクスページ操作部 24b インデクスページ間操作部 25 データページ操作部(データページ操作手段) 25a レコード区別記録部 26 ページバッファ 30 挿入データ 31 新規スライス領域 101 レコード 101−1〜101−n スライス 102 ページ
Claims (16)
- 【請求項1】 データベースに登録されるファイルを管
理するファイル管理方法において、 規定サイズ内のレコードに関する要求を受けた場合は、
1個のレコード内で該データベースに対してアクセスを
行なう一方、 規定のサイズ内に収まらないサイズであって、複数のス
ライスにより構成された長大レコードに関する要求を受
けた場合は、該長大レコードについて、該スライス単位
に分解し、 該スライス単位に分解された長大レコード内での部分的
アクセスを該データベースとの間で行なうか、又は該長
大レコードのインデクスを生成又は更新し、該長大レコ
ードのアクセスを該データベースとの間で行なうことを
特徴とする、ファイル管理方法。 - 【請求項2】 データベースに登録されるファイルを管
理するファイル管理装置において、 レコードに対する各種要求を受け付けるレコード操作手
段と、 規定のサイズ内に収まらないサイズであって、複数のス
ライスにより構成された長大レコードに関する要求を該
レコード操作手段から受けると、該長大レコードについ
て、該スライス単位に分解する長大レコード操作手段
と、 該レコード操作手段からの規定サイズ内のレコードに関
する要求又は該長大レコード操作手段からの長大レコー
ドに関する要求を受け、1個のレコード内でのアクセス
又はレコード内での部分的アクセスを、該データベース
との間で行なう通常レコード操作手段と、 該長大レコードのインデクスを生成又は更新し、長大レ
コードのアクセスを該データベースとの間で行なうイン
デクス操作手段とをそなえたことを特徴とする、ファイ
ル管理装置。 - 【請求項3】 データベースに登録されるファイルを管
理するファイル管理装置において、 レコード又はレコード内の部分的なデータに対する各種
レコード操作要求を受け付けるレコード操作手段と、 該レコード操作手段にて受け付けた該要求の対象となる
データが1ページ内に収まるサイズの通常レコードであ
る場合において、該要求の対象としての新規レコード又
はデータベース上で登録されたレコード識別子で示され
る既存レコードを1ページに収まる通常レコードとして
割り当てて、各種レコード操作を行なうとともに、1個
の通常レコード内における部分的アクセスを行なうデー
タページ操作手段と、 該レコード操作手段にて受け付けた該要求の対象となる
データが、ページ内に収まらないサイズであって、複数
のスライスにより構成された長大レコードである場合
は、新規レコード又はデータベース上で登録された該長
大レコードに対し、操作を受けるスライス単位に分解し
てから、該データページ操作手段に対して各種レコード
操作を要求する長大レコード操作手段と、 最下位リーフレベルのインデクスでは各スライスそのも
ののサイズとスライスへのレコード識別子を格納し、そ
の上の階層のインデクスは下位のインデクスの表すサイ
ズの総和を格納し、最上位のルートレベルのインデクス
の表すサイズの総和は該長大レコード全体のサイズに一
致し、リーフレベルのインデクスの順番は、これらの対
応する各スライスのオフセットの順番に一致するように
インデクスを構成する木インデクス操作手段とをそな
え、 該長大レコード操作手段が、 既存の長大レコードに対する部分的なアクセスを行なう
場合には、レコード全体に対するオフセットより操作対
象となるスライスの開始点を、スライス間のアドレスリ
ンクを順次ナビゲートする方法又は上記木インデクスよ
り求める方法のいずれかにより決定するアクセス開始点
決定制御部と、 スライス単位の追加、削除に伴う上記木インデクスのメ
ンテナンスを該木インデクス操作手段に要求するメンテ
ナンス部とをそなえたことを特徴とする、ファイル管理
装置。 - 【請求項4】 該レコード操作手段にて要求を受け付け
る各種レコード操作が、レコードに対する新規作成、抹
消、フェッチ、レコード内の部分的なデータに対する途
中挿入、途中削除、更新又は読み込みのうちのいずれか
であることを特徴とする、請求項2又は3記載のフィア
ル管理装置。 - 【請求項5】 該データページ操作手段が、 ページ内の各レコードの、通常レコードと長大レコード
との区別を記録するレコード区別記録部をそなえるとと
もに、 該レコード操作手段が、 該データページ操作手段のレコード区別記録部からの、
既存のレコードのレコード識別子に対応する前記レコー
ドの区別に基づき、通常レコードの場合には前記データ
ページ操作手段に、長大レコードの場合には該長大レコ
ード操作手段にそれぞれレコード操作を要求する操作要
求部をそなえたことを特徴とする、請求項3記載のファ
イル管理装置。 - 【請求項6】 該レコード操作手段が、 既存の通常レコードに対し、操作に伴いレコード全体の
サイズが1ページに収まらなくなる場合には、該通常レ
コードを長大レコードとして登録し直してから該長大レ
コード操作手段にレコード操作を要求する一方、既存の
長大レコードに対し、操作を完了した後、長大レコード
全体のサイズが1ページに収まる場合には、このレコー
ド操作の完了した長大レコードを通常レコードとして登
録し直す再登録操作部をそなえたことを特徴とする、請
求項2記載のファイル管理装置。 - 【請求項7】 該長大レコード操作手段のアクセス開始
点決定制御部が、 既存の長大レコードに対する部分的なアクセスを行なう
スライスの開始点を決定する際に、木インデクスが構成
されている場合は該木インデクス操作手段により、無け
ればスライス自体の持つアドレスリンクをナビゲートし
てその開始点を決定するように制御するように構成され
たことを特徴とする、請求項3記載のファイル管理装
置。 - 【請求項8】 該長大レコード操作手段のメンテナンス
部が、 該アクセス開始点決定制御部による制御に基づき、該木
インデクス操作手段によりアクセス開始点を決定する場
合、長大レコード全体のサイズに対する予め決められた
しきいサイズとの大小に基づいて、該木インデクスの作
成と削除とを決定するように構成されたことを特徴とす
る、請求項7記載のファイル管理装置。 - 【請求項9】 該長大レコード操作手段のメンテナンス
部が、 部分的なアクセスの要否により該木インデクスの作成又
は削除することを決定するように構成されたことを特徴
とする、請求項7記載のファイル管理装置。 - 【請求項10】 該長大レコード操作手段のメンテナン
ス部が、 部分的なアクセスが発生すると、該木インデクスを作成
するように構成されたことを特徴とする、請求項9記載
のファイル管理装置。 - 【請求項11】 該長大レコード操作手段のメンテナン
ス部が、 長大レコード全体のサイズに対する予め決められたしき
いサイズとの大小関係、及び部分的なアクセスの要否に
より該木インデクスの作成又は削除することを決定する
ように構成されたことを特徴とする、請求項7記載のフ
ァイル管理装置。 - 【請求項12】 該木インデクス操作手段が、 長大レコード全体に対するオフセットからスライスを検
索する際に、該木インデクスの最上位のルートインデク
スページから最下位のリーフインデクスページに至る各
インデクスのサイズの積算が、所望のオフセットと一致
又は直前となるインデクスを検索し、検索されたインデ
クスから逐次下位階層のインデクスページに移って検索
を行なうことにより、リーフインデクスページ上のイン
デクスにおいて当該オフセットを含むスライスへのレコ
ード識別子を取得するインデクスページ操作部をそなえ
たことを特徴とする、請求項3記載のファイル管理装
置。 - 【請求項13】 該長大レコード操作手段が、 長大レコードに対する部分的な挿入を行なう際に、挿入
操作後に新規生成されたスライスの格納ページに空き領
域があれば、該新規生成されたスライスと直後のスライ
ス間で併合するインデクスページ間操作部をそなえたこ
とを特徴とする、請求項4記載のファイル管理装置。 - 【請求項14】 該長大レコード操作手段が、 長大レコードに対する部分的な削除を行なう際に、削除
操作の開始点を含むスライスと終了点をスライス間で併
合するインデクスページ間操作部をそなえたことを特徴
とする、請求項4記載のファイル管理装置。 - 【請求項15】 該長大レコード操作手段が、 長大レコードに対するサイズ変更操作が行なわれた後
に、当該長大レコードを構成する全てのスライスについ
てのスライスサイズの総和を演算する総和演算部と、 該総和演算部において演算された総和に対する、スライ
スの個数とページ単位サイズの積との比を演算する比演
算部と、 該比演算部において演算された比と、予め設定された比
率とを比較する比率比較部と、 該比率比較部における比率の比較の結果、該比演算部に
おいて演算された比が予め設定された比率よりも小さい
場合は、該全てのスライスについてガベージコレクショ
ンを行なうように制御するガベージコレクション制御部
をそなえたことを特徴とする、請求項3記載のファイル
管理装置。 - 【請求項16】 該長大レコード操作手段が、 該メンテナンス部において、該インデクスに対する修正
をした後に、修正されたリーフインデクスページ内にお
ける、スライスサイズの総和を演算する総和演算部と、 該総和演算部において演算された総和に対する、スライ
スの個数とページ単位サイズの積との比率を演算する比
演算部と、 該比演算部において演算された比と、予め設定された比
率とを比較する比率比較部と、 該比率比較部における比率の比較の結果、該比演算部に
おいて演算された比が予め設定された比率よりも小さい
場合は、該リーフインデクスページ内におけるインデク
スに対応したスライスについてガベージコレクションを
行なうように制御するガベージコレクション制御部をそ
なえたことを特徴とする、請求項3記載のファイル管理
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05937895A JP3703874B2 (ja) | 1995-03-17 | 1995-03-17 | ファイル管理方法及びファイル管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05937895A JP3703874B2 (ja) | 1995-03-17 | 1995-03-17 | ファイル管理方法及びファイル管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08255103A true JPH08255103A (ja) | 1996-10-01 |
JP3703874B2 JP3703874B2 (ja) | 2005-10-05 |
Family
ID=13111567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05937895A Expired - Fee Related JP3703874B2 (ja) | 1995-03-17 | 1995-03-17 | ファイル管理方法及びファイル管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3703874B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008533570A (ja) * | 2005-03-11 | 2008-08-21 | ロックソフト リミテッド | 低冗長記憶システムで索引を行う方法 |
JP2010262455A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 管理装置、情報生成プログラム、及び情報生成方法 |
JP2010262457A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法 |
JP2010262456A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 分散保存システム、ノード装置、ノードプログラム、及びページ情報取得方法 |
JP2013511104A (ja) * | 2009-11-16 | 2013-03-28 | マイクロソフト コーポレーション | ブロブとしての仮想ハードドライブ管理 |
CN109657015A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种基于oracle行迁移和行连接的数据提取方法 |
-
1995
- 1995-03-17 JP JP05937895A patent/JP3703874B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008533570A (ja) * | 2005-03-11 | 2008-08-21 | ロックソフト リミテッド | 低冗長記憶システムで索引を行う方法 |
JP2010262455A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 管理装置、情報生成プログラム、及び情報生成方法 |
JP2010262457A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法 |
JP2010262456A (ja) * | 2009-05-01 | 2010-11-18 | Brother Ind Ltd | 分散保存システム、ノード装置、ノードプログラム、及びページ情報取得方法 |
JP2013511104A (ja) * | 2009-11-16 | 2013-03-28 | マイクロソフト コーポレーション | ブロブとしての仮想ハードドライブ管理 |
US9639299B2 (en) | 2009-11-16 | 2017-05-02 | Microsoft Technology Licensing, Llc | Managing virtual hard drives as blobs |
US10628086B2 (en) | 2009-11-16 | 2020-04-21 | Microsoft Technology Licensing, Llc | Methods and systems for facilitating communications with storage |
CN109657015A (zh) * | 2018-12-25 | 2019-04-19 | 四川效率源信息安全技术股份有限公司 | 一种基于oracle行迁移和行连接的数据提取方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3703874B2 (ja) | 2005-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220255014A1 (en) | Trie-Based Indices for Databases | |
US8224829B2 (en) | Database | |
CN106030579B (zh) | 用于针对存储器内的多个存储区域扫描指定量的结果的方法、系统和计算机程序 | |
US5943683A (en) | Data processing method using record division storing scheme and apparatus therefor | |
AU2002222096A1 (en) | Method of organising, interrogating and navigating a database | |
US10521117B2 (en) | Unified table delta dictionary memory size and load time optimization | |
US10289709B2 (en) | Interleaved storage of dictionary blocks in a page chain | |
US8682872B2 (en) | Index page split avoidance with mass insert processing | |
US7363284B1 (en) | System and method for building a balanced B-tree | |
CN113392089B (zh) | 一种数据库索引优化方法及可读存储介质 | |
WO2012114402A1 (ja) | データベース管理装置及びデータベース管理方法 | |
JP3703874B2 (ja) | ファイル管理方法及びファイル管理装置 | |
US20220171872A1 (en) | Data generalization apparatus, data generalization method, and program | |
WO2012081165A1 (ja) | データベース管理装置及びデータベース管理方法 | |
US20240193142A1 (en) | Method of processing data in a database | |
JP3929269B2 (ja) | データ処理方法および装置 | |
JPH07210563A (ja) | 索引処理方法 | |
JPS61160133A (ja) | デ−タの入力管理方法 | |
CN115374127A (zh) | 数据存储方法及装置 | |
Walczuch et al. | Using individual prefixes in B+-trees | |
JPH05143644A (ja) | 索引部管理方式 | |
JPH05298369A (ja) | データ検索方法および装置 | |
JPH0689209A (ja) | ファイル管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041026 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050721 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080729 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090729 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100729 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100729 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110729 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |