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
Application number
JP7059378A
Other languages
English (en)
Other versions
JP3703874B2 (ja
Inventor
Yukiyasu Kobayashi
志康 小林
Yasuhiro Suzuki
康弘 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP05937895A priority Critical patent/JP3703874B2/ja
Publication of JPH08255103A publication Critical patent/JPH08255103A/ja
Application granted granted Critical
Publication of JP3703874B2 publication Critical patent/JP3703874B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 本発明は、データベースに登録されるファイ
ルを管理するためのファイル管理方法及び装置に関し、
レコードサイズの制約がなく、且つ部分的なアクセスに
対しても高速に行なうことができるようにすることを目
的とする。 【構成】 レコード操作手段2aで、規定サイズ内のレ
コードに関する要求を受けた場合は、通常レコード操作
手段4aで、1個のレコード内でデータベース6aに対
してアクセスを行なう一方、規定のサイズ内に収まらな
いサイズであって、複数のスライスにより構成された長
大レコードに関する要求を受けた場合は、長大レコード
操作手段3aで、長大レコードについてスライス単位に
分解し、スライス単位に分解された長大レコード内での
部分的アクセスをデータベース6aとの間で行なうか、
又はインデクス操作手段5aで、長大レコードのインデ
クスを生成又は更新し、長大レコードのアクセスをデー
タベースとの間で行なうように構成する。

Description

【発明の詳細な説明】
【0001】(目次) 産業上の利用分野 従来の技術 発明が解決しようとする課題 課題を解決するための手段(図1,図2) 作用(図2) 実施例 ・本発明の一実施例にかかるファイル管理装置の概要の
説明(図3) ・本実施例にかかるファイル管理装置を実現するための
ヘッダファイルのプログラミング例の説明(図24〜図
36) ・本実施例にかかるファイル管理装置を文書編集システ
ムに適用した場合の動作の概略の説明(図4) ・本実施例にかかるファイル管理装置の適用されたデー
タベースの詳細な説明(図5,図6) ・データベース上のレコードのサイズ変更に伴った状態
遷移の説明(図7) ・本実施例におけるファイル管理装置による、レコード
の新規作成の際の動作の詳細な説明(図8) ・本実施例におけるファイル管理装置による、レコード
の途中挿入の際の動作の詳細な説明(図9〜図12) ・本実施例におけるファイル管理装置による、レコード
の途中削除の際の動作の詳細な説明(図13〜図16) ・第1のガベージコレクションの態様の説明(図17〜
図20) ・第2のガベージコレクションの態様の説明(図21〜
図23) ・その他 発明の効果
【0002】
【産業上の利用分野】本発明は、データベースに登録さ
れるファイルを管理するためのファイル管理方法及びフ
ァイル管理装置に関し、特に、データベースにおけるデ
ータの入出力動作の単位としてのページ内に収まらない
ようなデータについてアクセスする際に用いて好適な、
ファイル管理方法及びファイル管理装置に関する。
【0003】
【従来の技術】従来より、例えば複数の端末とデータベ
ース等により構成され、応用プログラム等が起動される
ワークステーションにおいては、例えばDBMS(Data
base Management System)等のようなデータベースに登
録されるファイルを管理するためのシステムが用いられ
ている。
【0004】即ち、このDBMSにおいては、データベ
ースに対して、数値や文字列等のような基本的なデータ
型(atomic data type)により構成されるファイルにつ
いての部分的な読み込み,更新,及びデータの挿入や削
除に伴うサイズ変更等のアクセス処理が行なわれてい
る。また、上述のワークステーション等においては、文
書、画像データ、CAD/CAEにおける可変長の座標
配列等のマルチメディアデータについてもデータベース
上に表現したいというニーズも高まっている。
【0005】ここで、マルチメディアデータは、データ
サイズが可変であり、データに対する固定的な意味付け
(大小比較等)は限定することができない。そこで、多
くのRDBMS(リレーショナルDBMS)では、マル
チメディアデータを、例えばレコード(タップル,行)
単位に可変長のビット/バイト列を表すBLOB(binar
y large objects)というデータ型で表現することによ
り、上述の基本的なデータ型とは区別されている。
【0006】ここで、レコードとは、データベース内の
データを応用プログラム間でやり取りする際のデータの
単位をいう。なお、マルチメディアデータを、レコード
を構成するデータ項目(フィールド、カラム)単位に対
応してBLOBとして扱う場合においては、そのBLO
Bレコードへのアドレス参照により実現できる。
【0007】また、BLOBは、この他に「long item
data」,「spatial data」,「bulkdata 」のように英
語表現される場合がある。ところで、上述したように、
マルチメディアデータをファイルとしてデータベースに
登録するにあたっては、レコードのサイズが可変であ
り、複数の物理ページ間にまたがるような大きいサイズ
となる場合があり、このような場合においては、マルチ
メディアデータを、基本的なデータと同様にはデータベ
ース上に登録することができない。
【0008】従って、マルチメディアデータにより構成
されるレコードは、レコード全体のサイズが大きくな
り、全てのデータ量を主記憶上に常駐させることができ
なくなり、ワークステーションの運用の際に、応用プロ
グラムや問い合わせに対する要求として、データベース
におけるレコード全体に対する部分的なアクセスを行な
える必要が生じている。
【0009】そこで、図37に示すように、ファイルを
管理するファイル管理装置において、複数の物理ページ
間にまたがる大きなサイズのレコード(BLOBデー
タ)101を、データベース上にページ単位に分割して
格納するとともに、これらの分割して格納された破片1
01−1〜101−nをアドレスリンクすることが考え
られる。
【0010】これにより、図37に示すようにBLOB
データをデータベースに登録した場合は、ファイル管理
装置では、レコード全体に対する部分的なアクセスを行
なう際には、アドレスリンクに基づいて、先頭の破片か
ら順次ナビゲートしていくようになっている。しかしな
がら、近年のデータベースに格納すべきデータの量の増
大に伴って、複数の物理ページに分割された破片数を多
くすることになる。従って、データベースに対してのア
クセス時間が増加し、例えば画像データの時間軸に対す
るスキップや、CAEの部分的な配列データへの瞬時な
アクセスを実現することができないという課題がある。
【0011】そこで、例えば図38に示すように、ファ
イル管理装置において、ページ単位に分割された破片
(スライス)101−1〜101−nにより構成される
レコードに対して、各スライス101−1〜101−n
についてのサイズとアドレスとからなる一覧情報(ディ
レクトリ情報)を格納するページ102を別個に登録し
ておくことにより、データベース上のBLOBデータに
対する部分的アクセスの時間を少なくすることができ
る。
【0012】即ち、スライス101−1〜101−nの
格納されたページに部分的アクセスする場合において
は、それぞれ、ディレクトリ情報が格納されたページ1
02における指針102−1〜102−nを参照するこ
とにより、部分的アクセスの時間を少なくしているので
ある。
【0013】
【発明が解決しようとする課題】しかしながら、上述の
図38に示すようなファイル管理装置によるデータベー
スのアクセス手法では、ページ102に格納されたディ
レクトリ情報自体は、一つの物理ページに収まらなけれ
ばならず、結果としてBLOBのレコード全体に対する
最大サイズが制約されるという課題がある。
【0014】さらに、高々数ページにまたがるような小
規模のBLOBデータに対しても、必ずディレクトリ情
報のためのページが必要となる。即ち、単にページ内に
収まらない小規模のBLOBデータについて、上述の図
38に示すようなアクセス手法を用いると、ディレクト
リ情報のための領域の設定とそのメンテナンスが、空間
的、時間的なオーバーヘッドとなる課題もある。
【0015】また、応用プログラム利用の際に、利用者
の便宜を図るべく、応用プログラム側において、データ
ベース側の環境を意識する必要がないインターフェイス
を構築することも必要である。本発明は、このような課
題に鑑み創案されたもので、レコードサイズの制約がな
く、且つ部分的なアクセスに対しても高速に行なうこと
ができる、ファイル管理方法及びファイル管理装置を提
供することを目的とする。
【0016】
【課題を解決するための手段】図1は第1の発明の原理
ブロック図であり、この図1において、1aはファイル
管理装置であり、このファイル管理装置1aは、データ
ベース6aに登録されるファイルを管理するものであ
り、レコード操作手段2a,長大レコード操作手段3
a,通常レコード操作手段4a及びインデクス操作手段
5aをそなえている。
【0017】レコード操作手段1aは、レコードに対す
る各種要求を受け付けるものであり、ここでいうレコー
ドとは、データベース6内のデータをレコード操作手段
2側の要求元との間でやり取りする際のデータの単位を
いう。また、長大レコード操作手段3aは、規定のサイ
ズ内に収まらないサイズであって、複数のスライスによ
り構成された長大レコードに関する要求をレコード操作
手段2aから受けると、その長大レコードについて、ス
ライス単位に分解するものである。
【0018】さらに、通常レコード操作手段4aは、レ
コード操作手段1aからの規定サイズ内のレコードに関
する要求又は長大レコード操作手段3aからの長大レコ
ードに関する要求を受け、1個のレコード内でのアクセ
ス又はレコード内での部分的アクセスを、データベース
6aとの間で行なうものである。また、インデクス操作
手段5aは、長大レコードのインデクスを生成又は更新
し、長大レコードのアクセスをデータベースとの間で行
なうものである。
【0019】さらに、図2は第2の発明の原理ブロック
図であり、この図2において、1bはファイル管理装置
であり、このファイル管理装置1bは、データベース6
bに登録されるファイルを管理するものであり、レコー
ド操作手段2b,長大レコード操作手段3b,データペ
ージ操作手段4b及び木インデクス操作手段5bをそな
えている。
【0020】ここで、レコード操作手段2bは、レコー
ド又はレコード内の部分的なデータに対して、レコード
の新規作成、抹消、フェッチ、レコード内の部分的なデ
ータに対する途中挿入、途中削除、更新又は読み込みの
いずれかのレコード操作要求を受け付けるものであり、
ここでいうレコードについても、データベース6b内の
データをレコード操作手段2側の要求元との間でやり取
りする際のデータの単位をいう。
【0021】また、データページ操作手段4bは、レコ
ード操作手段2bにて受け付けた要求の対象となるデー
タが1ページ内に収まるサイズの通常レコードである場
合において、該要求の対象としての新規レコード又はデ
ータベース6b上で登録されたレコード識別子で示され
る既存レコードを1ページに収まる通常レコードとして
割り当てて、各種レコード操作を行なうとともに、1個
の通常レコード内における部分的アクセスを行なうもの
である。
【0022】なお、ページとは、データベースにおける
データに関しての物理的な入出力動作の最小単位であ
る。さらに、長大レコード操作手段3bは、レコード操
作手段2bにて受け付けた要求の対象となるデータが、
ページ内に収まらないサイズであって、複数のスライス
により構成された長大レコードである場合は、新規レコ
ード又はデータベース6b上で登録された長大レコード
に対し、操作を受けるスライス単位に分解してから、デ
ータページ操作手段4bに対して各種レコード操作を要
求するものであり、後述するアクセス開始点決定制御部
3b−1及びメンテナンス部3b−2をそなえている。
【0023】木インデクス操作手段5bは、最下位リー
フレベルのインデクスでは各スライスそのもののサイズ
とスライスへのレコード識別子を格納し、その上の階層
のインデクスは下位のインデクスの表すサイズの総和を
格納し、最上位のルートレベルのインデクスの表すサイ
ズの総和は長大レコード全体のサイズに一致し、リーフ
レベルのインデクスの順番は、これらの対応する各スラ
イスのオフセットの順番に一致するようにインデクスを
構成するものである。
【0024】また、長大レコード操作手段3bのアクセ
ス開始点決定制御部3b−1は、既存の長大レコードに
対する部分的なアクセスを行なう場合には、レコード全
体に対するオフセットより操作対象となるスライスの開
始点を、スライス間のアドレスリンクを順次ナビゲート
する方法又は上記木インデクスより求める方法のいずれ
かにより決定するものである。
【0025】さらに、メンテナンス部3b−2は、スラ
イス単位の追加、削除に伴う上記木インデクスのメンテ
ナンスを木インデクス操作手段5bに要求するものであ
る(請求項3,4)。また、データページ操作手段4b
が、ページ内の各レコードの、通常レコードと長大レコ
ードとの区別を記録するレコード区別記録部をそなえる
とともに、レコード操作手段2bが、データページ操作
手段4bのレコード区別記録部からの、既存のレコード
のレコード識別子に対応するレコードの区別に基づき、
通常レコードの場合にはデータページ操作手段4bに、
長大レコードの場合には長大レコード操作手段3bにそ
れぞれレコード操作を要求する操作要求部をそなえるこ
ともできる(請求項5)。
【0026】さらに、レコード操作手段2bが、既存の
通常レコードに対し、操作に伴いレコード全体のサイズ
が1ページに収まらなくなる場合には、通常レコードを
長大レコードとして登録し直してから長大レコード操作
手段3bにレコード操作を要求する一方、既存の長大レ
コードに対し、操作を完了した後、長大レコード全体の
サイズが1ページに収まる場合には、このレコード操作
の完了した長大レコードを通常レコードとして登録し直
す再登録操作部をそなえることもできる(請求項6)。
【0027】また、アクセス開始点決定制御部3b−1
が、既存の長大レコードに対する部分的なアクセスを行
なうスライスの開始点を決定する際に、木インデクスが
構成されている場合は木インデクス操作手段5bによ
り、無ければスライス自体の持つアドレスリンクをナビ
ゲートしてその開始点を決定することができる(請求項
7)。
【0028】即ち、アクセス開始点決定制御部3b−1
の制御に基づいて、該木インデクス操作手段5bにより
アクセス開始点の決定する場合は、メンテナンス部3b
−2を、長大レコード全体のサイズに対する予め決めら
れたしきいサイズとの大小に基づいて、木インデクスの
作成と削除とを決定するように構成することができるほ
か(請求項8)、部分的なアクセスの要否により木イン
デクスの作成又は削除することを決定し(請求項9)、
さらに、部分的なアクセスが発生すると、木インデクス
を作成するように構成することができる(請求項1
0)。
【0029】また、長大レコード操作手段3bのメンテ
ナンス部3b−2を長大レコード全体のサイズに対する
予め決められたしきいサイズとの大小関係、及び部分的
なアクセスの要否により木インデクスの作成又は削除す
ることを決定するように構成することができる(請求項
11)。さらに、木インデクス操作手段5bが、長大レ
コード全体に対するオフセットからスライスを検索する
際に、木インデクスの最上位のルートインデクスページ
から最下位のリーフインデクスページに至る各インデク
スのサイズの積算が、所望のオフセットと一致又は直前
となるインデクスを検索し、検索されたインデクスから
逐次下位階層のインデクスページに移って検索を行なう
ことにより、リーフインデクスページ上のインデクスに
おいて当該オフセットを含むスライスへのレコード識別
子を取得するインデクスページ操作部をそなえることも
できる(請求項12)。
【0030】また、長大レコード操作手段3bが、長大
レコードに対する部分的な挿入を行なう際に、挿入操作
後に新規生成されたスライスの格納ページに空き領域が
あれば、新規生成されたスライスと直後のスライス間で
併合するインデクスページ間操作部をそなえることがで
きるほか(請求項13)、長大レコードに対する部分的
な削除を行なう際に、削除操作の開始点を含むスライス
と終了点をスライス間で併合するインデクスページ間操
作部をそなえることもできる(請求項14)。
【0031】さらに、長大レコード操作手段3bが、長
大レコードに対するサイズ変更操作が行なわれた後に、
当該長大レコードを構成する全てのスライスについての
スライスサイズの総和を演算する総和演算部と、総和演
算部において演算された総和に対する、スライスの個数
とページ単位サイズの積との比を演算する比演算部と、
比演算部において演算された比と、予め設定された比率
とを比較する比率比較部と、比率比較部における比率の
比較の結果、比演算部において演算された比が予め設定
された比率よりも小さい場合は、全てのスライスについ
てガベージコレクションを行なうように制御するガベー
ジコレクション制御部をそなえることができる(請求項
15)。
【0032】また、長大レコード操作手段3bが、メン
テナンス部3b−2において、インデクスに対する修正
をした後に、修正されたリーフインデクスページ内にお
ける、スライスサイズの総和を演算する総和演算部と、
総和演算部において演算された総和に対する、スライス
の個数とページ単位サイズの積との比率を演算する比演
算部と、比演算部において演算された比と、予め設定さ
れた比率とを比較する比率比較部と、比率比較部におけ
る比率の比較の結果、比演算部において演算された比が
予め設定された比率よりも小さい場合は、リーフインデ
クスページ内におけるインデクスに対応したスライスに
ついてガベージコレクションを行なうように制御するガ
ベージコレクション制御部をそなえることもできる(請
求項16)。
【0033】
【作用】上述の第1の発明では、図1に示すように、レ
コード操作手段2aにおいて、規定サイズ内のレコード
に関する要求を受けた場合は、通常レコード操作手段4
aにより、1個のレコード内でデータベース6aに対し
てアクセスを行なう。また、レコード操作手段2aにお
いて、規定のサイズ内に収まらないサイズであって、複
数のスライスにより構成された長大レコードに関する要
求を受けた場合は、長大レコード操作手段3aにより、
長大レコードについて、スライス単位に分解する。
【0034】そして、通常レコード操作手段4aによ
り、スライス単位に分解された長大レコード内での部分
的アクセスをデータベース6aとの間で行なうか、又は
インデクス操作手段5aにより、長大レコードのインデ
クスを生成又は更新し、長大レコードのアクセスをデー
タベース6aとの間で行なう。これにより、ファイル管
理装置1aでは、データベース6aに格納されるファイ
ルを管理することができる(請求項1,2)。
【0035】さらに、上述の第2の発明のファイル管理
装置1bにおいては、レコード操作手段2bでは、レコ
ード又はレコード内の部分的なデータに対して、レコー
ドの新規作成、抹消、フェッチ、レコード内の部分的な
データに対する途中挿入、途中削除、更新又は読み込み
のいずれかのレコード操作要求を受け付ける。また、デ
ータページ操作手段4bでは、レコード操作手段2bに
て受け付けた要求の対象となるデータが1ページ内に収
まるサイズの通常レコードである場合は、該要求の対象
としての新規レコード又はデータベース6b上で登録さ
れたレコード識別子で示される既存レコードを1ページ
に収まる通常レコードとして割り当てて、各種レコード
操作を行なうとともに、1個の通常レコード内における
部分的アクセスを行なう。
【0036】さらに、長大レコード操作手段3bでは、
レコード操作手段2bにて受け付けた要求の対象となる
データが、ページ内に収まらないサイズであって、複数
のスライスにより構成された長大レコードである場合
は、新規レコード又はデータベース6b上で登録された
長大レコードに対し、操作を受けるスライス単位に分解
してから、データページ操作手段4bに対して各種レコ
ード操作を要求する。
【0037】また、木インデクス操作手段5bでは、最
下位リーフレベルのインデクスでは各スライスそのもの
のサイズとスライスへのレコード識別子を格納し、その
上の階層のインデクスは下位のインデクスの表すサイズ
の総和を格納し、最上位のルートレベルのインデクスの
表すサイズの総和は長大レコード全体のサイズに一致
し、リーフレベルのインデクスの順番は、これらの対応
する各スライスのオフセットの順番に一致するようにイ
ンデクスを構成する。
【0038】また、長大レコード操作手段3bのアクセ
ス開始点決定制御部3b−1では、既存の長大レコード
に対する部分的なアクセスを行なう場合には、レコード
全体に対するオフセットより操作対象となるスライスの
開始点を、スライス間のアドレスリンクを順次ナビゲー
トする方法又は上記木インデクスより求める方法のいず
れかにより決定し、メンテナンス部3b−2では、スラ
イス単位の追加、削除に伴う上記木インデクスのメンテ
ナンスを木インデクス操作手段5bに要求する。
【0039】これにより、ファイル管理装置1bでは、
操作要求の対象のレコードに基づいて、データベース6
bに登録されるファイルを管理することができる(請求
項3,4)。また、データページ操作手段4bでは、レ
コード区別記録部により、ページ内の各レコードの通常
レコードと長大レコードとの区別を記録しておき、レコ
ード操作手段2bの操作要求部により、データページ操
作手段4bのレコード区別記録部からの既存のレコード
のレコード識別子に対応するレコードの区別に基づき、
通常レコードの場合にはデータページ操作手段4bに、
長大レコードの場合には長大レコード操作手段3bにそ
れぞれレコード操作を要求する(請求項5)。これによ
り、レコード操作手段2bでは、既存のレコードのレコ
ード識別子に対応するレコードの区別に応じてレコード
操作を要求することができる。
【0040】さらに、レコード操作手段2bの再登録操
作部により、既存の通常レコードに対し、操作に伴いレ
コード全体のサイズが1ページに収まらなくなる場合に
は、通常レコードを長大レコードとして登録し直してか
ら長大レコード操作手段3bにレコード操作を要求する
一方、既存の長大レコードに対し、操作を完了した後、
長大レコード全体のサイズが1ページに収まる場合に
は、このレコード操作の完了した長大レコードを通常レ
コードとして登録し直すこともできる(請求項6)。
【0041】また、長大レコード操作手段3bのアクセ
ス開始点決定制御部3b−1では、既存の長大レコード
に対する部分的なアクセスを行なうスライスの開始点を
決定する際に、木インデクスが構成されている場合は木
インデクス操作手段5bにより、無ければスライス自体
の持つアドレスリンクをナビゲートしてその開始点を決
定するように制御することができる(請求項7)。
【0042】この場合においては、アクセス開始点決定
制御部3b−1による制御に基づき、木エンデクス操作
手段5bによりアクセス開始点を決定する場合は、メン
テンナンス部3b−2では、長大レコード全体のサイズ
に対する予め決められたしきいサイズとの大小に基づい
て、木インデクスの作成と削除とを決定することができ
るほか(請求項8)、部分的なアクセスの要否により木
インデクスの作成又は削除することを決定することがで
き(請求項9)、さらに、部分的なアクセスが発生する
と、木インデクスを作成することもできる(請求項1
0)。
【0043】また、メンテナンス部3b−2では、長大
レコード全体のサイズに対する予め決められたしきいサ
イズとの大小関係、及び部分的なアクセスの要否により
木インデクスの作成又は削除することを決定することが
できる(請求項11)。さらに、木インデクス操作手段
5bのインデクスページ操作部では、長大レコード全体
に対するオフセットからスライスを検索する際に、木イ
ンデクスの最上位のルートインデクスページから最下位
のリーフインデクスページに至る各インデクスのサイズ
の積算が、所望のオフセットと一致又は直前となるイン
デクスを検索し、検索されたインデクスから逐次下位階
層のインデクスページに移って検索を行なうことによ
り、リーフインデクスページ上のインデクスにおいて当
該オフセットを含むスライスへのレコード識別子を取得
することもできる(請求項12)。
【0044】また、長大レコード操作手段3bのインデ
クスページ間操作部により、長大レコードに対する部分
的な挿入を行なう際に、挿入操作後に新規生成されたス
ライスの格納ページに空き領域があれば、新規生成され
たスライスと直後のスライス間で併合することができる
ほか(請求項13)、長大レコードに対する部分的な削
除を行なう際に、削除操作の開始点を含むスライスと終
了点をスライス間で併合することもできる(請求項1
4)。
【0045】さらに、長大レコードに対するサイズ変更
操作が行なわれた後に、総和演算部では、当該長大レコ
ードを構成する全てのスライスについてのスライスサイ
ズの総和を演算し、比演算部では、総和演算部において
演算された総和に対するスライスの個数とページ単位サ
イズの積との比を演算し、比率比較部では、比演算部に
おいて演算された比と予め設定された比率とを比較し、
ガベージコレクション制御部では、比率比較部における
比率の比較の結果、比演算部において演算された比が予
め設定された比率よりも小さい場合は、全てのスライス
についてガベージコレクションを行なうように制御する
ことができる(請求項15)。
【0046】また、メンテナンス部3b−2において、
インデクスに対する修正をした後に、総和演算部では、
修正されたリーフインデクスページ内における、スライ
スサイズの総和を演算し、比演算部では、総和演算部に
おいて演算された総和に対するスライスの個数とページ
単位サイズの積との比率を演算し、比率比較部では、比
演算部において演算された比と予め設定された比率とを
比較し、ガベージコレクション制御部では、比率比較部
における比率の比較の結果、比演算部において演算され
た比が予め設定された比率よりも小さい場合は、リーフ
インデクスページ内におけるインデクスに対応したスラ
イスについてガベージコレクションを行なうように制御
することもできる(請求項16)。
【0047】
【実施例】以下、図面を参照することにより本発明の実
施例について説明する。 (a)本発明の一実施例にかかるファイル管理装置の概
要の説明 図3は本実施例にかかるファイル管理装置が適用された
システムを示すブロック図であり、この図3に示すシス
テムは、複数の端末とデータベース等により構成され、
例えば端末利用者による文書編集処理を行なうための応
用プログラム等が起動されるワークステーションなどと
して機能するものであり、ファイル管理装置は、データ
ベースに登録されるファイルを管理するためのものであ
る。
【0048】ここで、この図3において、11は端末利
用者による処理内容等を表示するディスプレイ装置であ
り、12は端末利用者からのデータやコマンド等を入力
するためのキーボードである。また、13はキーボード
12からの入力やデータベース14に格納されているデ
ータに基づいて、例えば文書編集処理等の応用プログラ
ムを実行したり、プログラム実行の際に使用されるデー
タをデータベース14から読み込んで格納する中央処理
装置/主記憶装置であり、この中央処理装置/主記憶装
置13は、本実施例にかかるファイル管理装置としての
機能を有している。
【0049】また、データベース14は、中央処理装置
/主記憶装置13において起動される応用プログラムの
ための各種データ等をファイル毎に格納しておくもので
あり、このデータベース14では、データに関しての物
理的な入出力動作をページ単位に行なうようになってい
る。ここで、CPU及び主記憶装置13は、応用処理部
21,レコード操作部22,BLOBレコード操作部2
3,ツリーインデクス操作部24,データページ操作部
25及びページバッファ26をそなえており、それぞれ
の機能はソフトウェアにより実現することができる。
【0050】応用処理部21は、応用プログラム(アプ
リケーションプログラム)による処理を実行するもので
あり、本実施例においては、文書編集処理の応用プログ
ラムを実行するものである。レコード操作部(レコード
操作手段)22は、データベース14内のデータを応用
プログラム間でやり取りする際のデータの単位としての
レコード又はレコード内の部分的なデータに対する各種
レコード操作要求を受け付けるものであり、操作要求部
22a及び再登録操作部22bをそなえている。
【0051】例えば、レコード操作部22は、レコード
単位に対する操作要求として文書の新規作成(crea
te),抹消(remove)又はフェッチ(fetc
h)を、レコード内の部分的なデータに対する操作要求
として途中挿入(insert)、途中削除(cu
t)、更新(update),読み込み(read)を
受け付けるようになっている。
【0052】また、レコード操作部22の操作要求部2
2aは、データページ操作部25からのレコード識別子
(Record IDentifier,RID)で示される、既存のレコ
ードにおけるレコードの区別(割り当て)に基づき、通
常レコードの場合にはデータページ操作部25に、BL
OBレコード(長大レコード)の場合にはBLOBレコ
ード操作部23にそれぞれレコード操作を要求するもの
である。
【0053】さらに、再登録操作部22bは、既存の通
常レコードに対し、操作に伴いレコード全体のサイズが
1ページに収まらなくなる場合には、通常レコードを長
大レコードとして登録し直してからBLOBレコード操
作部23にレコード操作を要求する一方、既存の長大レ
コードに対し、操作を完了した後、長大レコード全体の
サイズが1ページに収まる場合には、このレコード操作
の完了した長大レコードを通常レコードとして登録し直
すものである。
【0054】また、データページ操作部(通常レコード
操作手段,データページ操作手段)25は、データを格
納するデータページを、ページ毎に操作するものであ
る。具体的には、レコード操作部22にて受け付けた要
求の対象となるデータが1ページ内に収まるサイズの通
常レコードである場合に、新規レコード又はデータベー
ス14上で登録されたレコード識別子で示される既存レ
コードが1ページに収まる通常レコードとしての各種レ
コード操作を行なうとともに、通常レコードにおける1
ページ内に収まる部分的アクセスを行なうものである。
【0055】さらに、データページ操作部25は、ペー
ジ内の各レコードの、通常レコードとBLOBレコード
との区別をRIDとして記録するレコード区別記録部2
5aをそなえている。また、BLOBレコード操作部
(長大レコード操作手段)23は、レコード操作部22
にて受け付けた要求の対象となるデータが、1ページ内
に収まらないサイズであって、複数のスライスにより構
成された長大レコードとしてのBLOB(binary large
objects)レコードである場合は、新規レコード又はデー
タベース14上で登録されたBLOBレコードに対し、
操作を受けるスライス単位に分解してから、データペー
ジ操作部25に対して各種レコード操作を要求するもの
であり、アクセス開始点決定制御部23a及びメンテナ
ンス部23bをそなえている。
【0056】なお、BLOBレコード操作部23は、図
17にて後述するように、総和演算部23c,比演算部
23d,比率比較部23e及びガベージコレクション
(Garbage Collection) 制御部23fをそなえ、データ
ベース14におけるスライスの空の領域を整理すること
もできる。ここで、アクセス開始点決定制御部23a
は、既存のBLOBレコードに対する部分的なアクセス
を行なう場合には、レコード全体に対するオフセットよ
り操作対象となるスライスの開始点を、スライス間のア
ドレスリンクを順次ナビゲートする方法又は後述するツ
リーインデクス操作部24のツリーインデクス情報で求
める方法のいずれかにより決定するものである。
【0057】また、メンテナンス部23bは、スライス
単位の追加、削除に伴うツリーインデクス情報のメンテ
ナンスをTreeインデクス操作部24に要求するものであ
る。さらに、ツリーインデクス(Tree Index) 操作部2
4は、ツリーインデクスを構成して、データベース14
におけるインデクスページに格納させるものであり、イ
ンデクスページ(Index Page)操作部24a及びインデク
スページ間操作部24bをそなえている。
【0058】また、既存のBLOBレコードに対する部
分的なアクセスを行なう場合には、このツリーインデク
ス操作部24で構成されたツリーインデクス情報に基づ
いててアクセスを行なうことができるようになってい
る。上述のツリーインデクスの構成としては、下位リー
フレベル(Leaf Level)のインデクスでは各スライスその
もののサイズとスライスへのレコード識別子を格納し、
その上の階層のインデクスは下位のインデクスの表すサ
イズの総和を格納し、最上位のルートレベル(Root Leve
l)のインデクスの表すサイズの総和は該長大レコード全
体のサイズに一致し、リーフレベルのインデクスの順番
は、これらの対応する各スライスのオフセットの順番に
一致するように構成することができる。
【0059】上述の構成により、本発明の一実施例にか
かるファイル管理装置では、以下に示すような処理が行
なわれる。即ち、レコード操作部22では、応用処理部
21の応用プログラムからのレコードに対するアクセス
要求を受け付ける。例えば、レコード単位のアクセス要
求として、新規作成(create),抹消(remo
ve)又はフェッチ(fetch)を受け付け、また、
部分的なアクセスとして、途中挿入(insert),
途中削除(cut),更新(update)又は読み込
み(read)を受け付ける。
【0060】さらに、レコード操作部22では、レコー
ドの新規作成時は、そのレコードに対する要求サイズに
より、通常レコードか又はBLOBレコードの区別を設
定する。また、レコード操作部22において受け付けた
アクセス要求が、既存のレコードに対するものならば、
データページ操作部25からのRIDに基づいて、その
レコードが通常レコードであるかBLOBレコードであ
るかを区別する。
【0061】ここで、レコード操作部22の操作要求部
22aでは、受け付けたアクセスに対応するレコード
が、通常レコードである場合は、直接データページ操作
部25に実際のレコード操作を要求する一方、BLOB
レコードである場合は、BLOBレコード操作部23に
実際のレコード操作を要求する。また、既存のレコード
が通常のレコードの場合でも、要求されたレコード操作
に伴ってレコード全体サイズが1サイズに収まらなくな
る場合には、再登録操作部22bにより既存の通常レコ
ードをBLOBレコードとして登録し直し、その後、操
作要求部22aによりBLOBレコード操作部23に実
際のレコード操作を要求する。
【0062】また、既存のBLOBレコードに対する操
作を完了した後、BLOBレコード全体が1ページに収
まるようになった場合には、再登録操作部22bによ
り、そのレコード操作完了後のBLOBレコードを通常
レコードとして登録し直す。なお、レコード操作部22
において受けたアクセス要求が既存の通常レコードに対
するものである場合は、RIDは、それ自体1個のレコ
ードのデータベース14における所在を示している。
【0063】これに対し、レコード操作部22において
受けたアクセス要求がBLOBレコードの場合には、R
IDは、BLOBレコードに対する管理情報のデータベ
ース14における所在を示している。また、データベー
ス14に所在する管理情報としては、複数のスライスを
ナビゲートする情報,ツリーインデクスに関する情報か
ら構成される。
【0064】データページ操作部25では、レコード操
作部22からの要求に基づいて、新規レコード又はRI
Dで示される既存レコードが1ページに収まる通常レコ
ードとしての割り当て、削除、更新等のレコード操作を
行なうほか、1個の通常レコード内における途中削除,
部分的な読み出し、及び1ページ内に収まる範囲の途中
挿入といったレコード内(スライス内)での部分的アク
セスを行なう。
【0065】BLOBレコード操作部23では、レコー
ド操作部22において受けたアクセス要求が、新規レコ
ードのBLOBレコードか又はRIDで示される既存レ
コードが複数ページに点在したスライスにまたがって格
納されるBLOBレコードに対するものである場合は、
そのBLOBレコードについて、操作を受けるスライス
単位に分解することにより、見かけ上個別の通常レコー
ドに対するアクセスを行なうことができる。
【0066】即ち、BLOBレコード操作部23のアク
セス開始点決定制御部23aでは、レコード全体に対す
るオフセットより操作対象となるスライスの開始点を、
スライス間のアドレスリンクを順次ナビゲートする方法
又はツリーインデクス操作部24により生成されたツリ
ーインデクス情報により求める方法のいずれかにより決
定する。
【0067】具体的には、アクセス開始点決定制御部2
3aでは、ツリーインデクス操作部24においてツリー
インデクスが作成されている場合は、ツリーインデクス
操作部24により部分的なアクセス対象となるスライス
の開始点を決定するが、作成されていない場合は、スラ
イス自体が有するアドレスリンクをナビゲートしてその
開始点を決定するのである。
【0068】スライスの開始点を上述のいずれかの方法
で決定すると、BLOBレコード操作部23では、開始
点以降のスライス単位のレコード操作については、アド
レスリンクをナビゲートして、スライス単位にデータペ
ージ操作部25によるアクセス処理を繰り返し実行させ
るとともに、スライス単位のデータの追加、削除に伴っ
て、アドレスリンクのメンテナンスを行なう。
【0069】さらに、ツリーインデクス操作部24にお
いてツリーインデクスが作成されている場合において
は、メンテナンス部23bでは、各スライス単位の追
加、削除、サイズ変更に関わる操作に伴い、ツリーイン
デクスをメンテナンスする。なお、メンテナンス部23
bでは、部分的なアクセスの要否や、BLOBレコード
全体のサイズに応じて、ツリーインデクスを新規に一括
生成したり、すでにあるツリーインデクスを消滅させ
る。
【0070】ここで、部分的なアクセスの要否は、この
BLOBレコードとして格納管理されるデータの種類毎
に事前に定義された辞書を参照したり、応用プログラム
から部分的なアクセス要求を受け付けることにより判断
し、BLOBレコード全体のサイズは、レコード操作後
にサイズが縮小した結果、通常レコードに変換される可
能性があるので、レコード操作後のサイズに基づいて判
断されている。
【0071】ところで、ツリーインデクス操作部24で
は、データベース14上のインデクスページにおける、
各スライスに対応したインデクスを操作する。このイン
デクスは、ページ当たりのインデクスの格納数をX,平
均格納率をγ(0.5≦γ≦1.0)とすれば、インデ
クスの階層の高さHはlogγX(n)となり、スライ
ス数の増加に対して動的にインデクスを増加させるとと
もに、アクセス性能の劣化を緩和することができる。
【0072】また、ツリーインデクス操作部24により
生成されるインデクスでは、各インデクスには対応する
スライスのサイズを格納し、最下位のリーフレベルのイ
ンデクスは、各スライスそのもののサイズを格納し、結
果として最上位のインデクスの表すサイズの総和が、B
LOBレコード全体のサイズに一致する。さらに、リー
フレベルのインデクスの順番は、これらに対応する各ス
ライスのオフセットの順番に一致しており、結果的に上
位のインデクスにより、下位のインデクスページをナビ
ゲートすることなく、少ないページアクセスで効率的に
BLOB全体に対するオフセットに対応したリーフレベ
ルのインデクスに行き着くことができる。
【0073】また、最上位階層(ルート)から最下位
(リーフ)に至るインデクスページ上の各インデクスの
サイズの積算が、所望のオフセットと一致又は直前とな
るインデクスを見つけ、そのインデクスから逐次下位階
層のインデクスページに移って検索することにより、リ
ーフインデクスページ(Leaf Index Page) 上のインデク
スに当該オフセットを含むスライスのRIDを取得す
る。これにより、BLOBレコード全体からのオフセッ
トからスライスを特定することができる。
【0074】インデクスページ操作部24aでは、イン
デクスページ単位の操作を行なう。即ち、インデクスを
検索する際は、ルートインデクスページ(Root Index Pa
ge)から下位のインデクスページに向かって逐次検索さ
れるが、インデクスをメンテナンスする際は、インデク
スページ間操作部24bを介して、リーフインデクスペ
ージから上位のインデクスページに対して順次変更が反
映される。
【0075】また、インデクスページ間操作部24bで
は、同一階層での前後のインデクスページ間のリンク
や、上位/下位インデクスページ間のリンクのメンテナ
ンスを行なう。ところで、ツリーインデクス操作部24
において、データページにおけるスライスの増減に伴っ
た、インデクスページにおけるインデクスの増減操作を
行なう際においては、同一階層内での前後のインデクス
ページ間でのインデクスの移動が伴うオーバーフローや
アンダーフロー、さらに前後のインデクスページ間であ
ふれたインデクスを収容できない場合のスプリットや、
極端に過疎になったインデクスページのマージを行な
う。
【0076】これにより、最初にインデクスページ操作
部24aがリーフレベルのインデクスに対するメンテナ
ンス要求を受け付けると、インデクスページ操作部24
aからインデクスページ間操作部24bに実際のインデ
クスに対するメンテナンス要求を行なう。メンテナンス
要求を受けたインデクスページ間操作部24bでは、前
記のインデクスページ間にまたがるメンテナンス(オー
バフロー,アンダーフロー,スプリット又はマージ)を
行ない、インデクスページ単位のインデクスの挿入,削
除はインデクスページ操作部24aに要求する。
【0077】さらに、インデクスページ間操作部24b
では、一つの階層に対するインデクスのメンテナンスが
完了すると、その変更内容を上位階層のインデクスペー
ジに反映する。例えば、下位階層のインデクスページの
総サイズが変更された場合には、その下位階層のインデ
クスページを代表する上位階層のインデクスのサイズ及
び当該上位階層のインデクスページの総サイズを更新す
る。
【0078】ところで、ページバッファ26では、デー
タベース14におけるファイル上のページアドレスに従
って、物理ページ単位の入出力,主記憶装置に読み込ま
れたページのバッファリング,新規ページのデータベー
ス14上への割り当て,データレコードやインデクスが
空になって不要になったページの、データベース14か
らの開放等を行なう。
【0079】このように、ツリーインデクス操作部24
により、BLOBレコードのインデクスを生成し、BL
OBレコードのアクセスをデータベース14との間で行
なうことができるので、管理すべきBLOBレコードの
最大レコードサイズの制約を無くすとともに、高速に部
分的アクセスを行なえる利点もある。また、再登録操作
部22aにより、操作に伴ってレコード全体のサイズが
変わっても、そのレコード全体のサイズに応じて、通常
レコード又はBLOBレコードとして登録することがで
きるほか、レコード区別記録部25aにより、ページ内
の各レコードの、BLOBレコードと通常レコードとの
区別を記録しておき、この区別に基づき、通常レコード
とBLOBレコードの操作との分岐制御を行なうことが
できるので、応用処理部21側において、通常レコード
とBLOBレコードの区別を意識する必要がなく、ファ
イル管理装置を、データ長を区別しない一貫性のあるイ
ンターフェイスとして機能させることができる利点があ
る。
【0080】さらに、BLOBレコード操作部23のア
クセス開始点決定制御部23aにより、レコード全体に
対するオフセットから操作対象となるスライスの開始点
を、スライス間のアドレスリンクを順次ナビゲートする
方法又はツリーインデクスから求める方法のいずれかに
より決定することができるので、レコードの規模とアク
セス形態に応じた最適なアクセス手段を選択することが
できる利点があるほか、ファイル管理装置を、応用処理
部21側においてデータベース側の環境を意識する必要
のない独立性のあるインターフェイスとして機能するこ
とができる利点もある。
【0081】また、ツリーインデクス操作部24では、
BLOBレコード全体のサイズの対する予め決められた
しきいサイズとの大小関係又は部分的なアクセスの要否
によりツリーインデクスを動的に増減して更新,作成又
は削除を行なうことができるので、データベースの領域
を有効に活用しながら、管理すべき長大レコードの最大
レコードサイズの制約を無くすとともに、高速に部分的
アクセスを行なえる利点もある。
【0082】(b)本実施例にかかるファイル管理装置
を実現するためのヘッダファイルのプログラミング例の
説明 上述のファイル管理装置としての機能をソフトウェアに
より構成する場合は、例えば、以下に示す図24〜図3
6に示すような、C言語のプログラムにより実現するこ
とができる。
【0083】即ち、これらの図24〜図36は、本実施
例にかかるファイル管理装置を実現するためのヘッダフ
ァイルのプログラミング例を示す図であり、図24は初
期の設定を行なうためのもので、図25はレコード操作
部22を実現するためのもので、図26はページバッフ
ァ26を実現するためのものである。また、図27はデ
ータベース14におけるデータページ内のヘッダ部分の
構造を設定するためのもので、図28はデータページ操
作部25を実現するためのもので、図29はデータペー
ジ内のレコードエントリ部分の構造を設定するためのも
のである。
【0084】さらに、図30はBLOB管理情報を設定
するためのもので、図31はBLOBレコード操作部2
3を実現するためのもので、図32はツリーインデクス
操作部24を実現するためのもので、図33はインデク
スページ内のスライス毎のインデクスの構造を設定する
ためのもので、図34はインデクスページ内のヘッダ部
の構造を設定するためのもので、図35はインデクスペ
ージ操作部24aを実現するためのもので、図36はイ
ンデクスページ間操作部24bを実現するためのもので
ある。
【0085】上述の図24〜図35に示すように、ファ
イル管理装置を実現するためのヘッダファイルが構成さ
れている場合においては、データベース14におけるデ
ータページ内においては、先頭に、図27のプログラム
により設定されたヘッダ部(DataHead)が格納
され、その直後にレコードエントリが可変数の配列とし
て格納される。なお、このレコードエントリの配列数と
しては、図27のプログラムにおける変数entryM
axが相当する。また、可変長となるレコードはデータ
ページの最後尾から格納され、レコードエントリとレコ
ード領域が衝突しない範囲で格納されるようになってい
る。
【0086】さらに、データベース14におけるインデ
クスページ内においては、先頭に、図34のプログラム
により設定されたヘッダ部(IndexHead)が格
納され、その直後に、図33のプログラムにより設定さ
れた個々のスライス毎のインデクス(IndexTup
le)が固定数の配列として格納される。なお、インデ
クスが固定数の配列として格納されているので、インデ
クスのページサイズも固定である。
【0087】また、図35のプログラムにより実現され
たインデクスページ操作部24a及び図36のプログラ
ムにより実現されたインデクスページ間操作部24b
は、図32のプログラムにより実現されたツリーインデ
クス操作部24から利用されるようになっている。 (c)本実施例にかかるファイル管理装置を文書編集シ
ステムに適用した場合の動作の概略の説明 次に、図3に示したファイル管理装置を文書編集システ
ムを起動する応用プログラムに適用した場合の動作につ
いて、図4に示すフローチャートを用いて以下に説明す
る。
【0088】即ち、この図4に示すように、利用者はキ
ーボード12からの入力指示とディスプレイ装置11へ
の表示により文書編集作業を進め、文書情報をデータベ
ース14から入出力する。まず、利用者は最初にキーボ
ードより新規/既存の文書指定を行ない(ステップA
1,ステップA2)、指定された文書が新規文書である
場合は、文書ヘッダ情報をcreate操作により新規
レコードとしてデータベース14に書き込む(ステップ
A3)。
【0089】また、指定された文書が既存文書である場
合は、その文書をデータベース14から取り出すために
fetch操作を行なう(ステップA4)。さらに、ペ
ージ単位の文書編集を行なう場合については(ステップ
A5)、キーボード12により編集すべき文書ページを
指示する(ステップA6)。これにより、データベース
14上において、BLOBレコード又は通常レコードで
構成された文書の当該文書ページに対応するオフセット
をlocate操作により位置付ける(ステップA
7)。
【0090】なお、この場合においては、単位文書ペー
ジ当たりの総バイト数を固定にすることにより、文書ペ
ージとオフセットとが一意に対応付けることができる。
また、locate操作により指示されたオフセットに
対応するBLOBレコード又は通常レコード内の単位文
書ページに対応する特定サイズ分だけをread操作に
よりデータベース14から読み込む(ステップA8)。
【0091】さらに、read操作によりデータベース
14から読み込まれた文書の内容をディスプレイ装置1
1に表示する(ステップA9)。以後、表示中の文書に
対する部分文字列,行の単位での修正作業等をキーボー
ド12で指示し(ステップA10)、これらに対応し
て、途中挿入insert(ステップA11),途中削
除cut(ステップA12),部分変更update
(ステップA13)といったデータベース14に対する
操作が行なわれる。
【0092】これにより、複数文書ページについて、上
述したような編集作業を繰り返すことができる。また、
文書を削除する指示に対しては、キーボード12により
不要文書を指定すると(ステップA14)、remov
e操作を行なうことにより、BLOBレコード又は通常
レコード単位で削除する(ステップA15)。
【0093】(d)本実施例にかかるファイル管理装置
の適用されたデータベース14の詳細な説明 図5は本実施例にかかるファイル管理装置の適用された
データベース14の詳細を示すブロック図であり、この
図5に示すように、14aはレコードエントリー部であ
り、このレコードエントリ部14aは、ページバッファ
26からのアクセス要求のあったレコードを特定するた
めのRIDを入力され、このRIDに対応するレコード
の所在(例えばページ内の相対バイト位置等)と通常レ
コードとBLOBレコードとの区別を記録するものであ
る。
【0094】なお、このレコードエントリ部14aにて
記録されたレコードの区別に基づき、ファイル管理装置
側においては、前述のデータページ操作部25のレコー
ド区別記録部25aにて記録されるようになっている。
なお、このRIDには、レコード毎に採番されたユニー
ク番号を用いたり、レコードアドレスを用いることがで
きる。この場合ではレコードアドレスを用いてRIDを
構成する。なお、RIDは、レコードを格納するページ
のアドレスとともに、そのページ内でのレコード追番と
により構成されている。
【0095】ここで、データベース14においては、デ
ータページ操作部25の操作に基づいて通常レコード及
びBLOBレコードを格納するデータページ14eと、
ツリーインデクス操作部24の操作に基づきツリーイン
デクス情報を格納するインデクスページ14dをそなえ
ている。なお、いずれのページ14d,14eにおいて
も、データベース14のファイル上では、一つの物理ペ
ージであり、ページのファイルとの入出力やバッファリ
ングはページバッファ操作部26で共通して行なわれる
ようになっている。。
【0096】また、インデクスページ14dに格納され
たツリーインデクスとデータページ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レコードにアクセスすること
ができるようになっている。
【0097】従って、1個のBLOBレコードのサイズ
は、以下に示す式(1)に示すように、各スライス14
−1〜14−n毎のサイズS1〜Snについての制御情
報領域を除いた総和Sとなる。 さらに、インデクスページ14dのツリーインデクス
は、3段の階層構成を有するインデクス群14d−1〜
14d−3により構成されており、各インデクス群14
d−1〜14d−3には対応するスライスのサイズが格
納されている。
【0098】即ち、最下位のリーフレベルのインデクス
群14d−3には、各スライスそのもののサイズを格納
し、その上の階層のインデクス群14d−2には、下位
のインデクスの表すサイズの総和を格納し、結果として
最上位のルートレベルのインデクス群14d−1の表す
サイズの総和が、BLOBレコード全体のサイズに一致
する。
【0099】さらに、リーフレベルのインデクス群14
d−3の順番は、これらに対応する各スライスのオフセ
ットの順番に一致しており、従って、上位のインデクス
群14d−2,14d−1を参照することにより、下位
のインデクス群14d−3をナビゲートすることなく、
少ないページアクセスで効率的にBLOB全体に対する
オフセットに対応したリーフレベルのインデクスを検索
できるようになっている。
【0100】ところで、それぞれのインデクス群14d
−1〜14d−3は、複数のインデクスページにより構
成することができる。さらに、各々のインデクス群14
d−1〜14d−3を構成するインデクス1個は、例え
ば、スライスに対するRIDで8バイト、スライスのサ
イズで4バイト、更に上位から下位へのインデクスへの
ページアドレスとして4バイトの合計16バイトからな
り、1ページのサイズを4KBとすると、約250個の
インデクスを1インデクスページに収容することができ
る。
【0101】このような構成により、レコードエントリ
部14aにおいて記録された内容に基づき、アクセス要
求のあったレコードが通常レコードである場合は、その
レコードは一つのページ上に存在し、且つそのレコード
の所在位置がレコードエントリの記録から直接示される
(図5における(a)参照)。また、アクセス要求のあ
ったレコードが、複数ページ上に分散されたスライス1
4−1〜14−nにより構成されるBLOBレコードで
ある場合は、レコードエントリ部14aにおいて記録さ
れている所在位置情報は、アクセス要求のあったBLO
BレコードについてのBLOB管理情報14cを示して
いる(図5における(b)参照)。
【0102】また、このBLOB管理情報14cによ
り、複数ページ上に分散されたスライスの内の先頭のも
のへの位置が示されるとともに、このBLOBレコード
に対応するツリーインデクスが生成されている場合は、
このBLOBレコードを構成する分散されたスライスへ
のツリーインデクスへのトップ(ルート)が示されてい
る。
【0103】ここで、上述のBLOB管理情報14cに
基づいて、データページ14e上のデータにアクセスす
る際においては、スライス間のアドレスリンクを順次ナ
ビゲートする方法か又はインデクスページ14dに生成
されたツリーインデクスによりアクセスする方法を採用
する。具体的には、BLOBレコードを構成するスライ
スの個数が少なかったり、部分的なアクセスを要しない
場合にはスライス間のアドレスリンクを順次ナビゲート
する方法を採用し、インデクスページ14dにツリーイ
ンデクスが生成されていたり、部分的なアクセスを要す
る場合は、ツリーインデクスによりアクセスする方法を
採用する。
【0104】ここで、上述のツリーインデクスを用いた
データアクセスを行なう方法を採用する場合において
は、BLOB管理情報14cからのBLOBレコード全
体からのオフセットに基づいて、最上位階層(ルート)
から最下位(リーフ)に至るインデクスページ上の各イ
ンデクスのサイズの積算が所望のオフセットと一致又は
直前となるインデクスを見つけ、そのインデクスから逐
次下位階層のインデクスページに移っていくことによ
り、リーフインデクスページ上のインデクスに当該オフ
セットを含むスライスのRIDを取得することができ、
これにより、BLOBレコード全体からのオフセットか
らスライスを特定することができる。
【0105】例えば、i番目のスライス14−iに対す
る部分的なアクセスを必要とする場合、このi番目のス
ライスは、応用処理部21からのBLOBレコード全体
におけるオフセットで特定される。ここで、このオフセ
ットに基づいてアクセスする際に、ツリーインデクスを
利用した方法を用いた場合においては、上述したよう
に、ルートレベルのインデクス群14d−1からオフセ
ット1が求まり、インデクス群14d−2からオフセッ
ト2が求まり、リーフレベルのインデクス群14d−3
からオフセット3が求まる。
【0106】これにより、目標とするオフセットのデー
タの内容を含むスライス14−iを検索することがで
き、巨大なBLOBレコード全体の内の1部分に対する
アクセスを高速に実現することができる。なお、アクセ
ス要求のあったBLOBデータについて、実際に存在す
るスライスが数ページ(例えば10ページ)の場合や、
常に先頭から順次読み込むような目的の場合(例えばデ
ータベース14が単なる大きなデータの格納庫であった
り、膨大なメモリ空間に一括して読み込むか、読み込め
る範囲のサイズまでしかデータ量が増大しないものの場
合)は、ツリーインデクスによらずにスライス間のアド
レスリンクを順次ナビゲートしてアクセスを行なう。
【0107】これにより、BLOBレコード全体に対す
るサイズや部分的なレコードのアクセスの要否によりア
クセス方法を選択して、ツリーインデクスの生成/削除
をを選択することができるので、インデクスページ14
eを生成するのに必要なデータベース14上の記憶領域
や、インデクスページ14eのためのメンテナンス時間
の冗長性を抑止することができる。
【0108】(e)データベース上のレコードのサイズ
変更に伴った状態遷移の説明 また、データベース14上のレコードは、前述の(b)
にて示したような文書ファイルについての修正等が行な
われると、データベース14上では、その修正等に応じ
て図7に示すように状態が遷移するようになっている。
即ち、文書ファイルにおけるレコードの新規作成(cr
eate,図7の状態B1参照)に対しては、初回のレ
コードサイズが1物理ページに収まれば通常レコードと
して登録され(図7の状態B1から状態B2)、収まら
なければBLOBレコードとして登録される(状態B1
から状態B3)。
【0109】また、通常レコードに対して、その後の途
中挿入(insert)を行なった結果、レコードサイ
ズが1物理ページに収まらなくなった場合は、BLOB
レコードとして再登録され(状態B2から状態B3)、
逆に、BLOBレコードに対し、途中削除(cut,図
7の状態B4参照)を行なった結果、レコードサイズが
1物理ページに収まれば通常レコードとして再登録され
る(状態B3からB2)。
【0110】さらに、状態B3において登録されている
BLOBレコードに対して、途中挿入(insert)
により更にレコードサイズが増加するか、既に新規作成
(create)段階で充分大きなレコードサイズにな
っている場合か、又は途中挿入(insert)、途中
削除(cut)、途中更新(update)、途中読み
込み(read)といった部分的なアクセスが必要であ
る場合は、このBLOBレコードに対し、ツリーインデ
クス操作部24による操作に基づいて、前述の図6に示
すようなツリーインデクスを生成する(状態B3から状
態B5)。
【0111】その後、逆にBLOBレコードに対し途中
削除(cut)を行なった結果、レコードサイズが充分
小さくなるので、ツリーインデクスはオーバーヘッドと
なり、再びツリーインデクスは不要とみなされる。これ
により、インデクスページ14eに生成されたツリーイ
ンデクスを削除される(状態B5から状態B3)。上述
のツリーインデクスの生成、削除を行なう際の判断は、
レコード操作部22において、BLOBレコードのサイ
ズの基準値に基づいて行なっているが、このサイズの基
準値は、インデクスページ14eのサイズが、最小のイ
ンデクス構成で冗長にならないような全スライスのサイ
ズの総和の閾値として設定されている。
【0112】なお、最小のインデクス構成であるという
条件は、例えばルートとリーフが一致するとともに1個
のインデクスページから成り、且つ1ページ内の格納率
が0.5とすることができる。例えば、前述の図6にお
けるツリーインデクスの場合においては、1個のインデ
クスページでは250個のインデクスを格納できるの
で、その0.5の格納率の125個以上のインデクスを
保つようなスライス数(=インデクス数)であり、その
数分のスライスサイズの総和となる。
【0113】即ち、ガベージコレクション制御によりス
ライスが密に詰められた状態で、125個分のインデク
スに対応したページの総サイズを閾値としてのサイズと
するので、以下に示す式(2)に基づき、500KBと
することができる。 4KB×125=500KB …(2) なお、レコードの削除/抹消(remove)を行なう
際は、最後のレコードサイズに依存して、BLOBレコ
ードと通常レコードの両方の状態から遷移しうる。ま
た、ツリーインデクスが生成されている状態であって
も、レコード削除(remove)に伴い、スライスの
削除が発生し、その結果の中間の状態遷移としてTre
eインデクス無しのBLOBレコードへの状態遷移とな
る(図7における状態B5から状態B3)。
【0114】従って、ページ内の各レコードの、BLO
Bレコードと通常レコードとの区別を記録しておき、こ
の区別に基づき、通常レコードとBLOBレコードの操
作との分岐制御を行なうことができるので、応用処理部
21側において、通常レコードとBLOBレコードの区
別を意識する必要がなく、ファイル管理装置を、データ
長を区別しない一貫性のあるインターフェイスとして機
能させることができる。
【0115】(f)本実施例におけるファイル管理装置
による、レコードの新規作成の際の動作の詳細な説明 図8はレコードの新規作成(create)を行なう際
の動作を詳細に説明するためのフローチャートであり、
この図8に示すように、まず新規作成に要求されるレコ
ードサイズがページ内に収まるか否かのチェックを行な
い(ステップC1)、このチェック結果に応じて、デー
タベース14に格納される際のレコードの種類としての
通常レコード又はBLOBレコードのいずれかが選択さ
れる(ステップC2)。
【0116】ここで、レコードサイズが1物理ページに
収まらず、BLOBレコードとして格納することが選択
された場合は(ステップC2から“BLOBレコード”
ルート)、BLOBレコード操作部23において、最初
にBLOBレコードに関わる管理情報を作成するととも
に、データページ操作部25の操作により、この管理情
報をあたかも通常レコードの如く1物理ページ内に割り
当てる(ステップC3)。
【0117】その後、実際のデータを格納すべきレコー
ドは、データページ操作部25の操作により、スライス
形式で複数ページ間に分割して格納される。スライス単
位の格納は、あたかも1個1個の通常レコードの如くデ
ータページ操作で格納されるが、スライス毎には、制御
情報として、スライス間のRIDによるリンク、そのス
ライスの持つデータのサイズが付加されている(ステッ
プC4)。
【0118】次に、BLOBレコード操作部23aにお
いて、ツリーインデクス要のフラグが立っているか否か
を判定する(ステップC6)。この段階において、BL
OBレコード既に巨大化しており、BLOBレコード操
作部23aにおいて、ツリーインデクス要のフラグが立
っている場合は(ステップC6の“要”ルート)、ツリ
ーインデクス操作部24の操作により、ツリーインデク
スを一括作成する(ステップC7)。
【0119】なお、部分的なアクセスの必要性がある場
合においても、ツリーインデクスを作成することができ
るが、新規作成段階では、実際の部分的なアクセス発生
をもってその必要性の判断を行なう場合はない。このよ
うに作成された複数スライスの先頭のスライスへのRI
Dや、Treeンデクスのルートインデクスページへの
ページアドレスといったBLOBレコードに関わる情報
を、前述のBLOB管理情報に返却記録する(ステップ
C8)。
【0120】これにより、データベース14におけるペ
ージ内に割り当てられた各領域への所在を示すレコード
エントリには、そのBLOBレコードの所在と共に、レ
コードの種類として、通常レコード、BLOB管理情
報、スライスの区別が記録されている。また、ステップ
C2において、レコードサイズが1物理ページに収まる
通常レコードである場合は、単にデータページ操作部2
5により、1ページ内にレコードを格納し、RIDをデ
ータベース14に返却する(ステップC9,ステップC
10)。
【0121】従って、新規作成されたレコードに対する
RIDを返却した結果、通常レコードならばそのRID
はそのままその領域を示し、BLOBレコードならばそ
のRIDはBLOB管理情報を示すことになる。従っ
て、操作に伴ってレコード全体のサイズが変わっても、
そのレコード全体のサイズに応じて、通常レコード又は
BLOBレコードとして登録することができるので、応
用処理部21側において、通常レコードとBLOBレコ
ードの区別を意識する必要がなく、ファイル管理装置
を、データ長を区別しない一貫性のあるインターフェイ
スとして機能させることができる。
【0122】(g)本実施例におけるファイル管理装置
による、レコードの途中挿入の際の動作の詳細な説明 図9〜図12はレコードの途中挿入(insert)を
行なう際のレコードの操作の一例とともに、その後の隣
接ページのマージの様子を示す図である。例えば、図9
に示すように、n個のスライス14−1〜14−nから
なるBLOBレコードに対して、i番目のスライス14
−iの途中となるオフセットXから、rバイトのデータ
30の挿入を行なう場合においては、まず、目標オフセ
ット位置への位置付け(locate)及び押し出され
るデータの有無の判定を行なう。
【0123】即ち、図10に示すように、挿入の開始点
となるオフセットが、i番目のスライス14−iの途中
に位置付けられると、このオフセット位置Xからrバイ
ト分のデータ30が挿入されるが、もともとスライス1
4−iは空き領域がなかったため、挿入されるべき領域
にあるrバイト分のデータは押し出される。この場合の
ように、押し出されるデータがある場合は、新規スライ
ス領域31を確保しておき、押し出されるデータをその
新規スライス領域31に退避させてから、スライス14
−iにおける空いた領域に、新データを挿入する。
【0124】即ち、図11に示すように、オフセット位
置Xからrバイト分のデータ30の挿入に伴い、i番目
のスライス14−i内に存在するデータrバイト分のデ
ータが、新規に設定されたページ上の新たなスライス領
域31として押し出され、元のi番目のスライス14−
iの直後のi+1番目だったスライス14−(i+1)
のデータが、新規生成されたスライス領域の後ろにマー
ジされる。
【0125】ここで、図12に示すように、i+1番目
だったスライス14−(i+1)内の全てのデータが、
新規スライス上にマージできれば、i+1番目だったス
ライスは空となり削除することができ、新規スライスを
新しいi+1番目のスライス14−(i+1)とするこ
とができる。従って、挿入操作の直後に隣接するページ
とのマージを行なうことにより、挿入操作によるスライ
スの増加を抑制することができ、アクセス性能の劣化を
防止することができる。
【0126】(h)本実施例におけるファイル管理装置
による、レコードの途中削除の際の動作の詳細な説明 図13〜図16はレコードの途中削除(cut)を行な
う際のレコードの操作の一例とともに、その後の隣接ペ
ージのマージの様子を示す図である。即ち、図13に示
すように、n個のスライス14−1〜14−nからなる
BLOBレコードに対し、i番目のスライス14−iの
途中となるオフセットXから、r(=k+m+n)バイ
トの途中削除を行なう場合においては、最初に削除の開
始点となるオフセットへの位置付け(locate)を
行なって、i番目のスライス14−iの途中に位置付け
る。
【0127】そして、図14に示すように、スライス1
4−i〜14−(i+2)内のデータ削除を行ない、目
標全ての削除が終わるまで行なう。即ち、スライス14
−iにおけるオフセットXから最終位置までのkバイ
ト,スライス14−(i+1)における先頭位置から最
終位置までのmバイト及びスライス14−(i+2)に
おける先頭のnバイトを削除する。
【0128】次に、図15に示すように、空スライス1
4−(i+1)を削除し、スライス14−iとスライス
14−(i+2)との間のスライス間のリンクを結び直
すとともに、スライス14−(i+2)内の使用部分
(先頭からnバイトの位置から最終位置までの部分)
を、当該スライス14−(i+2)の先頭部分に詰め直
す。
【0129】最後に、図16に示すように、元のi番目
のスライス14−iの開いたスペース(オフセットXか
ら最終位置までのkバイト)に、新たなi+1番目のス
ライス14−(i+1)(削除前にi+2番目のスライ
ス14−(i+2)だったもの)のデータをマージし、
残ったスライス14−(i+1)のデータについては、
前述の図15におけるスライス14−(i+2)と同様
に、先頭位置に詰め直す。
【0130】これにより、削除した結果のページ内に過
疎なスライスの増加を抑制することができ、アクセス性
能の劣化を抑制することができる。なお、新たなi+1
番目のスライス14−(i+1)内でのデータの再度の
マージの際に、新たなi+1番目スライス14−(i+
1)のデータが全てi番目のスライス14−i内に収ま
れば、この新たなi+1番目のスライスも削除されるこ
とになる。
【0131】(i)第1のガベージコレクションの態様
の説明 ところで、本実施例にかかるファイル管理装置のBLO
Bレコード操作部23は、詳細には図17に示すよう
に、総和演算部23c,比演算部23d,比率比較部2
3e及びガベージコレクション制御部23fをそなえて
おり、ツリーインデクス操作部24においてツリーイン
デクスを生成していない場合において、データベース1
4におけるスライスの空の領域を整理するガベージコレ
クション制御を行なうことができるようになっており、
このため、BLOBレコード操作部23は、詳細には図
17に示すように、総和演算部23c,比演算部23
d,比率比較部23e及びガベージコレクション制御部
23fをそなえている。
【0132】ここで、総和演算部23cは、BLOBレ
コードに対するサイズ変更操作が行なわれた後に、当該
BLOBレコードを構成する全てのスライスについての
スライスサイズの総和を演算するものである。また、比
演算部23dは、総和演算部において演算された総和に
対する、スライス14−1〜14−nの個数nとページ
単位サイズPの積Dとの比S/Dを演算するものであ
り、比率比較部23eは、比演算部23dにおいて演算
された比S/Dと、予め設定された比率αとを比較する
ものである。
【0133】さらに、ガベージコレクション制御部23
fは、比率比較部23eにおける比率の比較の結果、比
演算部23dにおいて演算された比S/Dが予め設定さ
れた比率αよりも小さい場合は、データベース14にお
ける全てのスライス14−1〜14−nについてガベー
ジコレクションを行なうように、データページ操作部2
5を介して制御するものである。
【0134】このような構成により、本発明のファイル
管理装置では、ツリーインデクス操作部24においてツ
リーインデクスを生成しておらず、nextリンクのみ
でBLOBデータが管理されている場合は、以下に示す
ようにガベージコレクションを行なっている。ところ
で、個々のスライスが1ページ丸々のサイズ分のデータ
を持てば、BLOBレコード全体のサイズを満足すべき
最小スライス数とすることができる。例えば図18に示
すように、スライス14−1〜14−nにデータが格納
されている場合においては、スライス14−1〜14−
nの個数nとページ単位サイズPの積D(=n×P)
が、管理することができるBLOBレコードの最大サイ
ズである。
【0135】ここで、スライス14−1〜14−nに格
納されているデータの総和が所定の格納率αを下回った
場合は、図18〜図20に示すように、BLOBレコー
ドを構成する全てのスライスに対し、ガベージコレクシ
ョン制御を行なうことができる。即ち、図18に示すよ
うに、BLOBレコードに対するサイズ変更操作が行な
われた後に、総和演算部23cでは、当該BLOBレコ
ードを構成する全てのスライス14−1〜14−nにつ
いてのスライスサイズの総和Sを、前述の式(1)に従
って演算する。
【0136】比演算部23dでは、総和演算部23cに
おいて演算された総和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についてガベージコレクションを行
なうように制御する。
【0137】ここで、全てのスライス14−1〜14−
nについてガベージコレクションを行なう際において
は、例えば図19におけるスライス14−1〜14−3
の間のように、隣り合うスライス間において、自スライ
スとnextアドレスで続くnextスライスとの間で
マージすることが行なわれる。即ち、例えばスライス1
4−1の空き領域にスライス14−2のデータS2 及び
スライス14−3のデータの一部S3-1 がマージされ
(図19の参照)、スライス14−2のように、スラ
イス14−2が空になると、スライス削除が発生する
(図19の参照)。
【0138】なお、スライス14−3のように、スライ
ス内のデータが空でないものについては、残ったデータ
3-2 を当該スライス14−3における先頭部分に詰め
直す(図19の参照)。以後、続くスライス14−4
〜14−nについても、上述の〜における処理と同
様のガベージコレクションを行なうことにより、図20
に示すような総スライス数がm(<n)のスライスとす
ることができるが、この総スライス数の値mは、以下に
示す式(3)により表すことができる。
【0139】 m=CEIL(S/P);CEILは小数点以下を切り上げる関数 …(3) 従って、BLOBレコード操作部23により、操作に伴
って長大レコード全体のサイズが変わった場合において
は、データベース14におけるスライスの空の領域を整
理して、スライス数を減少させることができるので、デ
ータベース14の領域を有効に活用することができる利
点がある。
【0140】(j)第2のガベージコレクションの態様
の説明 上述の(i)で詳述した第1のガベージコレクションの
態様においては、ツリーインデクス操作部24において
ツリーインデクスを生成していない場合に行なわれるガ
ベージコレクション制御について説明したが、第2のガ
ベージコレクションの態様としては、ツリーインデクス
が生成されている場合のガベージコレクション制御を行
なうこともできる。
【0141】また、この場合においても、上述の(i)
における図17に示すように、BLOBレコード操作部
23は、総和演算部23c,比演算部23d,比率比較
部23e及びガベージコレクション制御部23fをそな
えているが、それぞれの機能は上述の(i)におけるも
のと異なる。即ち、総和演算部23cは、メンテナンス
部23bにおいて、インデクスに対する修正をした後
に、修正されたリーフインデクスページ内における、ス
ライスサイズの総和を演算するものであり、比演算部2
3dは、総和演算部23cにおいて演算された総和に対
する、スライスの個数とページ単位サイズの積との比率
を演算するものである。
【0142】また、比率比較部23eは、比率演算部2
3dにおいて演算された比と、予め設定された比率とを
比較するものであり、ガベージコレクション制御部23
fは、比率比較部23eにおける比率の比較の結果、比
演算部23dにおいて演算された比が予め設定された比
率よりも小さい場合は、リーフインデクスページ内にお
けるインデクスに対応したスライスについてガベージコ
レクションを行なうように制御するものである。
【0143】このような構成により、本発明のファイル
管理装置では、ツリーインデクス操作部24により、ツ
リーインデクスが構成されているBLOBレコードに対
するガベージコレクションの動作について、図21〜図
23を用いて以下に説明する。即ち、スライス14−1
〜14−Nに対する修正を行なうとともに、メンテナン
ス部23bにおいてインデクスに対する修正を行なうこ
とにより、図21に示すようなインデクス15及びこの
インデクス15に対応するスライス14−1〜14−N
となった場合においては、以下に示すようにガベージコ
レクションを行なうか否かを判定する。
【0144】即ち、総和演算部23cでは、修正された
リーフインデクスページ15内におけるスライスサイズ
の総和Sを演算し、比演算部23dでは、総和演算部2
3cにおいて演算された総和Sに対する、リーフインデ
クスページ15内におけるスライスの個数Nとスライス
ページ単位サイズPの積D(=N×P)との比S/Dを
演算する。
【0145】ここで、比率比較部23eでは、比演算部
23dにおいて演算された比S/Dと予め設定された比
率とを比較し、ガベージコレクション制御部23fで
は、比率比較部における比率の比較の結果、比演算部2
3dにおいて演算された比が予め設定された比率α(例
えばα=0.5)よりも小さい場合は、リーフインデク
スページ15内におけるインデクスに対応したスライス
14−1〜14−Nについてガベージコレクションを行
なうように制御する。
【0146】即ち、図22に示すように、リーフインデ
クスページ15内のスライス14−1〜14−Nについ
てガベージコレクションを行なう際においても、前述の
図19におけるスライス14−1〜14−3の間のよう
に、隣り合うスライス間において、自スライスとnex
tアドレスで続くnextスライスとの間でマージする
ことが行なわれる。
【0147】ここで、メンテナンス部23bでは、上述
の隣り合うスライス間のマージ処理を行なう毎にインデ
クスページのメンテナンスを行なっている。即ち、例え
ばスライス削除が生じた場合は、対応するインデクスも
削除する。具体的には、スライス14−1の空き領域に
スライス14−2のデータS2 がマージされ(図22の
参照)、空になったスライス14−2が削除されると
(図22の参照)、対応するリーフインデクスページ
15におけるインデクス15A(サイズS2 が格納され
ている領域)が削除され、インデクスの詰め直しが行な
われる(図22の参照)。
【0148】以後、続くスライス14−3〜14−Nに
ついても、上述の図22における〜における処理と
同様のガベージコレクションを行なうことにより、図2
3に示すような総スライス数がm(≦n)のスライスと
することができる。これにより、ツリーインデクスを構
成するリーフインデクスページ15内で、ガベージコレ
クションを行なう対象となるスライス群の範囲をスライ
ス14−1〜14−Nに限定することができる。
【0149】従って、BLOBレコード操作部23によ
り、操作に伴って長大レコード全体のサイズが変わった
場合においては、データベース14におけるスライスの
空の領域を整理して、スライス数を減少させることがで
きるので、データベース14の領域を有効に活用するこ
とができる利点がある。また、ツリーインデクス操作部
24によりツリーインデクスが生成される場合のよう
に、詰めなおしの対象となるスライス数が多い場合にお
いて、ガベージコレクションを行なう対象となるスライ
ス群の範囲を限定することにより、データの入出力負荷
を抑制することもできる。
【0150】また、各スライス14−1〜14−Nの合
計サイズは、ガベージコレクションを行なった後も変わ
らないので、総管理サイズも変わらず、仮にツリーイン
デクスが複数段により構成されている場合においても、
リーフインデクスページのメンテナンス時の、対応する
上位インデクスページのメンテナンスを容易にすること
ができる。
【0151】(j)その他 上述の(i),(j)では、スライスの理想サイズに対
する格納率に基づいてガベージコレクションを行なうか
否かを判定しているが、本発明によればこれに限定され
ず、理想スライス数に基づいて上述の判定を行なうこと
ができ、このようにしても前述の(i),(j)と同様
の作用効果を得ることができる。
【0152】この場合においては、現在保有サイズ(B
LOBレコード全体のサイズ)をSとし、スライスペー
ジ単位サイズをPとすると、理想のスライス数、即ち最
小のスライス数Mを、以下に示す式(4)のように設定
する。 M=CEIL(S/P);CEILは小数点以下を切り上げる関数 …(4) これにより、上述の式(4)にて得られた理想スライス
数Mを用いて、実際のスライス数Nに対する理想スライ
ス数Mとの比率N/Mと所定の閾値αとを比較し、この
比較結果に基づいてガベージコレクションを行なうか否
かを判定するのである。
【0153】
【発明の効果】以上詳述したように、請求項1〜3,1
2記載の本発明によれば、ツリーインデクス操作手段に
より、長大レコードのインデクスを生成し、長大レコー
ドのアクセスをデータベースとの間で行なうことができ
るので、管理すべき長大レコードの最大レコードサイズ
の制約を無くすとともに、高速に部分的アクセスを行な
える利点もある。
【0154】また、請求項4,6記載の本発明によれ
ば、再登録操作部により、操作に伴ってレコード全体の
サイズが変わっても、そのレコード全体のサイズに応じ
て、通常レコード又は長大レコードとして登録すること
ができるので、応用プログラム側において、通常レコー
ドとBLOBレコードの区別を意識する必要がなく、フ
ァイル管理装置を、データ長を区別しない一貫性のある
インターフェイスとして機能させることができる利点も
ある。
【0155】さらに、請求項5記載の本発明によれば、
データページ操作手段のレコード区別記録部により、ペ
ージ内の各レコードの、長大レコードと通常レコードと
の区別を記録しておき、この区別に基づき、通常レコー
ドと長大レコードの操作との分岐制御を行なうことがで
きるので、前述の請求項4,6の場合と同様の利点があ
る。
【0156】また、請求項7記載の本発明によれば、長
大レコード操作手段のアクセス開始点決定制御部によ
り、レコード全体に対するオフセットより操作対象とな
るスライスの開始点を、スライス間のアドレスリンクを
順次ナビゲートする方法又は上記木インデクスより求め
る方法のいずれかにより決定することができるので、レ
コードの規模とアクセス形態に応じた最適なアクセス手
段を選択することができるほか、ファイル管理装置を、
応用プログラム側においてデータベース側の環境を意識
する必要のない独立性のあるインターフェイスとして機
能することができる利点もある。
【0157】さらに、請求項8〜11記載の本発明によ
れば、ツリーインデクス操作手段では、長大レコード全
体のサイズの対する予め決められたしきいサイズとの大
小関係又は部分的なアクセスの要否によりツリーインデ
クスを動的に増減して更新,作成又は削除を行なうこと
ができるので、データベースの領域を有効に活用しなが
ら、管理すべき長大レコードの最大レコードサイズの制
約を無くすとともに、高速に部分的アクセスを行なえる
利点もある。
【0158】また、請求項13〜16記載の本発明によ
れば、長大レコード操作手段により、操作に伴って長大
レコード全体のサイズが変わった場合においては、デー
タベースにおけるスライスの空の領域を整理して、スラ
イス数を減少させることができるので、前述の場合と同
様に、データベースの領域を有効に活用することができ
る利点がある。
【0159】さらに、請求項16記載の本発明によれ
ば、長大レコード操作手段により、ガベージコレクショ
ンを行なう際に、詰めなおしの対象となるスライス数が
多い場合において、ガベージコレクションを行なう対象
となるスライス群の範囲を限定することにより、入出力
負荷を抑制することができる利点もある。
【図面の簡単な説明】
【図1】第1の発明の原理ブロック図である。
【図2】第2の発明の原理ブロック図である。
【図3】本実施例にかかるファイル管理装置が適用され
たシステムを示すブロック図である。
【図4】本実施例にかかるファイル管理装置を文書編集
システムを起動する応用プログラムに適用した場合の動
作を説明するためのフローチャートである。
【図5】本実施例にかかるファイル管理装置の適用され
たデータベースの詳細を示すブロック図である。
【図6】本実施例にかかるデータベースにおけるスライ
スとインデクスの関係を示す図である。
【図7】本実施例にかかるデータベースの状態遷移を説
明するための図である。
【図8】本実施例にかかるデータベースにおけるレコー
ドの新規作成を行なう際の動作を詳細に説明するための
フローチャートである。
【図9】本実施例にかかるデータベースにおけるレコー
ドの途中挿入を行なう際のレコードの操作の一例ととも
に、その後の隣接ページのマージの様子を示す図であ
る。
【図10】本実施例にかかるデータベースにおけるレコ
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図11】本実施例にかかるデータベースにおけるレコ
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図12】本実施例にかかるデータベースにおけるレコ
ードの途中挿入を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図13】本実施例にかかるデータベースにおけるレコ
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図14】本実施例にかかるデータベースにおけるレコ
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図15】本実施例にかかるデータベースにおけるレコ
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図16】本実施例にかかるデータベースにおけるレコ
ードの途中削除を行なう際のレコードの操作の一例とと
もに、その後の隣接ページのマージの様子を示す図であ
る。
【図17】本実施例にかかるファイル管理装置のBLO
Bレコード操作部を詳細に示すブロック図である。
【図18】本実施例にかかるファイル管理装置におけ
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
【図19】本実施例にかかるファイル管理装置におけ
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
【図20】本実施例にかかるファイル管理装置におけ
る、ツリーインデクスを生成していない場合におけるガ
ベージコレクション制御を説明する図である。
【図21】ツリーインデクスが構成されている場合にお
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
【図22】ツリーインデクスが構成されている場合にお
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
【図23】ツリーインデクスが構成されている場合にお
けるBLOBレコードに対するガベージコレクション制
御を説明する図である。
【図24】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図25】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図26】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図27】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図28】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図29】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図30】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図31】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図32】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図33】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図34】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図35】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図36】本実施例にかかるファイル管理装置を実現す
るためのヘッダファイルのプログラミング例を示す図で
ある。
【図37】一般的なファイル管理装置によるBLOBレ
コードのアクセス手法を示す図である。
【図38】一般的なファイル管理装置によるBLOBレ
コードのアクセス手法を示す図である。
【符号の説明】
1a,1b ファイル管理装置 2a,2b レコード操作手段 3a,3b 長大レコード操作手段 3b−1 アクセス開始点決定制御部 3b−2 メンテナンス部 4a 通常レコード操作手段 4b データページ操作手段 5a インデクス操作手段 5b 木インデクス操作手段 6a,6b データベース 11 ディスプレイ装置 12 キーボード 13 中央処理装置/主記憶装置 14 データベース 14−1〜14−n,14−N スライス 14a レコードエントリ 14b 通常レコード 14c BLOB管理情報 14d インデクスページ 14d−1〜14d−3 インデクス群 14e データページ 15,15A インデクス 21 応用処理部 22 レコード操作部(レコード操作手段) 22a 操作要求部 22b 再登録操作部 23 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】 データベースに登録されるファイルを管
    理するファイル管理方法において、 規定サイズ内のレコードに関する要求を受けた場合は、
    1個のレコード内で該データベースに対してアクセスを
    行なう一方、 規定のサイズ内に収まらないサイズであって、複数のス
    ライスにより構成された長大レコードに関する要求を受
    けた場合は、該長大レコードについて、該スライス単位
    に分解し、 該スライス単位に分解された長大レコード内での部分的
    アクセスを該データベースとの間で行なうか、又は該長
    大レコードのインデクスを生成又は更新し、該長大レコ
    ードのアクセスを該データベースとの間で行なうことを
    特徴とする、ファイル管理方法。
  2. 【請求項2】 データベースに登録されるファイルを管
    理するファイル管理装置において、 レコードに対する各種要求を受け付けるレコード操作手
    段と、 規定のサイズ内に収まらないサイズであって、複数のス
    ライスにより構成された長大レコードに関する要求を該
    レコード操作手段から受けると、該長大レコードについ
    て、該スライス単位に分解する長大レコード操作手段
    と、 該レコード操作手段からの規定サイズ内のレコードに関
    する要求又は該長大レコード操作手段からの長大レコー
    ドに関する要求を受け、1個のレコード内でのアクセス
    又はレコード内での部分的アクセスを、該データベース
    との間で行なう通常レコード操作手段と、 該長大レコードのインデクスを生成又は更新し、長大レ
    コードのアクセスを該データベースとの間で行なうイン
    デクス操作手段とをそなえたことを特徴とする、ファイ
    ル管理装置。
  3. 【請求項3】 データベースに登録されるファイルを管
    理するファイル管理装置において、 レコード又はレコード内の部分的なデータに対する各種
    レコード操作要求を受け付けるレコード操作手段と、 該レコード操作手段にて受け付けた該要求の対象となる
    データが1ページ内に収まるサイズの通常レコードであ
    る場合において、該要求の対象としての新規レコード又
    はデータベース上で登録されたレコード識別子で示され
    る既存レコードを1ページに収まる通常レコードとして
    割り当てて、各種レコード操作を行なうとともに、1個
    の通常レコード内における部分的アクセスを行なうデー
    タページ操作手段と、 該レコード操作手段にて受け付けた該要求の対象となる
    データが、ページ内に収まらないサイズであって、複数
    のスライスにより構成された長大レコードである場合
    は、新規レコード又はデータベース上で登録された該長
    大レコードに対し、操作を受けるスライス単位に分解し
    てから、該データページ操作手段に対して各種レコード
    操作を要求する長大レコード操作手段と、 最下位リーフレベルのインデクスでは各スライスそのも
    ののサイズとスライスへのレコード識別子を格納し、そ
    の上の階層のインデクスは下位のインデクスの表すサイ
    ズの総和を格納し、最上位のルートレベルのインデクス
    の表すサイズの総和は該長大レコード全体のサイズに一
    致し、リーフレベルのインデクスの順番は、これらの対
    応する各スライスのオフセットの順番に一致するように
    インデクスを構成する木インデクス操作手段とをそな
    え、 該長大レコード操作手段が、 既存の長大レコードに対する部分的なアクセスを行なう
    場合には、レコード全体に対するオフセットより操作対
    象となるスライスの開始点を、スライス間のアドレスリ
    ンクを順次ナビゲートする方法又は上記木インデクスよ
    り求める方法のいずれかにより決定するアクセス開始点
    決定制御部と、 スライス単位の追加、削除に伴う上記木インデクスのメ
    ンテナンスを該木インデクス操作手段に要求するメンテ
    ナンス部とをそなえたことを特徴とする、ファイル管理
    装置。
  4. 【請求項4】 該レコード操作手段にて要求を受け付け
    る各種レコード操作が、レコードに対する新規作成、抹
    消、フェッチ、レコード内の部分的なデータに対する途
    中挿入、途中削除、更新又は読み込みのうちのいずれか
    であることを特徴とする、請求項2又は3記載のフィア
    ル管理装置。
  5. 【請求項5】 該データページ操作手段が、 ページ内の各レコードの、通常レコードと長大レコード
    との区別を記録するレコード区別記録部をそなえるとと
    もに、 該レコード操作手段が、 該データページ操作手段のレコード区別記録部からの、
    既存のレコードのレコード識別子に対応する前記レコー
    ドの区別に基づき、通常レコードの場合には前記データ
    ページ操作手段に、長大レコードの場合には該長大レコ
    ード操作手段にそれぞれレコード操作を要求する操作要
    求部をそなえたことを特徴とする、請求項3記載のファ
    イル管理装置。
  6. 【請求項6】 該レコード操作手段が、 既存の通常レコードに対し、操作に伴いレコード全体の
    サイズが1ページに収まらなくなる場合には、該通常レ
    コードを長大レコードとして登録し直してから該長大レ
    コード操作手段にレコード操作を要求する一方、既存の
    長大レコードに対し、操作を完了した後、長大レコード
    全体のサイズが1ページに収まる場合には、このレコー
    ド操作の完了した長大レコードを通常レコードとして登
    録し直す再登録操作部をそなえたことを特徴とする、請
    求項2記載のファイル管理装置。
  7. 【請求項7】 該長大レコード操作手段のアクセス開始
    点決定制御部が、 既存の長大レコードに対する部分的なアクセスを行なう
    スライスの開始点を決定する際に、木インデクスが構成
    されている場合は該木インデクス操作手段により、無け
    ればスライス自体の持つアドレスリンクをナビゲートし
    てその開始点を決定するように制御するように構成され
    たことを特徴とする、請求項3記載のファイル管理装
    置。
  8. 【請求項8】 該長大レコード操作手段のメンテナンス
    部が、 該アクセス開始点決定制御部による制御に基づき、該木
    インデクス操作手段によりアクセス開始点を決定する場
    合、長大レコード全体のサイズに対する予め決められた
    しきいサイズとの大小に基づいて、該木インデクスの作
    成と削除とを決定するように構成されたことを特徴とす
    る、請求項7記載のファイル管理装置。
  9. 【請求項9】 該長大レコード操作手段のメンテナンス
    部が、 部分的なアクセスの要否により該木インデクスの作成又
    は削除することを決定するように構成されたことを特徴
    とする、請求項7記載のファイル管理装置。
  10. 【請求項10】 該長大レコード操作手段のメンテナン
    ス部が、 部分的なアクセスが発生すると、該木インデクスを作成
    するように構成されたことを特徴とする、請求項9記載
    のファイル管理装置。
  11. 【請求項11】 該長大レコード操作手段のメンテナン
    ス部が、 長大レコード全体のサイズに対する予め決められたしき
    いサイズとの大小関係、及び部分的なアクセスの要否に
    より該木インデクスの作成又は削除することを決定する
    ように構成されたことを特徴とする、請求項7記載のフ
    ァイル管理装置。
  12. 【請求項12】 該木インデクス操作手段が、 長大レコード全体に対するオフセットからスライスを検
    索する際に、該木インデクスの最上位のルートインデク
    スページから最下位のリーフインデクスページに至る各
    インデクスのサイズの積算が、所望のオフセットと一致
    又は直前となるインデクスを検索し、検索されたインデ
    クスから逐次下位階層のインデクスページに移って検索
    を行なうことにより、リーフインデクスページ上のイン
    デクスにおいて当該オフセットを含むスライスへのレコ
    ード識別子を取得するインデクスページ操作部をそなえ
    たことを特徴とする、請求項3記載のファイル管理装
    置。
  13. 【請求項13】 該長大レコード操作手段が、 長大レコードに対する部分的な挿入を行なう際に、挿入
    操作後に新規生成されたスライスの格納ページに空き領
    域があれば、該新規生成されたスライスと直後のスライ
    ス間で併合するインデクスページ間操作部をそなえたこ
    とを特徴とする、請求項4記載のファイル管理装置。
  14. 【請求項14】 該長大レコード操作手段が、 長大レコードに対する部分的な削除を行なう際に、削除
    操作の開始点を含むスライスと終了点をスライス間で併
    合するインデクスページ間操作部をそなえたことを特徴
    とする、請求項4記載のファイル管理装置。
  15. 【請求項15】 該長大レコード操作手段が、 長大レコードに対するサイズ変更操作が行なわれた後
    に、当該長大レコードを構成する全てのスライスについ
    てのスライスサイズの総和を演算する総和演算部と、 該総和演算部において演算された総和に対する、スライ
    スの個数とページ単位サイズの積との比を演算する比演
    算部と、 該比演算部において演算された比と、予め設定された比
    率とを比較する比率比較部と、 該比率比較部における比率の比較の結果、該比演算部に
    おいて演算された比が予め設定された比率よりも小さい
    場合は、該全てのスライスについてガベージコレクショ
    ンを行なうように制御するガベージコレクション制御部
    をそなえたことを特徴とする、請求項3記載のファイル
    管理装置。
  16. 【請求項16】 該長大レコード操作手段が、 該メンテナンス部において、該インデクスに対する修正
    をした後に、修正されたリーフインデクスページ内にお
    ける、スライスサイズの総和を演算する総和演算部と、 該総和演算部において演算された総和に対する、スライ
    スの個数とページ単位サイズの積との比率を演算する比
    演算部と、 該比演算部において演算された比と、予め設定された比
    率とを比較する比率比較部と、 該比率比較部における比率の比較の結果、該比演算部に
    おいて演算された比が予め設定された比率よりも小さい
    場合は、該リーフインデクスページ内におけるインデク
    スに対応したスライスについてガベージコレクションを
    行なうように制御するガベージコレクション制御部をそ
    なえたことを特徴とする、請求項3記載のファイル管理
    装置。
JP05937895A 1995-03-17 1995-03-17 ファイル管理方法及びファイル管理装置 Expired - Fee Related JP3703874B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533570A (ja) * 2005-03-11 2008-08-21 ロックソフト リミテッド 低冗長記憶システムで索引を行う方法
JP2010262457A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法
JP2010262455A (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行迁移和行连接的数据提取方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533570A (ja) * 2005-03-11 2008-08-21 ロックソフト リミテッド 低冗長記憶システムで索引を行う方法
JP2010262457A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法
JP2010262455A (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
US11899641B2 (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
JP7030767B2 (ja) 列状データの不均一なページネーション
CN113392089B (zh) 一种数据库索引优化方法及可读存储介质
JP3703874B2 (ja) ファイル管理方法及びファイル管理装置
WO2012114402A1 (ja) データベース管理装置及びデータベース管理方法
US11914740B2 (en) Data generalization apparatus, data generalization method, and program
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
US20090259617A1 (en) Method And System For Data Management
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