JP3298935B2 - ファイル管理装置 - Google Patents
ファイル管理装置Info
- Publication number
- JP3298935B2 JP3298935B2 JP23814092A JP23814092A JP3298935B2 JP 3298935 B2 JP3298935 B2 JP 3298935B2 JP 23814092 A JP23814092 A JP 23814092A JP 23814092 A JP23814092 A JP 23814092A JP 3298935 B2 JP3298935 B2 JP 3298935B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- record
- overflow
- pages
- management
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明はファイル管理装置に関
し、更に詳しくは磁気ディスク装置等に可変長データを
格納するファイル管理装置に関する。
し、更に詳しくは磁気ディスク装置等に可変長データを
格納するファイル管理装置に関する。
【0002】データベース管理システム(DBMS)と
プログラミング言語(PL)との一体化を目指したオブ
ジェクト指向データベース管理システム(OODBM
S)では、データベース上のレコードの識別を「永続
子」と呼ばれる一種のレコードのポインタで指針して行
う。この永続子の条件として可変長レコードのレコード
長の変更に伴うレコードの再配置に対して、その普遍性
を保つことが要求される。
プログラミング言語(PL)との一体化を目指したオブ
ジェクト指向データベース管理システム(OODBM
S)では、データベース上のレコードの識別を「永続
子」と呼ばれる一種のレコードのポインタで指針して行
う。この永続子の条件として可変長レコードのレコード
長の変更に伴うレコードの再配置に対して、その普遍性
を保つことが要求される。
【0003】
【従来の技術】従来のファイル管理システムでは、この
可変長レコードの再配置に関して「回想方式」が用いら
れる(例えば、情報処理 1991 Vol.32 特
集オブジェクト指向データベースシステム P512〜
P522)。従来の回想方式の動作を説明すれば、以下
のとおりである。
可変長レコードの再配置に関して「回想方式」が用いら
れる(例えば、情報処理 1991 Vol.32 特
集オブジェクト指向データベースシステム P512〜
P522)。従来の回想方式の動作を説明すれば、以下
のとおりである。
【0004】即ち、元の永続子となるレコードIDは、
元の格納ページ(アンカページ)のページアドレスと、
そのページ内のレコードのスロット追番とで記録管理
し、該レコードのオーバフローページへの移行が行われ
る際、元のレコード領域に次の移動先となるオーバフロ
ーページのアドレスと、そのページ内でのスロット追番
とを記録した別のレコードIDを記録し、各オーバフロ
ーページと主ページ(以下、アンカページという)とは
双方向順次リンクで1ページずつ結合管理されている。
元の格納ページ(アンカページ)のページアドレスと、
そのページ内のレコードのスロット追番とで記録管理
し、該レコードのオーバフローページへの移行が行われ
る際、元のレコード領域に次の移動先となるオーバフロ
ーページのアドレスと、そのページ内でのスロット追番
とを記録した別のレコードIDを記録し、各オーバフロ
ーページと主ページ(以下、アンカページという)とは
双方向順次リンクで1ページずつ結合管理されている。
【0005】図20は従来のアンカページとオーバフロ
ーページの接続関係を示す図である。アンカページ1に
はリレーションリンク情報が与えられ、このリレーショ
ンリンクによりアンカページ1は相互接続されている。
各アンカページ1において、最初のアンカページと最後
のアンカページに示す接地ラインへの矢印は、その前又
は後ろにはページがないことを表している。各アンカペ
ージ1には、必要に応じ1個又は複数のオーバフローペ
ージ2が接続されている。アンカページ1とオーバフロ
ーページ2,或いは各オーバフローページ2間はリンク
情報により接続されている。
ーページの接続関係を示す図である。アンカページ1に
はリレーションリンク情報が与えられ、このリレーショ
ンリンクによりアンカページ1は相互接続されている。
各アンカページ1において、最初のアンカページと最後
のアンカページに示す接地ラインへの矢印は、その前又
は後ろにはページがないことを表している。各アンカペ
ージ1には、必要に応じ1個又は複数のオーバフローペ
ージ2が接続されている。アンカページ1とオーバフロ
ーページ2,或いは各オーバフローページ2間はリンク
情報により接続されている。
【0006】図21は従来のレコード再配置の説明図で
ある。図20と同一のものは、同一の符号を付して示
す。3はレコードIDであり、ページアドレス3aとス
ロット追番3bとで構成されている。ページアドレス3
aは、アンカページ1のアドレスであり、このページア
ドレスで指針したアンカページのスロット領域1aを、
スロット追番3bで指針する。
ある。図20と同一のものは、同一の符号を付して示
す。3はレコードIDであり、ページアドレス3aとス
ロット追番3bとで構成されている。ページアドレス3
aは、アンカページ1のアドレスであり、このページア
ドレスで指針したアンカページのスロット領域1aを、
スロット追番3bで指針する。
【0007】このスロット領域1aには、旧レコード領
域1bのアドレスが記憶されている。ここで、レコード
領域1bを更新するに際し、領域が不足したものとす
る。この時には、オーバフローページ2に新たなレコー
ド領域2bが確保される。そして、旧レコード領域1b
には移動先レコードID1bが新たに書き込まれる。そ
のレコードIDのフォーマットは、3に示すレコードI
Dと同じである。そして、移動先レコードID1bのペ
ージアドレスでオーバフローページ2が指針され、スロ
ット追番でスロット領域2aが指針される。スロット領
域2aには、新レコード領域2bのアドレスが記憶され
ており、このアドレスで新レコード領域2bを指針する
ことができる。
域1bのアドレスが記憶されている。ここで、レコード
領域1bを更新するに際し、領域が不足したものとす
る。この時には、オーバフローページ2に新たなレコー
ド領域2bが確保される。そして、旧レコード領域1b
には移動先レコードID1bが新たに書き込まれる。そ
のレコードIDのフォーマットは、3に示すレコードI
Dと同じである。そして、移動先レコードID1bのペ
ージアドレスでオーバフローページ2が指針され、スロ
ット追番でスロット領域2aが指針される。スロット領
域2aには、新レコード領域2bのアドレスが記憶され
ており、このアドレスで新レコード領域2bを指針する
ことができる。
【0008】
【発明が解決しようとする課題】前述したように、従来
のファイル管理システムでは、アンカページ1から全て
のオーバフローページ2の所在が確保できず、クラスタ
リング(複数の空き領域をまとめて、1つの大きな利用
できる形態の空き領域にファイルを再編成すること)に
よるページの近接管理(同一書類のレコードはなるべく
近いレコード記憶領域に配置すること)ができないとい
う問題がある。
のファイル管理システムでは、アンカページ1から全て
のオーバフローページ2の所在が確保できず、クラスタ
リング(複数の空き領域をまとめて、1つの大きな利用
できる形態の空き領域にファイルを再編成すること)に
よるページの近接管理(同一書類のレコードはなるべく
近いレコード記憶領域に配置すること)ができないとい
う問題がある。
【0009】また、空き領域の所在を一括して管理でき
ず、無駄な入出力が発生する。更に、レコードの実際の
領域にたどり着くまでのオーバヘッドが大きいという問
題があった。
ず、無駄な入出力が発生する。更に、レコードの実際の
領域にたどり着くまでのオーバヘッドが大きいという問
題があった。
【0010】本発明はこのような課題に鑑みてなされた
ものであって、ファイル管理の効率化を図ることができ
るファイル管理装置を提供することを目的としている。
ものであって、ファイル管理の効率化を図ることができ
るファイル管理装置を提供することを目的としている。
【0011】
【課題を解決するための手段】図1は本発明の原理ブロ
ック図である。図に示すシステムは、ファイル上の可変
長レコードを指針して該レコードを更新するファイル管
理装置を構成している。図において、5はレコードをペ
ージ単位で記憶するファイル、10は該ファイル5に記
憶されているレコードをフェッチし,更新するレコード
操作手段、20はレコードを複数個、入出力の単位で格
納したページについて、ページのフェッチ,ページのバ
ッファリング及びページの割当てを行うページ管理手
段、30はページ内レコードの相対位置情報を管理する
スロット情報を管理し、ページ内のレコード領域の割当
てを行い、ページ内のレコード領域の削除を行い、ペー
ジ内の空き領域を圧縮,再配置するためのガーベージコ
レクションを行うレコード管理手段、40は元の主ペー
ジ(アンカページ)に領域が不足した場合に、レコード
領域を確保する複数オーバフローページについて、各オ
ーバフローページのページアドレスと、各オーバフロー
ページの空き領域サイズとが記憶されたオーバフローペ
ージ一覧50(図示せず)を管理するオーバフローペー
ジ一覧管理手段である。オーバフローページ一覧50は
アンカページ内のレコード領域に確保される。
ック図である。図に示すシステムは、ファイル上の可変
長レコードを指針して該レコードを更新するファイル管
理装置を構成している。図において、5はレコードをペ
ージ単位で記憶するファイル、10は該ファイル5に記
憶されているレコードをフェッチし,更新するレコード
操作手段、20はレコードを複数個、入出力の単位で格
納したページについて、ページのフェッチ,ページのバ
ッファリング及びページの割当てを行うページ管理手
段、30はページ内レコードの相対位置情報を管理する
スロット情報を管理し、ページ内のレコード領域の割当
てを行い、ページ内のレコード領域の削除を行い、ペー
ジ内の空き領域を圧縮,再配置するためのガーベージコ
レクションを行うレコード管理手段、40は元の主ペー
ジ(アンカページ)に領域が不足した場合に、レコード
領域を確保する複数オーバフローページについて、各オ
ーバフローページのページアドレスと、各オーバフロー
ページの空き領域サイズとが記憶されたオーバフローペ
ージ一覧50(図示せず)を管理するオーバフローペー
ジ一覧管理手段である。オーバフローページ一覧50は
アンカページ内のレコード領域に確保される。
【0012】
【作用】主ページであるアンカページ上に、全ての関連
するオーバフローページに対するページアドレスを保持
しているため、各オーバフローページとアンカページと
を極力近接格納するクラスタリングが促進される。
するオーバフローページに対するページアドレスを保持
しているため、各オーバフローページとアンカページと
を極力近接格納するクラスタリングが促進される。
【0013】また、オーバフローページ一覧50内に各
オーバフローページのページアドレスの一覧と共に、各
オーバフローページ上の空き領域とを合わせて記録して
いるので、アンカページだけのロードにより、個々のオ
ーバフローページをロードしなくてもレコード領域を確
保すべきオーバフローページを決定することができる。
オーバフローページのページアドレスの一覧と共に、各
オーバフローページ上の空き領域とを合わせて記録して
いるので、アンカページだけのロードにより、個々のオ
ーバフローページをロードしなくてもレコード領域を確
保すべきオーバフローページを決定することができる。
【0014】更に、アンカページ上のスロット情報に
は、アンカページ上にレコード領域が存在すれば、その
オフセット情報(相対アドレス指定のための情報)を記
録し、オーバフローページ上にレコード領域が存在すれ
ば、同じアンカページ上のスロット情報に、オーバフロ
ーページ一覧の配列位置とそのオーバフローページ上の
スロット追番を記録することにより、旧レコード領域上
に新たなレコード領域へのレコードID(例えば図21
の1b)を保持することなく、直接或いは2回の指針で
アンカページ上のスロット情報より新しいレコード領域
を指針することができる。
は、アンカページ上にレコード領域が存在すれば、その
オフセット情報(相対アドレス指定のための情報)を記
録し、オーバフローページ上にレコード領域が存在すれ
ば、同じアンカページ上のスロット情報に、オーバフロ
ーページ一覧の配列位置とそのオーバフローページ上の
スロット追番を記録することにより、旧レコード領域上
に新たなレコード領域へのレコードID(例えば図21
の1b)を保持することなく、直接或いは2回の指針で
アンカページ上のスロット情報より新しいレコード領域
を指針することができる。
【0015】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。図2は本発明の一実施例を示す構成ブロッ
ク図である。図1と同一のものは、同一の符号を付して
示す。レコード操作手段10は、レコード更新部10a
とレコードフェッチ部10bとで構成され、ページ管理
手段20は、ページフェッチ部20a,ページバッファ
部20b及びページ割当て部20cより構成されてい
る。
に説明する。図2は本発明の一実施例を示す構成ブロッ
ク図である。図1と同一のものは、同一の符号を付して
示す。レコード操作手段10は、レコード更新部10a
とレコードフェッチ部10bとで構成され、ページ管理
手段20は、ページフェッチ部20a,ページバッファ
部20b及びページ割当て部20cより構成されてい
る。
【0016】レコード管理手段30は、スロット管理部
30a,レコード割当て部30b,レコード削除部30
c及びガーベージコレクション部30dより構成され、
オーバフローページ一覧管理手段40は、ページ空きサ
イズ管理部40a及びページアドレス管理部40bより
構成されている。
30a,レコード割当て部30b,レコード削除部30
c及びガーベージコレクション部30dより構成され、
オーバフローページ一覧管理手段40は、ページ空きサ
イズ管理部40a及びページアドレス管理部40bより
構成されている。
【0017】図3は本発明の全体システム構成例を示す
ブロック図である。図において、50は全体の制御動作
を行うメイン制御部、51は検索条件,レコード入力操
作を行いディスプレイの表示制御を行うアプリケーショ
ン部、52はアプリケーション部51と接続されたディ
スプレイ、53はコマンド入力用のキーボードである。
ブロック図である。図において、50は全体の制御動作
を行うメイン制御部、51は検索条件,レコード入力操
作を行いディスプレイの表示制御を行うアプリケーショ
ン部、52はアプリケーション部51と接続されたディ
スプレイ、53はコマンド入力用のキーボードである。
【0018】54はレコードIDが格納されたレコード
IDリスト、55はアプリケーション部51からのレコ
ードフェッチ要求,レコード更新要求及びキー検索要求
を受けて指定のページ操作を行うページ操作部である。
前記レコードIDリスト54は、ページ操作部55で指
針され、アプリケーション部51にその出力を与える。
56はレコードハッシュ、57はページハッシュであ
り、これらは相互接続され、かつページ操作部55と接
続されている。
IDリスト、55はアプリケーション部51からのレコ
ードフェッチ要求,レコード更新要求及びキー検索要求
を受けて指定のページ操作を行うページ操作部である。
前記レコードIDリスト54は、ページ操作部55で指
針され、アプリケーション部51にその出力を与える。
56はレコードハッシュ、57はページハッシュであ
り、これらは相互接続され、かつページ操作部55と接
続されている。
【0019】58は各種ファイルと接続され、データの
入出力を行うファイル入出力部である。59はインデク
スファイル、60はページ割当てマップファイル、61
はデータページファイルであり、これらファイルは前記
ファイル入出力部58と接続されている。
入出力を行うファイル入出力部である。59はインデク
スファイル、60はページ割当てマップファイル、61
はデータページファイルであり、これらファイルは前記
ファイル入出力部58と接続されている。
【0020】62はインデクスファイル59から読み出
されたインデックス情報、63はページ割当てマップフ
ァイル60から読み出された空き割当てマップ、64は
データページファイル61から読み出されたページバッ
ファである。該ページバッファ64と前記レコードハッ
シュ56及びページハッシュ57とは接続されている。
このように構成されたシステムにおいて、メイン制御部
50,アプリケーション部51,ページ操作部55及び
ファイル入力部58の組み合わせで、図1に示すレコー
ド操作手段10,ページ管理手段20,レコード管理手
段30及びオーバフローページ一覧管理手段40の動作
を行い、データページファイル61が図1のファイル5
に相当している。
されたインデックス情報、63はページ割当てマップフ
ァイル60から読み出された空き割当てマップ、64は
データページファイル61から読み出されたページバッ
ファである。該ページバッファ64と前記レコードハッ
シュ56及びページハッシュ57とは接続されている。
このように構成されたシステムにおいて、メイン制御部
50,アプリケーション部51,ページ操作部55及び
ファイル入力部58の組み合わせで、図1に示すレコー
ド操作手段10,ページ管理手段20,レコード管理手
段30及びオーバフローページ一覧管理手段40の動作
を行い、データページファイル61が図1のファイル5
に相当している。
【0021】この実施例では、予め個々のレコードにユ
ニークなキー(例えば従業員NO)が付記され、各レコ
ードにはそのキーに付随した付加データを更新するもの
である。この付加データが可変長であるため、元のレコ
ード長より大きくなる更新が行われた際に、レコードの
再配置が行われる。
ニークなキー(例えば従業員NO)が付記され、各レコ
ードにはそのキーに付随した付加データを更新するもの
である。この付加データが可変長であるため、元のレコ
ード長より大きくなる更新が行われた際に、レコードの
再配置が行われる。
【0022】ここでは、単純化のためページバッファに
対するスワッピングはしないものとする。又、レコード
の新規追加(新しいキーの追加)及びレコードの削除は
行わず、従って、インデクスの変更はないものとする。
更に、更新されたレコードを含むページやページ割当て
マップは、プログラム(システム)終了時に、まとめて
セーブされるものとする。
対するスワッピングはしないものとする。又、レコード
の新規追加(新しいキーの追加)及びレコードの削除は
行わず、従って、インデクスの変更はないものとする。
更に、更新されたレコードを含むページやページ割当て
マップは、プログラム(システム)終了時に、まとめて
セーブされるものとする。
【0023】次に、本発明の各部のデータ構造について
説明する。図4はインデクスとページの関係を示す図で
ある。インデクス62は、キーの先頭文字62aと先頭
ページアドレス62bより構成されている。そして、こ
のインデクス62は、キー値に対するハッシュ管理を行
い、例えばインデクスの配列数でキー値を割った余り毎
に、インデクス62の配列位置が決定される。そして、
各インデクスの配列からは、同属キー値のレコードを格
納するアンカページのリンクのスタートページアドレス
を保持している。図に示す例では、キーの頭文字が
“S”であり、このキー値より求めたインデクスの配列
位置にアンカページのスタートアドレス“3”が格納さ
れている。
説明する。図4はインデクスとページの関係を示す図で
ある。インデクス62は、キーの先頭文字62aと先頭
ページアドレス62bより構成されている。そして、こ
のインデクス62は、キー値に対するハッシュ管理を行
い、例えばインデクスの配列数でキー値を割った余り毎
に、インデクス62の配列位置が決定される。そして、
各インデクスの配列からは、同属キー値のレコードを格
納するアンカページのリンクのスタートページアドレス
を保持している。図に示す例では、キーの頭文字が
“S”であり、このキー値より求めたインデクスの配列
位置にアンカページのスタートアドレス“3”が格納さ
れている。
【0024】このアンカページのスタートアドレス
“3”でアンカページ1が指針される。そして、アドレ
ス3のアンカページ1は他のアンカページ1とリンク情
報(next,before)で接続されている。図の
アンカページ1とそれに縦方向につながるオーバフロー
ページ2とで同属レコードを示している。
“3”でアンカページ1が指針される。そして、アドレ
ス3のアンカページ1は他のアンカページ1とリンク情
報(next,before)で接続されている。図の
アンカページ1とそれに縦方向につながるオーバフロー
ページ2とで同属レコードを示している。
【0025】図5はページ割当てマップとデータページ
の状態を示す図である。図において、63がページ割当
てマップを、61がデータページをそれぞれ示してい
る。ページ割当てマップ63は、ページアドレス63a
と空き/使用ビット63bとから構成されている。そし
て、ページ割当てマップ63で、使用中ページ(1)と
空きページ(0)との状況をページアドレス毎のビット
マップで管理している。例えばページアドレス“3”に
“1”が立っているので、そのページは使用中であるこ
とが分かる。データページ61は、ページアドレス61
aとページの内容61bより構成されている。データペ
ージ61を参照すると、ページアドレス“3”はアンカ
ページであることが分かる。
の状態を示す図である。図において、63がページ割当
てマップを、61がデータページをそれぞれ示してい
る。ページ割当てマップ63は、ページアドレス63a
と空き/使用ビット63bとから構成されている。そし
て、ページ割当てマップ63で、使用中ページ(1)と
空きページ(0)との状況をページアドレス毎のビット
マップで管理している。例えばページアドレス“3”に
“1”が立っているので、そのページは使用中であるこ
とが分かる。データページ61は、ページアドレス61
aとページの内容61bより構成されている。データペ
ージ61を参照すると、ページアドレス“3”はアンカ
ページであることが分かる。
【0026】ページアドレス“4”,“5”は空き/使
用ビット63bが“1”であり、使用されていることが
分かり、アンカページ3のオーバフローページであるこ
とが分かる。ページアドレス“6”,“7”は空き/使
用ビット63bが“0”であり、空き領域である。ま
た、ページアドレス“8”は“1”が立ち、使用されて
おり、次の同属のアンカページであることが分かる。以
下、同様である。
用ビット63bが“1”であり、使用されていることが
分かり、アンカページ3のオーバフローページであるこ
とが分かる。ページアドレス“6”,“7”は空き/使
用ビット63bが“0”であり、空き領域である。ま
た、ページアドレス“8”は“1”が立ち、使用されて
おり、次の同属のアンカページであることが分かる。以
下、同様である。
【0027】図6はページバッファとページハッシュの
関係を示す図である。図において、64がページバッフ
ァ、57がページハッシュである。ページハッシュ57
は、ハッシュ値57aと先頭ポインタ57bとで構成さ
れている。ハッシュ値0ではページ10のページバッフ
ァ64を指針し、ハッシュ値1ではページ1とページ1
1のページバッファ64を指針する。これらは、主記憶
上に存在するロード済みのページを高速にアクセスする
ために用いられる。ページバッファ64が指定ページア
ドレスについて主記憶上になければ、データページファ
イル61よりロードする(フェッチ操作)。
関係を示す図である。図において、64がページバッフ
ァ、57がページハッシュである。ページハッシュ57
は、ハッシュ値57aと先頭ポインタ57bとで構成さ
れている。ハッシュ値0ではページ10のページバッフ
ァ64を指針し、ハッシュ値1ではページ1とページ1
1のページバッファ64を指針する。これらは、主記憶
上に存在するロード済みのページを高速にアクセスする
ために用いられる。ページバッファ64が指定ページア
ドレスについて主記憶上になければ、データページファ
イル61よりロードする(フェッチ操作)。
【0028】図7はページバッファ64の構成例を示す
図である。図に示すように、次のページバッファへのポ
インタ64a,ページアドレス64b,更新マーク64
c及びページ領域へのポインタ64dとで構成されてい
る。ページ領域へのポインタ64dは、データページフ
ァイル61を指針する。
図である。図に示すように、次のページバッファへのポ
インタ64a,ページアドレス64b,更新マーク64
c及びページ領域へのポインタ64dとで構成されてい
る。ページ領域へのポインタ64dは、データページフ
ァイル61を指針する。
【0029】図8はレコードID(永続子)とページと
レコードとの関係を示す図である。レコードID3はペ
ージアドレスPとページ内のスロット追番Sとで構成さ
れている。このページアドレスでレコードハッシュ57
を指針し、ページハッシュ57でページバッファ64を
指針する。そして、ページバッファのポインタ64dよ
りアンカページ1を指針する。
レコードとの関係を示す図である。レコードID3はペ
ージアドレスPとページ内のスロット追番Sとで構成さ
れている。このページアドレスでレコードハッシュ57
を指針し、ページハッシュ57でページバッファ64を
指針する。そして、ページバッファのポインタ64dよ
りアンカページ1を指針する。
【0030】最初はアンカページ1内にスロット追番S
で指針される旧レコード領域1bが存在していたが、レ
コード更新により旧レコード領域1bに入りきれなくな
った場合、アンカページ1内に設けられたオーバフロー
ページ一覧50を利用してオーバフローページ2を指針
し、更にスロット追番S’から新レコード領域2bを指
針する。このようにして、オーバフローページ一覧50
を参照することにより、レコードを記憶するオーバフロ
ーページ2を決定することができる。
で指針される旧レコード領域1bが存在していたが、レ
コード更新により旧レコード領域1bに入りきれなくな
った場合、アンカページ1内に設けられたオーバフロー
ページ一覧50を利用してオーバフローページ2を指針
し、更にスロット追番S’から新レコード領域2bを指
針する。このようにして、オーバフローページ一覧50
を参照することにより、レコードを記憶するオーバフロ
ーページ2を決定することができる。
【0031】図9はアンカページ1の構成例を示す図で
ある。図において、1aはアンカページリンクのnex
tを、1bはアンカページリンクのbeforeを示し
ている。これらリンク情報で前のアンカページ及び後の
アンカページと接続される。なお、自己よりも前にアン
カページがない場合には、アンカページbeforeが
0になり、自己よりも後にアンカページがない場合には
アンカページnextが0になる。
ある。図において、1aはアンカページリンクのnex
tを、1bはアンカページリンクのbeforeを示し
ている。これらリンク情報で前のアンカページ及び後の
アンカページと接続される。なお、自己よりも前にアン
カページがない場合には、アンカページbeforeが
0になり、自己よりも後にアンカページがない場合には
アンカページnextが0になる。
【0032】1cは有効レコード数(スロット)、1d
は最終割当てスロット数(n)、1eは最終未使用位
置、1fは最終未使用サイズである。1gはスロットで
あり、スロット0からスロットnまでのスロット情報が
記憶されている。1hはレコード領域である。レコード
領域で、スロットの成長方向は下に示す矢印の向きにと
られ、レコードの割当て方向は上に示す矢印の向きにと
られる。なお、図示していないが、オーバフローページ
一覧50は、アンカページのレコード領域1h内に設け
られており、スロット0で指針される。
は最終割当てスロット数(n)、1eは最終未使用位
置、1fは最終未使用サイズである。1gはスロットで
あり、スロット0からスロットnまでのスロット情報が
記憶されている。1hはレコード領域である。レコード
領域で、スロットの成長方向は下に示す矢印の向きにと
られ、レコードの割当て方向は上に示す矢印の向きにと
られる。なお、図示していないが、オーバフローページ
一覧50は、アンカページのレコード領域1h内に設け
られており、スロット0で指針される。
【0033】図10はオーバフローページ一覧50の構
成例を示す図である。前述したように、このオーバーフ
ローページ一覧50は、アンカページ1内に存在し、ス
ロット0により指針される。図において、50aはオー
バフローページの総数、50bは最終オーバフローペー
ジ配列位置である。50cはオーバフローページ一覧配
列番号で、図では0からmまで示している。50dは各
オーバフローページ一覧配列番号に対応して設けられた
空き領域合計サイズ、50eはページアドレスである。
空き領域合計サイズ50dは、特定のページの空き領域
の合計であり、離散的に空いている空き領域の合計か又
は1つのまとまった領域である。この空き領域が離散的
である場合、ガーベージコレクションにより1つの領域
に編集することができ、レコードを更新する際の領域判
定の基準になる。
成例を示す図である。前述したように、このオーバーフ
ローページ一覧50は、アンカページ1内に存在し、ス
ロット0により指針される。図において、50aはオー
バフローページの総数、50bは最終オーバフローペー
ジ配列位置である。50cはオーバフローページ一覧配
列番号で、図では0からmまで示している。50dは各
オーバフローページ一覧配列番号に対応して設けられた
空き領域合計サイズ、50eはページアドレスである。
空き領域合計サイズ50dは、特定のページの空き領域
の合計であり、離散的に空いている空き領域の合計か又
は1つのまとまった領域である。この空き領域が離散的
である場合、ガーベージコレクションにより1つの領域
に編集することができ、レコードを更新する際の領域判
定の基準になる。
【0034】図11はレコード領域への指針を示すスロ
ットの構成例を示す図である。スロット1gにおいて、
70は空き/使用指定領域,71はページ存在位置指定
領域である。ページ存在位置指定領域71にビット
“0”が立っていた場合には、自ページ内にレコードが
存在することを示している。その時、領域72には自ペ
ージ内レコード領域へのオフセットを示す。ページ存在
位置指定領域71にビット“1”が立っていた場合に
は、オーバフローページにレコードが存在することを示
している。レコードがオーバフローページ内に存在する
場合には、領域73にオーバフローページ一覧の配列番
号が記憶され、領域74にはオーブフローページ内のス
ロット追番が記憶される。
ットの構成例を示す図である。スロット1gにおいて、
70は空き/使用指定領域,71はページ存在位置指定
領域である。ページ存在位置指定領域71にビット
“0”が立っていた場合には、自ページ内にレコードが
存在することを示している。その時、領域72には自ペ
ージ内レコード領域へのオフセットを示す。ページ存在
位置指定領域71にビット“1”が立っていた場合に
は、オーバフローページにレコードが存在することを示
している。レコードがオーバフローページ内に存在する
場合には、領域73にオーバフローページ一覧の配列番
号が記憶され、領域74にはオーブフローページ内のス
ロット追番が記憶される。
【0035】図12はレコードの構成例を示す図であ
る。レコードサイズ,レコードデータと共に、キーと付
加データとからなる。図13はオーバフローページの構
成例を示す図である。図において、2aは有効レコード
数、2bは最終割当てスロット数、2cは最終未使用位
置、2dは最終未使用サイズである。2eはスロットで
ある。スロット0はオーバフローページ一覧50の指針
用に用いられるので、使用されない。なお、オーバフロ
ーページ内のスロット2eは、自己内しか指針できない
ので、常に自ページ内のレコード領域へのオフセット情
報のみが記憶される。2fはレコード領域である。
る。レコードサイズ,レコードデータと共に、キーと付
加データとからなる。図13はオーバフローページの構
成例を示す図である。図において、2aは有効レコード
数、2bは最終割当てスロット数、2cは最終未使用位
置、2dは最終未使用サイズである。2eはスロットで
ある。スロット0はオーバフローページ一覧50の指針
用に用いられるので、使用されない。なお、オーバフロ
ーページ内のスロット2eは、自己内しか指針できない
ので、常に自ページ内のレコード領域へのオフセット情
報のみが記憶される。2fはレコード領域である。
【0036】図14は実施例の動作を示すフローチャー
トである。アプリケーション部51(図3参照)は、ペ
ージ55に対して以下に示す3個の要求を出している レコード検索…キーによるレコードIDの取得 レコードフェッチ…レコードIDによるレコード領域
ポインタの取得 レコード更新…レコードIDと更新レコード領域内容
のポインタによるレコード領域の更新 この実施例では、大別して、セットアップ処理S1とデ
ータ更新処理S2と更新内容のセーブ処理S3から構成
されている。セットアップ処理S1は、インデクスファ
イル59からのインデクス情報の読込みS4とページ割
当てマップファイル60からのページ割当てマップの読
込みS5とから構成される。読込まれた情報は主記憶上
に記憶される。
トである。アプリケーション部51(図3参照)は、ペ
ージ55に対して以下に示す3個の要求を出している レコード検索…キーによるレコードIDの取得 レコードフェッチ…レコードIDによるレコード領域
ポインタの取得 レコード更新…レコードIDと更新レコード領域内容
のポインタによるレコード領域の更新 この実施例では、大別して、セットアップ処理S1とデ
ータ更新処理S2と更新内容のセーブ処理S3から構成
されている。セットアップ処理S1は、インデクスファ
イル59からのインデクス情報の読込みS4とページ割
当てマップファイル60からのページ割当てマップの読
込みS5とから構成される。読込まれた情報は主記憶上
に記憶される。
【0037】データ更新処理S2では、先ずキーボード
53から検索キーを入力する処理S6を行う。入力され
た検索キーに対してレコード検索処理S8を行い、レコ
ード単位の処理S7を行う。次に、検索結果の表示処理
S9に入る。この処理では、レコードによるフェッチ処
理S10を行い、ディスプレイ52に付加情報を表示す
る表示処理S11を行う。
53から検索キーを入力する処理S6を行う。入力され
た検索キーに対してレコード検索処理S8を行い、レコ
ード単位の処理S7を行う。次に、検索結果の表示処理
S9に入る。この処理では、レコードによるフェッチ処
理S10を行い、ディスプレイ52に付加情報を表示す
る表示処理S11を行う。
【0038】次に、付加データの修正処理S12に入
る。この処理では、キーボード53から修正付加情報の
入力処理S13を行い、レコード更新処理S13を行
う。更新内容のセーブ処理S3では、データページファ
イル61に対して更新ページのセーブ処理S14を行
い、次にページ割当てマップファイル60にページ割当
てマップのセーブ処理S15を行う。
る。この処理では、キーボード53から修正付加情報の
入力処理S13を行い、レコード更新処理S13を行
う。更新内容のセーブ処理S3では、データページファ
イル61に対して更新ページのセーブ処理S14を行
い、次にページ割当てマップファイル60にページ割当
てマップのセーブ処理S15を行う。
【0039】図15はレコード検索動作を示すサブルー
チンのフローチャートである。先ず、インデクスファイ
ル59より先頭ページアドレスを求める処理S1を行
う。先頭ページアドレスが求まったら、ページ単位の処
理S2を行う。このページ単位処理S2は全てのページ
アドレスについて行う。そして、ページのフェッチ処理
S3を行い、その内部のレコードフェッチ処理S4を行
う。このレコードフェッチ処理は、最終割当てスロット
数まで行う。
チンのフローチャートである。先ず、インデクスファイ
ル59より先頭ページアドレスを求める処理S1を行
う。先頭ページアドレスが求まったら、ページ単位の処
理S2を行う。このページ単位処理S2は全てのページ
アドレスについて行う。そして、ページのフェッチ処理
S3を行い、その内部のレコードフェッチ処理S4を行
う。このレコードフェッチ処理は、最終割当てスロット
数まで行う。
【0040】次に、空きスロットがあるかどうかチェッ
ク処理S5を行う。空きスロットでない場合には、キー
が一致するかどうかチェックする処理S6を行う。キー
が一致したら、この時のスロットiのレコードIDを返
却する処理S7を行う。次にページバッファが更新され
ていないかどうかチェックする処理S8を行う。そうで
ある場合には、ページバッファの削除処理S9を行う。
次に、返却用レコードIDを返却する処理S10を行
う。
ク処理S5を行う。空きスロットでない場合には、キー
が一致するかどうかチェックする処理S6を行う。キー
が一致したら、この時のスロットiのレコードIDを返
却する処理S7を行う。次にページバッファが更新され
ていないかどうかチェックする処理S8を行う。そうで
ある場合には、ページバッファの削除処理S9を行う。
次に、返却用レコードIDを返却する処理S10を行
う。
【0041】図16はレコードフェッチ動作を示すサブ
ルーチンのフローチャートである。この処理では、レコ
ードIDで示されるページアドレスでページのフェッチ
を行い、その後で当該ページ上のスロット情報を参照し
(レコードIDのスロット追番により)、該レコード領
域を求めている。先ず、返却用レコードポインタを0に
する初期化処理S1を行う。次にレコードIDよりペー
ジアドレスとスロット追番を求める処理S2を行う。ペ
ージアドレスが分かったら、ページフェッチ処理S3を
行う。次に、求めたスロット追番が最終割当てスロット
追番より大きいかどうかチェックする処理S4を行う。
そうである場合には、異常終了とする。
ルーチンのフローチャートである。この処理では、レコ
ードIDで示されるページアドレスでページのフェッチ
を行い、その後で当該ページ上のスロット情報を参照し
(レコードIDのスロット追番により)、該レコード領
域を求めている。先ず、返却用レコードポインタを0に
する初期化処理S1を行う。次にレコードIDよりペー
ジアドレスとスロット追番を求める処理S2を行う。ペ
ージアドレスが分かったら、ページフェッチ処理S3を
行う。次に、求めたスロット追番が最終割当てスロット
追番より大きいかどうかチェックする処理S4を行う。
そうである場合には、異常終了とする。
【0042】求めたスロット追番が最終割当てスロット
追番より小さい場合には、スロット追番のスロットの内
容を得る処理S5を行う。次にそのスロットが空きスロ
ットかどうかチェックする処理S6を行う。空きスロッ
トの場合には異常終了とする。空きスロットでない場合
には、オーバフローページ上にあるかどうかチェックす
る処理S7を行う。スロットがオーバフローページ上で
ない場合には、アンカページ上であるので、レコードオ
フセットより返却レコードポインタを求める処理S8を
行う。
追番より小さい場合には、スロット追番のスロットの内
容を得る処理S5を行う。次にそのスロットが空きスロ
ットかどうかチェックする処理S6を行う。空きスロッ
トの場合には異常終了とする。空きスロットでない場合
には、オーバフローページ上にあるかどうかチェックす
る処理S7を行う。スロットがオーバフローページ上で
ない場合には、アンカページ上であるので、レコードオ
フセットより返却レコードポインタを求める処理S8を
行う。
【0043】オーバフローページ上の場合には、オーバ
ーフロページ一覧50を取得する処理S9を行い、スロ
ット0のレコードポインタを得る処理S10を行う。そ
して、オーバフロー・スロット情報取得処理S11を行
う。次にページフェッチ処理S12を行い、オーバフロ
ーページ上のスロット内容を得る処理S13を行い、オ
ーバフローページ上のレコードオフセットより返却レコ
ードポインタを求める処理S14を行う。
ーフロページ一覧50を取得する処理S9を行い、スロ
ット0のレコードポインタを得る処理S10を行う。そ
して、オーバフロー・スロット情報取得処理S11を行
う。次にページフェッチ処理S12を行い、オーバフロ
ーページ上のスロット内容を得る処理S13を行い、オ
ーバフローページ上のレコードオフセットより返却レコ
ードポインタを求める処理S14を行う。
【0044】図17はページフェッチサブルーチンの動
作を示すフローチャートである。先ず、ページハッシュ
57より指定ページアドレスのページハッシュを求める
処理S1を行う。次に、そのページハッシュが主記憶上
に存在するかどうかチェックする処理S2を行う。存在
する場合には、そのページハッシュに基づきページをフ
ェッチすればよい。存在しない場合には、ページバッフ
ァ及びページ領域を主記憶上に確保する処理S3を行
う。
作を示すフローチャートである。先ず、ページハッシュ
57より指定ページアドレスのページハッシュを求める
処理S1を行う。次に、そのページハッシュが主記憶上
に存在するかどうかチェックする処理S2を行う。存在
する場合には、そのページハッシュに基づきページをフ
ェッチすればよい。存在しない場合には、ページバッフ
ァ及びページ領域を主記憶上に確保する処理S3を行
う。
【0045】そして、主記憶上に確保したページ領域に
データページファイル61より指定ページアドレスのペ
ージをロードする処理S4を行う。次に、ページバッフ
ァのページアドレスの設定処理S5を行う。次に、ペー
ジバッファ64の更新マークのリセット処理S6を行
う。更新マークのリセット処理が終了したら、ページバ
ッファ64のページ領域へのポインタの設定処理S7を
行う。次に、ページバッファ64のページハッシュへの
登録処理S8を行い、この時のページバッファ64のポ
インタを返却する処理S9を行う。
データページファイル61より指定ページアドレスのペ
ージをロードする処理S4を行う。次に、ページバッフ
ァのページアドレスの設定処理S5を行う。次に、ペー
ジバッファ64の更新マークのリセット処理S6を行
う。更新マークのリセット処理が終了したら、ページバ
ッファ64のページ領域へのポインタの設定処理S7を
行う。次に、ページバッファ64のページハッシュへの
登録処理S8を行い、この時のページバッファ64のポ
インタを返却する処理S9を行う。
【0046】図18はオーバフロー・スロット情報取得
時の動作を示すフローチャートである。先ず、オーバフ
ローページ一覧50の取得処理S1を行う。このために
アンカページ1上のスロット0のレコードのレコードポ
インタを取得する処理S2を行う。これによりオーバフ
ローページ一覧50を取得することができる。そして、
オーバフローページ一覧50を指針してオーブフローペ
ージアドレスの取得処理S3を行う。
時の動作を示すフローチャートである。先ず、オーバフ
ローページ一覧50の取得処理S1を行う。このために
アンカページ1上のスロット0のレコードのレコードポ
インタを取得する処理S2を行う。これによりオーバフ
ローページ一覧50を取得することができる。そして、
オーバフローページ一覧50を指針してオーブフローペ
ージアドレスの取得処理S3を行う。
【0047】次に、オーバフローページに対応したペー
ジのフェッチ処理S4を行う。そして、ページをフェッ
チしたら、オーバフローページ上のスロット内容の取得
処理S5を行う。最後にオーバフローページ上のレコー
ドオフセットよりレコードポインタを求める。
ジのフェッチ処理S4を行う。そして、ページをフェッ
チしたら、オーバフローページ上のスロット内容の取得
処理S5を行う。最後にオーバフローページ上のレコー
ドオフセットよりレコードポインタを求める。
【0048】図19はレコード更新のサブルーチンの動
作を示すフローチャートである。この図で示すレコード
領域削除処理は、旧レコード領域を未使用領域として、
オーバフローページ一覧の当該ページの空き領域サイズ
を更新するものである。又、若しオーバフローページ上
のレコードが1個も存在しなければ、空きページとして
ページ割当てマップ63を更新し、オーバフローページ
一覧50より削除する。
作を示すフローチャートである。この図で示すレコード
領域削除処理は、旧レコード領域を未使用領域として、
オーバフローページ一覧の当該ページの空き領域サイズ
を更新するものである。又、若しオーバフローページ上
のレコードが1個も存在しなければ、空きページとして
ページ割当てマップ63を更新し、オーバフローページ
一覧50より削除する。
【0049】又、レコード領域確保処理では、オーバフ
ローページ一覧より更新レコードサイズを満足するペー
ジを決定し、無ければ新規オーバフローページを割当て
る。更に当該ページの最終未使用サイズ(図9,図13
参照)が更新レコードサイズを満足しなければガーベー
ジコレクションが働くようになっている。
ローページ一覧より更新レコードサイズを満足するペー
ジを決定し、無ければ新規オーバフローページを割当て
る。更に当該ページの最終未使用サイズ(図9,図13
参照)が更新レコードサイズを満足しなければガーベー
ジコレクションが働くようになっている。
【0050】同図において、先ずレコードIDよりアン
カページアドレス,アンカページ上のスロット追番を求
める処理S1を行う。次にアンカページのページフェッ
チ処理S2を行う。アンカページ1をフェッチしたら、
アンカページ上でのスロット追番のスロットの内容を得
る処理S3を行う。次に、レコード領域はアンカページ
上かどうかチェックする処理S4を行う。レコード領域
がアンカページ上であった場合には、レコード領域より
返却レコードポインタを求める処理S5を行う。レコー
ド領域がアンカページ上でなかった場合には、オーバフ
ロースロット情報を取得する処理S6を行う。
カページアドレス,アンカページ上のスロット追番を求
める処理S1を行う。次にアンカページのページフェッ
チ処理S2を行う。アンカページ1をフェッチしたら、
アンカページ上でのスロット追番のスロットの内容を得
る処理S3を行う。次に、レコード領域はアンカページ
上かどうかチェックする処理S4を行う。レコード領域
がアンカページ上であった場合には、レコード領域より
返却レコードポインタを求める処理S5を行う。レコー
ド領域がアンカページ上でなかった場合には、オーバフ
ロースロット情報を取得する処理S6を行う。
【0051】次に、差分サイズを求める処理S7を行
う。ここで、差分は次式で与えられる。 差分=旧レコードのサイズ−更新レコードのサイズ 差分を求めたら、差分<0か、差分≧0かのチェック処
理S8を行う。差分<0の場合には、更新レコードサイ
ズが旧レコードサイズよりも大きいことになる。この時
には、旧レコード領域を削除する処理S9を行い、新し
いレコード領域を確保する処理S10を行う。次に、更
新レコードサイズが旧レコードサイズと等しいか又は小
さい場合には、旧レコード領域に更新レコード領域を複
写する処理S11を行う。
う。ここで、差分は次式で与えられる。 差分=旧レコードのサイズ−更新レコードのサイズ 差分を求めたら、差分<0か、差分≧0かのチェック処
理S8を行う。差分<0の場合には、更新レコードサイ
ズが旧レコードサイズよりも大きいことになる。この時
には、旧レコード領域を削除する処理S9を行い、新し
いレコード領域を確保する処理S10を行う。次に、更
新レコードサイズが旧レコードサイズと等しいか又は小
さい場合には、旧レコード領域に更新レコード領域を複
写する処理S11を行う。
【0052】次に、差分サイズ>0かどうかチェックす
る処理S12を行い、そうであった場合には、レコード
領域がアンカページ上であるかどうかチェックする処理
S13を行う。アンカページ上であった場合には、オー
バフローページ一覧50の0番目の空き領域合計サイズ
を求める処理S14を行う。アンカページ上でない場合
には、オーバフローページ上であり、オーブフローペー
ジ一覧50のオーバフロー配列i番目の空き領域合計サ
イズを求める処理S15を行う。次に、当該オーバフロ
ーページバッファ64に更新マークを設定する処理S1
6を行う。最後にアンカページのページバッファ64に
更新マークを設定する処理S17を行う。
る処理S12を行い、そうであった場合には、レコード
領域がアンカページ上であるかどうかチェックする処理
S13を行う。アンカページ上であった場合には、オー
バフローページ一覧50の0番目の空き領域合計サイズ
を求める処理S14を行う。アンカページ上でない場合
には、オーバフローページ上であり、オーブフローペー
ジ一覧50のオーバフロー配列i番目の空き領域合計サ
イズを求める処理S15を行う。次に、当該オーバフロ
ーページバッファ64に更新マークを設定する処理S1
6を行う。最後にアンカページのページバッファ64に
更新マークを設定する処理S17を行う。
【0053】
【発明の効果】以上、詳細に説明したように、本発明に
よればファイル管理の効率化を図ることができるファイ
ル管理装置を提供することができる。
よればファイル管理の効率化を図ることができるファイ
ル管理装置を提供することができる。
【図1】本発明の原理ブロック図である。
【図2】本発明の一実施例を示す構成ブロック図であ
る。
る。
【図3】本発明の全体システム構成例を示すブロック図
である。
である。
【図4】インデクスとページの関係を示す図である。
【図5】ページ割当てマップとデータページの状態を示
す図である。
す図である。
【図6】ページバッファとページハッシュとの関係を示
す図である。
す図である。
【図7】ページバッファの構成例を示す図である。
【図8】レコードIDとページとレコードの関係を示す
図である。
図である。
【図9】アンカページの構成例を示す図である。
【図10】オーバフローページ一覧の構成例を示す図で
ある。
ある。
【図11】スロットの構成例を示す図である。
【図12】レコードの構成例を示す図である。
【図13】オーバフローページの構成例を示す図であ
る。
る。
【図14】実施例の動作を示すフローチャートである。
【図15】レコード検索動作を示すフローチャートであ
る。
る。
【図16】レコードフェッチの動作を示すフローチャー
トである。
トである。
【図17】ページフェッチのフローチャートである。
【図18】オーバフロー・スロット情報取得時の動作を
示すフローチャートである。
示すフローチャートである。
【図19】レコード更新動作を示すフローチャートであ
る。
る。
【図20】従来のアンカページとオーバフローページの
接続関係を示す図である。
接続関係を示す図である。
【図21】従来のレコード再配置の説明図である。
5 ファイル 10 レコード操作手段 20 ページ管理手段 30 レコード管理手段 40 オーバフローページ一覧管理手段
フロントページの続き (56)参考文献 牧之内 顕文,オブジェクト志向デー タベース管理システムのアーキテクチ ャ,情報処理,日本,情報処理学会, 1991年 5月 1日,Vol.32,N o.5,p.514−−522 M.M.Atrahan 外,Sys tem R:Relational A pproach to Databas e Management,ACM T ransactions in Dat abase Systems,米国,A CM,Vol.1,No.2,p.97− −137 Mark F.Hornick,A Shared Segmented M emory System for a n Object−Oriented Database,Reading i n Object−Oriented DataBase Systems,米 国,Morgan Kaufmann, p,273−−286 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00
Claims (8)
- 【請求項1】 ファイル上の可変長レコードを指針して
該レコードを更新するファイル管理装置において、 レコードをページ単位で記憶するファイルと、 該ファイルに記憶されているレコードをフェッチし、更
新するレコード操作手段と、 レコードを複数個、入出力の単位で格納したページにつ
いて、ページのフェッチ,ページのバッファリング及び
ページの割当てを行うページ管理手段と、 ページ内レコードの相対位置情報を管理するスロット情
報を管理し、ページ内のレコード領域の割当てを行い、
ページ内のレコード領域の削除を行い、ページ内の空き
領域を圧縮,再配置するためのガーベージコレクション
を行うレコード管理手段と、 元の主ページ(アンカページ)に領域が不足した場合
に、レコード領域を確保する複数オーバフローページに
ついて、各オーバフローページのページアドレスと、各
オーバフローページの空き領域サイズとが記憶されたオ
ーバフローページ一覧を当該アンカページ上に格納、管
理するオーバフローページ一覧管理手段とを具備したこ
とを特徴とするファイル管理装置。 - 【請求項2】 前記レコード操作手段は、レコード更新
部とレコードフェッチ部とで、 前記ページ管理手段は、ページフェッチ部と、ページバ
ッファ部と、ページ割当て部とで、 前記レコード管理手段は、スロット管理部と、レコード
割当て部と、レコード削除部と、ガーベージコレクショ
ン部とで、 前記オーバフローページ一覧管理手段は、ページ空きサ
イズ管理部と、ページアドレス管理部とでそれぞれ構成
されたことを特徴とする請求項1記載のファイル管理装
置。 - 【請求項3】 前記レコード管理手段は、 オーバフローページ上のレコード領域については、アン
カページ内のスロット情報よりオーバフローページ上の
スロット情報に2次指針することを特徴とする請求項1
記載のファイル管理装置。 - 【請求項4】 前記レコード管理手段は、 アンカページ上のレコード領域については、直接そのレ
コード領域のオフセットを記録し、 オーバフローページ上のレコード領域については、オー
バフローページ一覧に対する該オーバフローページを示
す配列位置と、該オーバフローページ上でのスロットの
追番とを記録することを特徴とする請求項1記載のファ
イル管理装置。 - 【請求項5】 前記オーバフローページ一覧管理手段
は、 そのオーバフローページ一覧の情報を使用しているオー
バフローページの個数に応じて可変とし、その領域は可
変長データを格納するアンカページのレコード領域中に
格納し、その領域内でデータを格納するレコードと共に
再配置するようにしたことを特徴とする請求項1記載の
ファイル管理装置。 - 【請求項6】 前記オーバフローページ一覧管理手段
は、 そのオーバフローページ一覧の情報に、各オーバフロー
ページのページアドレスと共に、各オーバフローページ
に対する空き領域サイズとを合わせて記録し、 前記レコード管理手段は、 レコード領域の新たな確保に際し、各オーバフローペー
ジを実際にロードすることなく、前記オーバフローペー
ジ一覧情報を参照して、レコード領域を割当てる対象と
なるオーバフローページを決定することを特徴とする請
求項1記載のファイル管理装置。 - 【請求項7】 前記ページ管理手段は、 オーバフローページの割当てに際し、アンカページのペ
ージアドレス若しくは前記オーバフローページ一覧管理
手段で記録されている他のオーバフローページのページ
アドレスの極力近傍に該オーバフローページを割当てる
ことにより、クラスタリングを高めるようにしたことを
特徴とする請求項1記載のファイル管理装置。 - 【請求項8】 前記ページ管理手段は、 アンカページ又はそのオーバフローページの読込みに際
し、前記オーバフローページ一覧管理手段に記録された
他のオーバフローページのページアドレスを一括参照す
ることにより、 又、これらオーバフローページのページアドレスが近接
していることにより、少ないシーク回数で連続して関連
するオーバフローページを読込むことを特徴とする請求
項1又は請求項7記載のファイル管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23814092A JP3298935B2 (ja) | 1992-09-07 | 1992-09-07 | ファイル管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23814092A JP3298935B2 (ja) | 1992-09-07 | 1992-09-07 | ファイル管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0689209A JPH0689209A (ja) | 1994-03-29 |
JP3298935B2 true JP3298935B2 (ja) | 2002-07-08 |
Family
ID=17025792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23814092A Expired - Fee Related JP3298935B2 (ja) | 1992-09-07 | 1992-09-07 | ファイル管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3298935B2 (ja) |
-
1992
- 1992-09-07 JP JP23814092A patent/JP3298935B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
M.M.Atrahan 外,System R:Relational Approach to Database Management,ACM Transactions in Database Systems,米国,ACM,Vol.1,No.2,p.97−−137 |
Mark F.Hornick,A Shared Segmented Memory System for an Object−Oriented Database,Reading in Object−Oriented DataBase Systems,米国,Morgan Kaufmann,p,273−−286 |
牧之内 顕文,オブジェクト志向データベース管理システムのアーキテクチャ,情報処理,日本,情報処理学会,1991年 5月 1日,Vol.32,No.5,p.514−−522 |
Also Published As
Publication number | Publication date |
---|---|
JPH0689209A (ja) | 1994-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9058351B2 (en) | Apparatus and method for read optimized bulk data storage | |
US6061678A (en) | Approach for managing access to large objects in database systems using large object indexes | |
US6738790B1 (en) | Approach for accessing large objects | |
US7987190B2 (en) | Filesystem having a filename cache | |
US6658437B1 (en) | System and method for data space allocation using optimized bit representation | |
US6804680B2 (en) | Extensible database | |
US4601012A (en) | Zone partitioning in volume recovery system | |
JPH0628226A (ja) | データ処理方法および装置 | |
US10049041B2 (en) | Memory centric database architecture | |
US5600596A (en) | Data access scheme with simplified fast data writing | |
JP3298935B2 (ja) | ファイル管理装置 | |
JP3636773B2 (ja) | データベースのチェックを行う情報処理装置 | |
JP3157235B2 (ja) | データ管理装置 | |
JP2828354B2 (ja) | データベース管理装置 | |
JP2002342137A (ja) | 文書管理装置及び文書管理方法並びに記録媒体 | |
JP3929269B2 (ja) | データ処理方法および装置 | |
JPH0524549B2 (ja) | ||
GB2114784A (en) | Information-indexing machines | |
JP2000148548A (ja) | 不要レコード削除装置 | |
JPS63743A (ja) | ワ−ドプロセツサにおける文書管理方式 | |
JP3398672B2 (ja) | 中間データ格納装置 | |
JP2743857B2 (ja) | 領域共用ファイルのデータ領域管理システム | |
JPH03206535A (ja) | 共有ファイル管理方式 | |
JPH07104804B2 (ja) | データベース世代管理方法 | |
JP2672818B2 (ja) | メモリのセグメント管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020402 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080419 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090419 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |