JPH0769922B2 - メモリ空間再使用管理方法及びシステム - Google Patents

メモリ空間再使用管理方法及びシステム

Info

Publication number
JPH0769922B2
JPH0769922B2 JP3103461A JP10346191A JPH0769922B2 JP H0769922 B2 JPH0769922 B2 JP H0769922B2 JP 3103461 A JP3103461 A JP 3103461A JP 10346191 A JP10346191 A JP 10346191A JP H0769922 B2 JPH0769922 B2 JP H0769922B2
Authority
JP
Japan
Prior art keywords
node
nodes
tree
space
sms
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 - Lifetime
Application number
JP3103461A
Other languages
English (en)
Other versions
JPH04229372A (ja
Inventor
ロバート・ベアード
ジェラルド・パークス・ボズマン
ナンシー・ユィンメイ・ヤング
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04229372A publication Critical patent/JPH04229372A/ja
Publication of JPH0769922B2 publication Critical patent/JPH0769922B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPUシステムが管理
する記憶装置、より詳しくは、空間再使用を管理し、外
部記憶ファイル上の木(tree)で構成されたインデックス
(索引)における局所の次数を保存する方法及び手段に
関する。
【0002】
【従来の技術】従来の技術では、記憶構造、探索及びア
クセス方法の間の親密且つ繊細な関係が認識されてい
る。キー主導ファイルを構成するための、CPUとその
記憶サブシステム及びB木(B-tree) との関連づけは後
で説明する。ファイル及びそのインデックスは不規則な
順序で動的に且つ頻繁にアクセスされる。複雑化の原因
の1つはファイル及びそのインデックスが影(shadow)書
込みされることである。その特徴は局所及び空間管理が
混乱しがちなことである。即ち、新しいファイルを作っ
て古いファイルを削除し、そして現在のファイルを更新
するとき、隣接するファイルは分散される。
【0003】[CPU及び幾つかの動作要素]CPU、
即ちプロセッサは一般に局所オペレーティング・システ
ム(OS)、RAM専用内部記憶、動作時に前記内部記
憶から形成される局所命令及びデータ・キャッシュ、外
部記憶、並びにロック及びキャッシュ資源マネジャを含
む。
【0004】CPU上で実行するアプリケーション(プ
ロセス/タスク)はOSによって読取/書込動作を生成
する。次に、読取/書込動作はデータ・キャッシュ及び
ロック資源マネジャを利用して、デイレクトリがロック
できる、データ・キャッシュ内に常駐するか又は前記共
有外部記憶からリフレッシュされるデータ(ページ、レ
コード、ファイル)のアクセス経路を設定する。用語 "
デイレクトリがロックできる経路" は、デイレクトリ、
インデックス又はカタログを用いて1以上のファイル/
レコード/ページのアクセス可用度を指定し、それによ
って他者の未許可のアクセスを排除するロック・マネジ
ャの動作に関連する。ちなみに、 "前記データへの経
路" はデイレクトリ等を用いて仮想即ち論理アドレスで
始まる連続的な写像と同義であり、有形の物理的な内部
記憶又は外部記憶内の絶対データ・ロケーションを生じ
る。
【0005】[内部記憶及び外部記憶]記憶費用は速度
とともに劇的に増大するので、多くのコンピュータ・シ
ステムは物理的な記憶サブシステムを幾つかの性能レベ
ルに分割する。これらのレベルの中には、例えばDAS
D及びテープのように、共有アクセス周辺I/O装置と
して扱われ且つ非同期経路を介してアクセスされるもの
がある。他のレベルの中には、RAM及びキャッシュの
ように、システム・ハードウェアにより直に扱われ且つ
内部記憶の一部として同期経路を介してアクセスされる
ものがある。
【0006】用語"内部記憶"は1回の読取/書込転送で
アドレス可能な記憶部分を示す。IBMシステムでは、
内部記憶は延長部分("拡張記憶")がなければバイト・ア
ドレス可能である。拡張記憶はブロック・アドレス又は
ページ・アドレス(4096バイト/ページ)で任意に
アクセスされる。内部記憶はLRU実メモリに支援され
たページング記憶として管理される。とはいえ、データ
・サイズの単位、即ちフレームの選択は任意である。最
後に、"外部記憶"は任意にアドレスできないバルク記憶
部分を示し、DASDのように直にアクセスせねばなら
ない。
【0007】[データ構造、ファイル記憶及びアクセス
動作の解釈]"構造"はグループに属するエレメント間の
関係である。従って、"データ構造"はデータのエレメン
ト間の関係を意味する。"ファイル即ちデータ・セット"
並びに"レコード"及び"フィールド"の下位区分は、物理
的に外部記憶に常駐し且つアクセス(検索)効率を高め
るように構成されたデータ構造である。
【0008】ところで、"フィールド"は情報の単位であ
るのに対し、"レコード"は単位として扱われる関連フィ
ールドの集まりである。通常、各々のレコードは独特の
数字コード名即ち"キー"により他のレコードから識別さ
れる。つまり、ファイル即ちデータ・セットは、固定長
又は可変長の関連レコードの集まりである。重要なアク
セス属性の1つは、必要になるかもしれないキーの値の
範囲である。
【0009】レコードの位置は既知であるか又はそのキ
ーから決定できるので、内部記憶又は外部記憶にあるフ
ァイル/レコードは任意の順序で検索することができ
る。DASDに記憶されたレコードについては、レコー
ド・キーと実際のキー・アドレスの間に特殊な関係を持
つことができる。即ち、キーに基づいた計算又はキーに
よるテーブル索引からレコード又はファイルのアドレス
を決定できる。あいにく、キー/アドレス変換の計算
は、衝突を最小限にするためにアドレス・ロケーション
を分散させねばならないので極めて大きなアドレス空間
を必要とする。
【0010】レコード・ロケーションの計算を不要にす
るために、全てのキーの値と対応するアドレスを一致さ
せる、即ちインデックスを構築し維持することができ
る。しかしながら、極めて多数のレコード又はファイル
はインデックス・リストを巨大なものにし、所与のレコ
ードはどれも探索/アクセス時間が大幅に増大する。
【0011】"索引順次ファイル構成"及び"木"は前記イ
ンデックス・リスト限界を克服するように設計された従
来の技術のデータ・アクセス構造である。ちなみに、索
引順次ファイル構成は、ファイル・レコードをそれらの
キーに従って順序づける必要がある。特定のレコードに
ついて全てのファイルを走査するのではなく、部分イン
デックスを調べて開始する場所及びどれくらい走査し続
けるべきかを概略的に示し、当該ファイルに前記レコー
ドが存在するかしないかを確かめることができる。
【0012】木はアイテムの集まりに階層順位を与え
る。木構成はファイル・デイレクトリを定義し且つアク
セスの権利及び特権を決めるためによく用いられる。構
造的には、木はグラフの一種、即ちノードの集まり及び
接続するリンクである。木は入力次数(in-degree) 0の
"ルート" と呼ばれる1つのノードと、入力次数1の他
の全てのノードから成る"後続ノード"(successor) のセ
ットとから成る。入力次数はノードに入力するリンクの
番号を示す。
【0013】探索を容易にするように、木のノードは順
序づけられ方向づけられる。例えば、キーの値の増加と
ともに(任意に)左から右に順序づけることができる。
方向づけは任意のノードからその後続ノードへの特定方
向の経路が存在することから生じる。順序づけ及び方向
づけは反復走査を可能にする。
【0014】[レコード、ファイル及びページの再帰]
フィールド、レコード及びファイル(関連レコードのグ
ループ)は、記憶管理がなおアプリケーション実行によ
り実行され且つDASD/テープ駆動記憶モデルに反映
された機能であったときの古い作品で最初に用いられた
記憶/情報構成体である。ページ及びページ管理された
記憶は新しい技術水準を反映する構成体及びプロトコル
である。システムによっては、ページ及びページ管理さ
れた記憶はレコードの上部の層として動作する。ちなみ
に、ページは独特のキー又はページID(識別)、実記
憶アドレス及び仮想記憶アドレスを割当てられ、ロック
できるエンティティである。例えば、ページは、IBM
システムでは4096バイトと定められているが、レコ
ードによって定めることもできる。1つの利点はサブペ
ージをロックできることである。本発明の方法では、レ
コードの記憶管理で用いる木のようなデータ構造は、レ
コード及びファイルをアクセスする外にページに関して
も用いることができる。
【0015】アドレス可能な記憶の単位は構造的な定義
の問題であり、本発明はアドレス可能な記憶の読取/書
込管理をインデックスによって扱うから、本明細書では
以下、ファイル/レコード/ページは同義であると仮定
する。もし記憶マネジャがページ主導であれば、ページ
はアドレス可能な記憶の単位であり、ページIDはイン
デックスに用いるキーとして扱われる。同様に、記憶マ
ネジャがレコード又はファイル主導であれば、対応する
単位はアドレス可能な記憶の単位とみなすべきである。
【0016】[B木]従来の技術では、"B木"は空の
木、ないしは、あらゆるノードが後続ノードを持たない
か又はせいぜい2つの隣接後続ノードを持つ木である。
使用されたとき、B木は最悪ケースの性能が保証された
外部記憶にあるファイルからのレコードの検索、挿入又
は削除を可能にするデータ構造である。この意味で、B
木は、アプリケーションを、レコード・キー及び関連し
た属性(ロケーション・ポインタ)に対する階層インデ
ックスとして、又は前記キーをワードないしは記号とす
る辞書として提供する。
【0017】この発明で用いる"葉(leaf)探索可能な"B
木は、Bozman外の米国特許出願第07/255000号(1988年10
月7日出願)に記載されている。
【0018】前記Bozman外の文献によれば、葉探索可能
なB木は、全てのレコード・キー及び関連した属性が外
部ノード(葉)に現われ且つ内部ノードが前記葉への経
路を定める分離記号キー(経路指定機能)を含む木であ
る。次数m(後続ノードの最大数)の葉探索可能なB木
に課された他の制約は下記を含む。 (1) 木はコンパクトでなければならない。 (2) 内部ノードの各々はせいぜいm後続ノードを有す
る。 (3) ルートを除いて各内部ノードは少なくともm/2の後
続ノードを有する。 (4) ルート・ノードは少なくとも2つの後続ノードを有
する。 (5) ルート・ノードから外部ノードの各々までの経路長
は同じである。 (6) 全ての外部ノード(葉)は(m'/2) < X < (m'-1)の範
囲にあるXキー即ちデータ・エレメントを含む(m'とm は
形式的な関係を持たなくてもよい)。
【0019】[従来の技術の直接関係のあるB木]前記
Bozman外の文献はロックを用いずに動的な不規則アクセ
ス・ファイル上に形成された葉探索可能なB木の構成イ
ンデックスを読取る方法を開示している。しかしなが
ら、インデックスの書込み又は更新はなおファイル/レ
コード/ページのロックを必要とする。前記Bozman外の
文献では、葉探索可能な木は、全ての内部ノードが経路
指定ポインタ及び同期値を含むように構成されている。
前記方法の主体は、分木(subtree) 対応部内の隣接する
階層的に間隔をおいたノードの各対によって示された同
期値と目標ノードとを、目標キーが取得するか、経路が
尽きるか、又は前記方法が終了するまで反復比較するこ
とである。
【0020】Sedgewick, "Algorithm", 2nd Edition, c
opyright 1988 by Addison-WesleyPub. Co., (pages 25
9-273, and 602-605)は、探索を容易にするために所定
の方法で大きさに従って順序づけられたノードの各々が
レコード・キーの値を含む場合に、拡張及び修正ができ
るファイル・デイレクトリの形式としてB木を引用して
いる。Sedgewick の文献では、例えば動的プログラミン
グ探索アルゴリズムの支援を最適化するために順序を変
更している。
【0021】米国特許第4611272 号は2レベル・インデ
ックス主導ファイルについて記載している。このインデ
ックス・レベルはページ数の変更を受入れる。ページの
アクセスはインデックスの大きさを増すのではなくハッ
シュ計算によって行なわれる。
【0022】米国特許第4677550 号は、葉主導多重ウェ
イ探索木に関連したキーから取出された相対的な大きさ
のポインタの生成及び保管は、取出されたポインタの密
度の関数としての次のデータ・アクセス経路を短縮でき
ることを示している。ちなみに、米国特許第4677550 号
は、連続する探索キーの各対についてポインタとレコー
ド・ロケーションを結合させる。
【0023】[影書込み]用語"影書込"は、更新された
オブジェクトを外部記憶に最初に書込むとき、システム
は元のオブジェクトに重ね書きせず、代りに、前記更新
されたオブジェクトを外部記憶の別の場所に書込み、対
応デイレクトリを前記更新されたオブジェクトを指すよ
うに変更する動作を示す。古いオブジェクトは更新され
たオブジェクトの"影"である。
【0024】システムの影書込み及びそれを前の情報状
態を回復する際に使用する例は米国特許第4750106 号に
記載されている。
【0025】米国特許第4750106 号は、かなり初期の記
憶管理システムで最初のDASDコピーからずれた既知
の位置に、DASDに基づく木で構成されたインデック
スの二重即ち影のコピーを置いている。前記システムで
は、インデックス・マップはテキスト・ストリーム及び
他のオブジェクトのDASDロケーションを指す。もし
前記マップに欠陥があれば、オブジェクトはアクセスで
きない。"マップ"誤りが検出されると、影即ちバックア
ップ・コピーを呼出してロケーション及び回復を援助す
ることができる。
【0026】[B木の空間管理及び影書込みエレメン
ト]プロセスは一度に1ページ又は1レコードの読み書
きしかできないが、内部記憶内のキャッシュでは複数の
アクセス可能なページ又はレコードを持つことができ
る。プロセスは、それが木ノードを変更するとき、それ
に割当てられた内部メモリ・バッファ内の専用コピーで
実際に動作する。変更されたノードはそれに付随した木
ポインタの変更とともに、キャッシュを介してそれを外
部記憶内の新しいアドレスに書込むことによりB木に導
入される。また、B木から独立したマップ及び資源マネ
ジャを用いてB木ノード変更(挿入/削除)を追跡する
ことも知られている。
【0027】B木を維持するために影書込みする1つの
不利点は、更新又は追加されたデータのための外部記憶
空間がオペレーティング・システムの記憶マネジャ部に
より割振られ、且つ変更されたノードの古いデータの外
部記憶空間が割振り解除されねばならないことである。
記憶マネジャが呼出され、ノードの提供及び返還、及び
最新の外部記憶割振り状態の記録、又は使用可能空間の
再要求のための定期的な"不要情報収集プロセス"使用の
ための処理費用を負担する。
【0028】もう1つの不利点は、続いて起こるノード
追加、削除及び変更の結果、データに存在していたかも
しれない物理的なクラスタリングが影書込みで破壊され
ることである。これはデータを順次に読取るときのパフ
ォーマンスを低下させることがありうる。
【0029】
【発明が解決しようとする課題】本発明の目的は影書込
みされた木で構成され、外部記憶に常駐して不規則にア
クセスされるレコード、ページ及びファイルのインデッ
クス(ノード)に関して負わされた記憶空間管理でCP
Uオーバーヘッドを減らす方法を提供することである。
【0030】本発明のもう1つの目的は影書込みされた
B木に関する記憶空間の再使用を管理し、同時に、それ
に付加されたノード及び更新されたノードの物理的なク
ラスタリングを維持する方法を提供することである。
【0031】
【課題を解決するための手段】前記目的は定義されたフ
ァイルのB木で構成されたインデックスのキーの挿入及
び削除及びコンピュータ・システムのシステム管理記憶
(SMS)部に書込まれた影を管理する方法によって達
成される。前記SMSはインデックス・ロック可能な前
記ファイルへの経路を設定する。
【0032】前記方法は、B木の各インデックスがルー
ト・ノード、内部ノード及び外部ノードを含む場合、及
び全てのファイルのキーが外部ノード(葉)に現われ、
全ての内部(非葉)ノードが経路指定ポインタ及び同期
値を含む場合に効果をもたらす。前記方法は、関連した
情報容量が限定されているノードのオーバーフロー又は
アンダーフローを避けるためにノードの挿入及び削除に
応答して当該選択されたノードは(分割動作により)分
割又は(結合動作により)結合できることを企図する。
前記方法は、任意のファイルの更新又は削除に対応し
て、更新されたファイルに対するキーを含むこれらの外
部ノードへのアクセス経路にあるノードの同期値を変更
することを企図する。
【0033】前記方法は、(a)SMSにより葉探索B木
アクセス経路を定め、(b)前記B木の非葉ノードにより
限定された自由空間リストを定め、(c)アンダーフロー
及びオーバーフローを回避するためにB木の結合動作及
び分割動作での動的な変更に応答して、無効になった下
位ノード(後続ノード)のノード(先行ノード)に割当
てられた空間を再使用するステップを含み、それによっ
てSMSにおける葉ノードの連続性が維持される。ちな
みに、本発明の方法では、自由空間は前記自由空間リス
トが一杯になったときにだけSMSに戻される。
【0034】換言すれば、本発明の方法は影書込みされ
たB木の全ての非葉ノードにある空間を確保しておき、
付随した使用可能なノード・アドレスのリストを維持す
る。新しいノードが要求されると、新しいノードに対す
る先行ノード(親)に関連した空間使用可能ノード・リ
ストから空間が取得される。親リストが使い尽くされた
ときにだけ、ノード在庫マネジャから空間(ノード)が
取得される。ノードの削除はそのアドレスを、当該ノー
ドの親が維持する自由な、即ち使用可能なリストに入れ
る。もし空間がなければ、親ノード・リスト上の空間
は、親ノードの既存下位(子)ノードにより最小の局所
を有するリスト上の当該ノードを在庫マネジャに返還す
ることにより取得される。
【0035】本発明の方法の利点は、ノード生成及びノ
ード削除がアトミック動作であり、インデックス及びリ
ストに対する変更を分割できないサブステップとして含
むことである。更に、空間使用の変更のアトミック更新
の部分のような現に無効になった下位ノード(古い子ノ
ード)は先行ノード(親ノード)の自由空間リストに返
還される。
【0036】
【実施例】[本発明の方法を実行するためのホストCP
U環境]システム中の各CPUの構成がIBM MVS
オペレーティング・システムを有するIBM/360又
はIBM/370である場合には、本発明は良好に実施
することができる。IBM360構成のCPUは米国特
許第3400371 号に詳細に記述されている。CPUが共有
する外部記憶のアクセスに関する構成は米国特許第4207
609 号に記載されている。
【0037】MVSオペレーティング・システムはIB
M出版物GC28-1150,"MVS/ExtendedArchitecture System
Programming Library: System Macros and Facilitie
s",Volume 1にも記述されている。一般的なMVS又は
他のオペレーティング・システム・サービス、例えば局
所ロック管理、割込み又はモニタによるサブシステム呼
出し、及びタスクのポスト(post)及びウエイト(wait)動
作の詳細な説明は省略する。当業者はこれらのOSサー
ビスは十分に理解していると考えられる。
【0038】[CPU、キャッシュ及び記憶装置の間の
関係]図1は構成された記憶とCPUの関係を示す。図
示のように、CPU1は経路11及び13を介して内部
記憶装置3及び外部記憶装置5をアクセスする。内部記
憶装置3はプロセッサ記憶装置2及び拡張記憶装置4を
含む。ちなみに、プロセッサ記憶装置2はバイト・アド
レス可能なランダム・アクセスで動作するが、拡張記憶
装置4はファイル/レコード/ページ・アドレス可能な
ランダム・アクセスで動作する。外部記憶装置5は1以
上のDASDを含み、CPU1で実行するアプリケーシ
ョンにより参照される情報のファイル/レコード/ペー
ジを記憶する。
【0039】一般に、CPUプロセッサを呼出すアプリ
ケーションは、キャッシュに対するその仮想/線形又は
実空間アドレスのどれかによってファイル/レコード/
ページを参照する。ちなみに、キャッシュ9はハードウ
ェア又はソフトウェアで実現することができる。もしソ
フトウェアで実現されれば、キャッシュ9は内部記憶装
置3の中のどこかに配置することができる。もしキャッ
シュ9でファイル/レコード/ページが使用できなけれ
ば、拡張記憶装置4又は外部記憶装置5をアクセスする
必要がある。
【0040】外部記憶装置5の中のI/O境界7(図示
せず)を横切って複数のファイル/レコード/ページが
アクセスされる場合、それらは前述の米国特許第420760
9 号明細書に記載された方法に従って処理することがで
きる。付言すれば、内部記憶装置3に対してアクセスが
行われるとき、プロセッサは前記アクセスが終了するま
で待つ。I/O境界を横切ってアクセスが行われると
き、プロセッサは取出し(アクセス)終了を待つあいだ
別のタスク又はプロセスを呼出す。
【0041】[本発明で用いる葉探索可能なB木及び経
路指定方式]図2はm=4且つm'=6 の葉探索可能な
B木を示す。ルート・ノード28は入力次数0である
が、残りの全てのノード10〜26は入力次数1であ
る。ノード24及び26は内部ノードであるが、ノード
10〜22は外部ノード即ち葉ノードとして動作する。
ルート・ノード及び各内部ノードに関連しているのは後
続(外部)ノードを指すポインタである。従って、ノー
ド24は葉ノード16〜22の各々を指すポインタを有
する。同様に、ノード26は葉ノード10〜14を指す
ポインタを有する。そして、キーはたまたま葉ノード1
6〜22及び葉ノード10〜14の間で、それぞれ昇順
に配列されることがある。
【0042】前記Bozman外の文献に示すように、多くの
場合、動作はアドレス可能なオブジェクトに与えられ
る。これらの動作はINSERT(挿入)、DELETE(削除)、FIND
(発見)及びNEXT(次)を含む。INSERT動作は新しいファイ
ル/レコード/ページを木に付加し、それに独特のキー
が関連する。DELETE動作はキーにより指示された木から
ファイル/レコード/ページを削除する。FIND動作はフ
ァイル/レコード/ページを検索するが、NEXT動作は他
のファイル/レコード/ページの証印(indicia) を検索
する。
【0043】前記Bozman外の文献は葉探索可能なB木に
構成されたインデックスのロック及びそれに関連して下
記の概念を導入した。即ち、任意の更新者Uのために最
小の分木のルートであるノードが存在する。最小の分木
は更新動作から生じる全ての構造的な変更及びデータの
変更を完全に含む。"最小の分木"はUの "最深層の安全
ノード" と呼ばれる。ノードUから葉までの経路はU
の"有効範囲"とも呼ばれる。ちなみに、B木中のノード
は、もしそれが一杯でなければ "挿入安全" と考えられ
る。即ち、ノードが持つ関連キーは(m-1) よりも少な
い。同様に、もしノードが最小ではない、即ちノードが
持つ関連キーが [(m/2)-1]よりも多ければ、該ノード
は"削除安全"と考えられる。
【0044】[冗長データを含まず無矛盾の影書込みさ
れたB木の更新(挿入/削除)]INSERTプロセス:B木を
変更する前に、INSERTプロセスは先ずロック・プロトコ
ルを用いてその有効範囲をロックする。その結果、ルー
トが最深層の安全ノードである分木は、挿入点が見つか
るときロックされたままである。この分木は安全な葉ノ
ードであり、オーバーフローを起こさずに、新しいキー
及びデータを挿入できる。さもなければ、分木は挿入安
全ではない子孫経路の親である最深層の安全ノードであ
るので、挿入によりノードは分割される。
【0045】挿入によるノード分割をなし遂げる従来の
方法では、新しいキー/データを受取ろうとする葉ノー
ドを、(m'/2)キー/データの各エレメント(偶数のエレ
メントがある場合)又は[(m'/2)-1]キー/データ及び
(m'/2)キー/データのそれぞれのエレメント(奇数のエ
レメントがある場合)を含むノードに分割し、適切なノ
ードに前記新しいエレメントを付加する。この方法は親
ノードに経路指定機能/ポインタ・エレメントを伝達
し、もし親ノードが挿入安全でなければ、オーバーフロ
ーを生じる。よって、"上方"伝達は最深層挿入安全ノー
ドに達するまで反復して発生できる。
【0046】前記Bozman外の文献では、従来の方法は下
記の影更新を用いて変更される。
【0047】もし葉ノードが"挿入安全"である(即ち、
次数mのB木の中のノードが一杯ではなく、m-1 よりも
少ないのエレメントがそれに割当てられている)なら
ば、新しいデータが挿入され、前記葉ノードは2次記憶
の中の既存のロケーション(即ち、"所定の位置")に書
込まれる。さもなければ、最深層の挿入安全ノードまで
分割ノード毎に、前のノードに代わる2つのノードが、
それらの既存のロケーションではなく、新しい2次記憶
のロケーションに書込まれる。即ち、分割から生じる2
つのノードは新しい2次記憶のロケーションに最終形式
で書込まれ、B木は前の無矛盾の状態のままである。そ
れらは2つの新しいポインタに沿った挿入安全ノードへ
の新しい経路指定機能の挿入により前記B木に連結され
る。そして挿入安全ノードは2次記憶にある既存のロケ
ーションに書込まれる。この動作の結果、B木は新しい
無矛盾の状態に変換される。
【0048】図3乃至図5はB木の任意の部分を示す。
これらの図に示すノードのエレメントを木に挿入する方
法の概略は、前記Bozmanの文献による方法を本発明の目
的のために改良したものである。
【0049】図3は、エレメント102を挿入する前
に、次数 m=4のB木の部分を示す。本発明は内部ノード
の各々に付加された自由、即ち使用可能ノードのリスト
を用いる。自由リストの中のノードは各非葉ノードの右
端のリストとして図示されている。図示のように、挿入
安全ノード(30)の自由リストには使用可能なノード
44、48及び50がある。内部ノード32の自由リス
トには使用可能なノード36、38、40及び41があ
る。
【0050】図4は挿入安全ノード30に連結される以
前の(オーバーフローから生じる)新たに影更新された
ノードが書込まれた状態を示す。新しい2つの葉ノード
36および38は、それらの親ノード(32)の自由リ
ストから割振られている。新しい2つの内部ノード44
および48はノード30の自由リストから割振られてい
る。
【0051】図5は、キー98及びそれに隣接する2つ
のポインタを挿入することによりノード30に結合され
た影ノードを示す。前者の経路はここでは木から分離さ
れている。自由なリストは、新たに割振られたノードの
削除及び分離されたノードの復帰を反映するように更新
されている。
【0052】DELETEプロセス:前記Bozmanの文献に記述
されているように、削除は次のように管理される。
【0053】もし削除されたエレメントを以前に含んで
いたノードが前記エレメントの削除によってアンダーフ
ローしなければ、当該ノードは所定の位置に書込まれ、
プロセスは実行される。さもなければ、合併するエレメ
ントを受取る隣接の後続ノードは、新たに2次記憶に割
振られたロケーションに書込むことにより更新された影
である。
【0054】もしこの合併手順がキー回転によって終了
すれば、回転にかかわる後続ノードも影更新される。こ
の場合、キー回転にかかわる親ノードは所定の位置に書
込まれ、それによって新しいノードを木に連結する。も
しこの合併手順が削除安全ノードにおける削除によって
終了すれば、新しい影書込み分岐はこの時点で木に連結
され、削除安全ノードは所定の位置に書込まれる。
【0055】図6乃至図8は、削除動作が実行される図
5に示す木の連結ノード版を示す。削除動作はこの発明
のために変更された前記Bozman外の文献に示す手法を利
用する。
【0056】図6はエレメント101を削除する前のB
木の一部を示す。自由なリストの中のノードは各非葉ノ
ードの右端のリストとして図示されている。挿入安全ノ
ード(30)の自由リストの中には使用可能なノード3
2及び50がある。内部ノード44の自由リストの中に
は使用可能なノード34及び40がある。内部ノード4
8の自由リストの中には使用可能なノード41がある。
【0057】図7は、葉ノード及びその親ノードのアン
ダーフローから生じる新しい2つの影更新されたノード
32及び41を破線で示す。ノード32は親ノード、ノ
ード30の自由リストから取得され、同様にノード41
は親ノード、ノード48から取得された。
【0058】図8は、前記回転が影ノードを連結した後
のB木の一部を示す。現在分離している、以前のノード
は破線で示す。自由なリストは、新たに割振られたノー
ドの削除及び分離されたノードの復帰を反映するように
更新されている。
【0059】[本発明の方法の説明]図9は、B木に新
しいエレメントを挿入する方法のステップを示す。新し
いエレメントを包含する予定になっている葉ノードを見
つけるために普通のB木探索手法が用いられる(ロジッ
ク・ブロック100)。適切なロック・プロトコルが更
新範囲をロックする。
【0060】もし新しいエレメントの挿入がノードでオ
ーバーフローを起こさなければ、前記新しいエレメント
が挿入され、前記ノードは所定の位置に書込まれる(ロ
ジック・ブロック101〜103)。もし挿入がオーバ
ーフローを起こせば、挿入安全ノードが見つかるまで、
下記項目の動作を反復して実行する(ロジック・ブロッ
ク104〜112、101)。
【0061】(1)もし親ノードの自由リストでノードが
使用可能ならば、それを用いる (ロジック・ブロック1
06)。さもなければ、(m/2)のキー/データ・エレメン
トを含む新しいノードを取得する(ロジック・ブロック
105)。
【0062】(2) (m/2)のキー/データ・エレメントを
含む新しいノードの1つを影書込みする(ロジック・ブ
ロック107)。
【0063】(3)もし残りのノードの親ノードの自由リ
スト中のノードが使用可能ならば、それを用いる(ロジ
ック・ブロック110)。さもなければ、ノード在庫マ
ネジャから新しいノードを取得する(ロジック・ブロッ
ク109)。
【0064】(4)残りのキー/データ・エレメントを含
む、最後のノードの対を影書込みする(ロジック・ブロ
ック111)。
【0065】(5)下記により親ノードに新しい経路指定
機能を挿入する。(a)ロジック・ブロック106及び1
10で自由リストから取得したノードを削除する。(b)
分割によって置き換えられたノードを自由リストに加え
る。
【0066】(6)もし親ノードが挿入安全でなければ
(ロジック・ブロック101)、親ノードを用いて前記
項目(1)に移る(ロジック・ブロック104)。
【0067】この動作が終ると、新しい経路指定機能が
挿入安全ノードに挿入される(ロジック・ブロック10
3)。
【0068】図10及び図11はB木の中のエレメント
を削除する方法のステップを示す。普通のB木探索手法
は削除すべきエレメントを含む葉ノードを見つけるため
に用いられる(ロジック・ブロック200)。適切なロ
ック・プロトコルを用いて更新範囲がロックされる。
【0069】DELETEプロセスはロック・プロトコルを用
いてINSERTプロセスと同じ方法でその有効範囲をロック
する。そして、目標エレメントは、削除安全ノードの中
のキー回転即ち削除が生じるまで、(アンダーフローに
より)結果として起こりうる合併によって削除される。
隣接する同胞ノードは共通の親ノードの中で隣り合って
いる。よって、最も左と最も右のポインタによって指定
されたノードに隣接する同胞ノードは1つしかない。全
ての他の親ノードの後続ノードは2つある。
【0070】もしエレメントの削除がノードでアンダー
フローを起こさなければ、前記エレメントを削除し、前
記ノードを所定の位置に書込む(ロジック・ブロック2
01〜203)。もし削除がアンダーフローを起こせ
ば、隣接する同胞ノードを検査し、2つのノードを結合
して1つにすることが可能かどうかを調べる(ロジック
・ブロック204)。もし可能なら、それらを結合して
1つのノードにし、影書込みする。親ノードの自由空間
リストを検査しノードが使用可能かどうかを調べる(ロ
ジック・ブロック205)。もしノードが使用可能な
ら、それを使用する(ロジック・ブロック207)。さ
もなければ、ロジック・ブロック206で、ノード在庫
マネジャから新しいノードを取得する。そして、合併さ
れた2つの同胞ノードの内容を含む新しいノードは、ロ
ジック・ブロック208で影書込みされる。もしロジッ
ク・ブロック207でノードが取得されれば、親ノード
の自由リストからそれを削除する(ロジック・ブロック
209)。
【0071】もし2つの置き換えられたノードを親ノー
ドの自由リストに付加することが1つのノードのオーバ
ーフローを起こす(即ち、前記リストは既に一杯であ
る)ならば、ロジック・ブロック211で、結合された
セットからの最小の局所を有するノードがノード在庫マ
ネジャに返還される。置き換えられたノードはどちらも
前記自由リストに入れられる(ロジック・ブロック21
2)。実行されたばかりの合併により親ノードにある経
路指定機能が削除されるので、再び親ノードが選択され
て処理はロジック・ブロック201に戻り、次の削除に
よるアンダーフローの検査を反復する。
【0072】ロジック・ブロック204で、もし2つの
ノードを結合できない(即ち、隣接する後続ノードに(m
/2) 以上のエレメントがある)と判定されれば、2つの
ノードは、削除をうけるノードがアンダーフローしない
ように、隣接する後続ノードからのエレメントを"回転"
させることによりバランスがとられる(ロジック・ブロ
ック214〜225)。この回転から生じた新たに"バ
ランスがとられた"ノードを影書込みする(ロジック・
ブロック218及び222)ために、もし可能なら、ノ
ードは先行ノード、即ち親ノードから取得し(ロジック
・ブロック216及び220)、さもなければ、ノード
在庫マネジャから取得する(ロジック・ブロック217
及び221)。そして、2つの回転されたノードの間を
新たに分割するキーを反映するように親ノードの中の経
路指定機能を更新し(ロジック・ブロック223)、ロ
ジック・ブロック216及び220で取得されたノード
を削除し且つ回転によって置き換えられたノードを加え
るように親ノードの自由リストを更新する(ロジック・
ブロック224)。そして親ノードは所定の位置に書込
まれる(ロジック・ブロック225及び203)。
【0073】
【発明の効果】この発明によれば、コンピュータ・シス
テムのシステム管理記憶(SMS)に与えられ且つ影書
込みされB木に構成されたファイルのインデックスのキ
ーの挿入及び削除を管理し、前記SMSはインデックス
でロックできる、前記ファイルへの経路を設定する方法
が提供される。
【図面の簡単な説明】
【図1】従来の技術のよる大型メイン・フレームCPU
に関する記憶装置の構成を示す図である。
【図2】前記Bozmanの特許出願による外部記憶で定めら
れた、ルート、内部及び外部ノードを含む次数4(m=
4)のB木インデックスを示す図である。
【図3】本発明の方法による前記Bozmanの特許出願に変
更を加えた木でのノードの静的挿入を示す図である。
【図4】本発明の方法による前記Bozmanの特許出願に変
更を加えた木でのノードの静的挿入を示す図である。
【図5】本発明の方法による前記Bozmanの特許出願に変
更を加えた木でのノードの静的挿入を示す図である。
【図6】本発明の方法による前記Bozmanの特許出願に変
更を加えた木からのノードの静的削除を示す図である。
【図7】本発明の方法による前記Bozmanの特許出願に変
更を加えた木からのノードの静的削除を示す図である。
【図8】本発明の方法による前記Bozmanの特許出願に変
更を加えた木からのノードの静的削除を示す図である。
【図9】図3乃至図5でノード挿入実行を制御する流れ
図である。
【図10】図6乃至図8でノード削除実行を制御する流
れ図である。
【図11】図6乃至図8でノード削除実行を制御する流
れ図である。
【符号の説明】
1 CPU 2 プロセッサ記憶装置 3 内部記憶装置 4 拡張記憶装置 5 外部記憶装置 9 キャッシュ 10 外部ノード 12 外部ノード 14 外部ノード 16 外部ノード 18 外部ノード 20 外部ノード 22 外部ノード 24 内部ノード 26 内部ノード 28 ルート・ノード 30 挿入安全ノード 32 親ノード 36 葉ノード 38 葉ノード 44 内部ノード 48 内部ノード 98 キー 100 ロジック・ブロック 101 ロジック・ブロック 102 ロジック・ブロック 103 ロジック・ブロック 104 ロジック・ブロック 105 ロジック・ブロック 106 ロジック・ブロック 107 ロジック・ブロック 108 ロジック・ブロック 109 ロジック・ブロック 110 ロジック・ブロック 111 ロジック・ブロック 112 ロジック・ブロック
フロントページの続き (72)発明者 ジェラルド・パークス・ボズマン アメリカ合衆国07436、ニュージャージー 州オークランド、ラマポ・バリ・ロード 609番地 (72)発明者 ナンシー・ユィンメイ・ヤング アメリカ合衆国95120、カリフォルニア州 サンノゼ、カルカテラ・ドライブ 7094番 地 (56)参考文献 特開 昭64−42731(JP,A) 特開 平1−145720(JP,A) 特開 昭59−146339(JP,A) 特開 昭64−70839(JP,A) 特開 昭61−184635(JP,A)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】動的にランダム・アクセス可能なファイル
    のキー主導の、木に構成されたインデックスに関して空
    間再使用を管理する方法であって、 前記インデックス及びファイルはCPUの外部記憶に配
    置され且つ影書込みされ、 各インデックスはルート・ノード、内部ノード及び外部
    ノードを有し、全ての前記ファイルのキーは外部ノード
    に現われ、全ての内部ノードは外部ノードへの経路指定
    ポインタ及び同期値を含み、前記内部ノードは、前記内
    部ノードに割振られた空間のアンダーフロー及びオーバ
    ーフローを回避するように分割又は結合され、 前記CPUは割り当てできるノードのマネジャを含む資
    源マネジャを有し、 (a)初期的には前記外部ノードが記憶空間で連続的に記
    憶されるように前記内部ノードの各々に対応した記憶空
    間を確保し、且つ、使用可能なノード・アドレスのリス
    トを維持するステップと、 (b)新しいノードの生成に応答して、該新しいノードに
    対する親ノードとして動作する内部ノードの前記リスト
    から、もし使用可能なら、記憶空間を取得し、前記リス
    トに使用可能なノードの記憶空間がなければ、前記資源
    マネジャから空間を取得するステップと、 (c)ノードの削除に応答して、削除されたノードの親ノ
    ードとして動作する内部ノードで維持される前記使用可
    能なリストに前記削除されたノードのアドレスを加え、
    もしも前記アドレスが既に一杯であるため該リストへの
    追加ができない場合、親ノードによって維持されるリス
    ト上のノードの中から最下位のノードを前記ノード・マ
    ネジャに返還した後、削除されたノードの親ノードとし
    て動作する内部ノードで維持される前記使用可能なリス
    トに前記削除されたノードのアドレスを追加するステッ
    プと、 (d)ノードの生成又は削除に応答して、前記ステップ
    (b)又は(c)から分離できないサブステップとして、前
    記同期値を含むインデックスの変更と前記リストの変更
    を更新するステップと、 を含む空間再使用管理方法。
  2. 【請求項2】CPUで実行される、コンピュータ・シス
    テムのシステム管理記憶(SMS)部に与えられ且つ影
    書込みされたファイルの、B木に構成されたキー主導の
    インデックスでエレメントの挿入及び削除を管理する方
    法であって、 前記SMSは前記ファイルへのインデックス・ロック可
    能な経路を設定し、 各B木のインデックスはルート・ノード、内部ノード及
    び外部ノードを含み、全ての前記ファイルのキーは外部
    (葉)ノードに現われ、全ての内部(非葉)ノードは経
    路指定ポインタ及び同期値を含み、前記ノードは該ノー
    ドのオーバーフロー又はアンダーフローを避けるために
    (分割動作により)分割されるか又は(結合動作によ
    り)結合され、 任意のファイルの更新又は削除によって、更新されたフ
    ァイルに対するキーを含む外部ノードへのアクセス経路
    の中のノードの前記同期値の変更が生じ、 (a)SMS上の葉探索B木アクセス経路を定義するステ
    ップと、 (b)前記B木の非葉ノードに関する使用可能空間リスト
    を作成するステップと、 (c)アンダーフロー及びオー
    バーフローを避けるためにB木の結合及び分割動 作で
    の動的な変更に応答して、削除された下位ノードの上位
    ノードに割当てられた空間を再使用し、インデックスと
    空間使用の証印とに対する変更を更新するステップと、 を含み、前記更新するステップが、上位ノードの使用可能空間リ
    ストに既に削除された下位ノードを追加し、もしも前記
    アドレスが既に一杯であるため該リストへの追加ができ
    ない場合、上位ノードによって維持されるリスト上のノ
    ードの中から最下位のノードを前記SMSに返還した後
    前記リストへ削除された下位ノードを追加するステップ
    を含み、 前記空間を再使用するステップと変更を更新するステッ
    プが、アトミック操作に含まれるステップであり、 前記SMSの葉ノードのDASDトラック又はシリンダ
    ないでの連続性が維持される、 空間再使用管理方法。
  3. 【請求項3】前記B木の次数がmでそのノードが挿入さ
    れるべきエレメントを有し、更に (d)もし前記ノードがエレメントを挿入することによっ
    てオーバーフローしなければ(即ち、m−1よりも多く
    のエレメントがそれに割当てられれば)、前記ノード及
    び付加されたエレメントをSMSの所定の位置に書込む
    ステップと、 (e)もし前記ノードがエレメントを挿入することによっ
    てオーバーフローする場合は、前記ノードを、前記挿入
    されたエレメントのm/2及び残りのエレメントをそれ
    ぞれ含むノードの対に置き換え、且つ前記ノードの対を
    SMSの中の新しいロケーションに書込み、前記置き換
    えでは、ノードが前記ノードの上位ノードに付加する使
    用可能空間リストで使用可能かどうかを確かめ、もし使
    用可能でなければ、SMSからノードを取得するステッ
    プと、 (f)新しい経路指定ポインタ及び同期値を、(m−1)
    よりも少ないエレメントがそれに割当てられた上位ノー
    ドに挿入するステップと、 (g)前記上位ノードをSMSの中の所定の位置に書込む
    ステップと、 を含む請求項2記載の空間再使用管理方法。
  4. 【請求項4】前記B木の次数がmでそのノードが削除さ
    れるべきエレメントを有し、更に、 (h)もし前記ノードがエレメントを削除することにより
    アンダーフローしなければ(所有するエレメントがm/
    2よりも少なければ)、前記ノードをそこから削除され
    たエレメントと一緒にSMSの所定の位置に書込むステ
    ップと、 (i)前記ノードがエレメントを削除することによりアン
    ダーフローする場合は、前記ノードを削除されたエレメ
    ントと一緒にノードの対に置き換え、前記置き換えで
    は、m/2の同胞ノードのエレメントまで回転して前記
    対の第1のノードにし、前記対の第1のノードを、そこ
    から削除されたエレメントを有する前記ノードと合併
    し、残りの同胞ノードのエレメントを回転して前記対の
    第2のノードにし、前記ノードの対をSMSの新しいロ
    ケーションに書込み、前記置き換えでは、更にノードが
    前記ノードの上位ノードに付加する使用可能空間リスト
    で使用可能であるかどうかを確かめ、もし使用可能でな
    ければ、SMSからノードを取得するステップと、 (j)新しい経路指定ポインタ及び同期値を、(m−1)
    よりも少ないエレメントがそれに割当てられている上位
    ノードに挿入するステップと、 (k)前記上位ノードをSMSの中の所定の位置に書込む
    ステップと、 を含む請求項2記載の空間再使用管理方法。
  5. 【請求項5】CPUで実行される、コンピュータ・シス
    テムのシステム管理記憶(SMS)部に与えられ且つ影
    書込みされたファイルの、B木に構成されたキー主導の
    インデックスにおけるエレメントのノード挿入方法であ
    って、 前記SMSは前記ファイルへのインデックス・ロック可
    能な経路を設定し、 各B木のインデックスはルート・ノード、内部ノード及
    び外部ノードを含み、全ての前記ファイルのキーは外部
    (葉)ノードに現われ、全ての内部(非葉)ノード)は
    経路指定ポインタ及び同期値を含み、前記ノードは関連
    した情報容量が限定されているノードのオーバーフロー
    又はアンダーフローを避けるために(分割動作により)
    分割されるか又は(結合動作により)結合され、ファイ
    ルの更新又は削除はどれも、該更新されたファイルのキ
    ーを含む外部ノードへのアクセス経路の中のノードの同
    期値の変更を生じ、 (a)前記内部ノードの各々に関し使用可能空間リストを
    作成するステップと、 (b)新しいエレメントが付加されるノードを確認し、更
    新範囲(最深層の安全な内部ノードから前記確認された
    ノードへの経路を与える最小の分木)をロックするるス
    テップと、 (c)前記確認されたノードで新しいエレメントの挿入が
    情報のオーバーフローを生じるかどうかを確認するステ
    ップであって、次の(1)または(2)のサブステッ
    プ、および(3)のサブステップを含み、前記サブステ
    ップ(1)または(2)、および(3)がアトミック操
    作として実行されるオーバーフロー発生確認ステップ
    と、 (1)オーバーフローがないとき前記確認されたノードに
    新しいエレメントを付加し且つ前記更新を所定の位置に
    書込むサブステップ; (2)前記確認されたノードを、前記付加されたエレメン
    トを含み、それぞれm/2及び残りのエレメントを有す
    るノードの対に置き換え、前記ノードの対をSMSの中
    の新しいロケーションに書込み、新しい経路指定ポイン
    タ及び同期値を、(m−1)よりも少ないエレメントが
    割当てられている上位ノードに挿入し、且つ前記上位ノ
    ードをSMSの中の所定の位置に書込むサブステップ; (3)ノードが前記ノードの上位ノードに付加された使用
    可能空間リストで使用可能であるかどうかを確認し、使
    用可能でない場合、SMSからノードを取得する前記
    (2)における置き換えステップのサブステップ; を含むB木エレメントのノード挿入方法。
  6. 【請求項6】プロセッサ、前記プロセッサに結合するサ
    ブシステム及びシステム記憶マネジャ(SMS)を有す
    るコンピュータ・システムであって、 前記プロセッサは機能的なコンピュータ・システム・イ
    メージを与えるオペレーティング・システムを含み、 前記サブシステムはB木に構成されたキー主導インデッ
    クス及びファイルを記憶し且つ影書込みする手段を含
    み、 前記システム記憶マネジャ(SMS)は前記ファイルへ
    のインデックス・ロック可能な経路を設定し且つ前記サ
    ブシステム内の記憶空間使用及び割振りを管理し、 前記サブシステム内のB木のインデックスの各々はルー
    ト・ノード、内部ノード及び外部ノードを含み、 前記ファイルの全てのキーは外部ノード(葉)に現わ
    れ、全ての内部(非葉)ノードは経路指定ポインタ及び
    同期値を含み、且つ内部ノードの各々はそれに関連づけ
    ることができるエレメントの上限を有し、 (a)ファイルを更新又は削除し、前記更新されたファイ
    ルのキーを含む外部ノードへのアクセス経路の中の前記
    同期値を変更させる手段と、 (b)ファイルの更新又は削除に応答して、それに対応し
    た空間でのノードのオーバーフロー又はアンダーフロー
    を避けるために、前記ノードを(分割動作により)分割
    し又は(結合動作により)結合する手段と、 (c)前記サブシステムにより葉探索B木アクセス経路を
    与える手段と、 (d)前記B木の非葉ノードの各々に対する使用可能空間
    リストを定義する手段と、 (e)アンダーフロー及びオーバーフローを避けるための
    B木の結合及び分割動作手段の動的な変更に応答し、
    除された下位ノードの上位ノードに割当てられた空間を
    再使用し、且つインデックス及びアトミック動作内に含
    まれる空間使用の証印の変更を更新する手段と、 を含み、前記更新する手段が、上位ノードの使用可能空間リスト
    に既に削除された下位ノードを追加し、もしも前記アド
    レスが既に一杯であるため該リストへの追加ができない
    場合、上位ノードによって維持されるリスト上のノード
    の中から最下位のノードを前記SMSに返還した後前記
    リストへ削除された下位ノードを追加し、 それによって前記サブシステム内の葉ノードのDASD
    トラック又はシリンダ内での連続性を維持する、 コンピュータ・システム。
JP3103461A 1990-04-26 1991-04-09 メモリ空間再使用管理方法及びシステム Expired - Lifetime JPH0769922B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US514904 1990-04-26
US07/514,904 US5261088A (en) 1990-04-26 1990-04-26 Managing locality in space reuse in a shadow written B-tree via interior node free space list

Publications (2)

Publication Number Publication Date
JPH04229372A JPH04229372A (ja) 1992-08-18
JPH0769922B2 true JPH0769922B2 (ja) 1995-07-31

Family

ID=24049168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3103461A Expired - Lifetime JPH0769922B2 (ja) 1990-04-26 1991-04-09 メモリ空間再使用管理方法及びシステム

Country Status (3)

Country Link
US (1) US5261088A (ja)
EP (1) EP0453707A3 (ja)
JP (1) JPH0769922B2 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928782T2 (de) * 1988-12-14 1998-12-24 Sony Corp Datenverwaltungssystem
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree
US5276872A (en) * 1991-06-25 1994-01-04 Digital Equipment Corporation Concurrency and recovery for index trees with nodal updates using multiple atomic actions by which the trees integrity is preserved during undesired system interruptions
US5577246A (en) * 1992-09-25 1996-11-19 Lucent Technologies Inc. Database memory compaction and reclamation method
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
US5613105A (en) * 1993-06-30 1997-03-18 Microsoft Corporation Efficient storage of objects in a file system
US5446887A (en) * 1993-09-17 1995-08-29 Microsoft Corporation Optimal reorganization of a B-tree
JP2671804B2 (ja) * 1994-05-27 1997-11-05 日本電気株式会社 階層型資源管理方法
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
US5687361A (en) * 1995-02-13 1997-11-11 Unisys Corporation System for managing and accessing a dynamically expanding computer database
JP2778504B2 (ja) * 1995-02-24 1998-07-23 日本電気株式会社 ネットワーク管理システム
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5761501A (en) * 1995-10-02 1998-06-02 Digital Equipment Corporation Stacked skip list data structures
US5659739A (en) * 1995-10-02 1997-08-19 Digital Equipment Corporation Skip list data structure enhancements
US5907672A (en) * 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US5819299A (en) * 1996-06-06 1998-10-06 Electric Communities Process for distributed garbage collection
US5819298A (en) * 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
US5873078A (en) * 1996-07-19 1999-02-16 Bay Networks, Inc. Radix tree search logic
US5857196A (en) * 1996-07-19 1999-01-05 Bay Networks, Inc. Method for storing a tree of potential keys in a sparse table
US6219662B1 (en) * 1997-07-10 2001-04-17 International Business Machines Corporation Supporting database indexes based on a generalized B-tree index
US6076151A (en) * 1997-10-10 2000-06-13 Advanced Micro Devices, Inc. Dynamic memory allocation suitable for stride-based prefetching
US6112211A (en) * 1997-11-25 2000-08-29 International Business Machines Corporation Reconfiguration an aggregate file including delete-file space for optimal compression
JP4004619B2 (ja) * 1998-01-08 2007-11-07 富士通株式会社 自動在庫引当が可能な在庫管理装置
US6366902B1 (en) 1998-09-24 2002-04-02 International Business Machines Corp. Using an epoch number to optimize access with rowid columns and direct row access
US6144970A (en) * 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US6343293B1 (en) 1998-09-24 2002-01-29 International Business Machines Corporation Storing the uncompressed data length in a LOB map to speed substring access within a LOB value
US6343286B1 (en) 1998-09-24 2002-01-29 International Business Machines Corporation Efficient technique to defer large object access with intermediate results
US6470359B1 (en) 1998-09-24 2002-10-22 International Business Machines Corporation Fast technique for recovering an index on an auxiliary table
US6363389B1 (en) 1998-09-24 2002-03-26 International Business Machines Corporation Technique for creating a unique quasi-random row identifier
US6606617B1 (en) 1998-09-24 2003-08-12 International Business Machines Corporation Optimized technique for prefetching LOB table space pages
US6694340B1 (en) 1998-09-24 2004-02-17 International Business Machines Corporation Technique for determining the age of the oldest reading transaction with a database object
US6408368B1 (en) 1999-06-15 2002-06-18 Sun Microsystems, Inc. Operating system page placement to maximize cache data reuse
US6366994B1 (en) 1999-06-22 2002-04-02 Sun Microsystems, Inc. Cache aware memory allocation
JP3415492B2 (ja) * 1999-06-24 2003-06-09 Necエレクトロニクス株式会社 指紋照合システムとその指紋照合方法
US6691218B2 (en) 1999-12-10 2004-02-10 Mosaid Technologies, Inc. Method and apparatus for longest match address lookup
US7966421B2 (en) 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US7106732B2 (en) 2000-12-27 2006-09-12 Mosaid Technologies Incorporated Default route coding
US7539666B2 (en) * 2004-04-06 2009-05-26 International Business Machines Corporation Method, system and program for managing geographic data stored in a database
WO2005103951A1 (en) * 2004-04-23 2005-11-03 Novauris Technologies Limited Tree index based method for accessing automatic directory
US7257689B1 (en) 2004-10-15 2007-08-14 Veritas Operating Corporation System and method for loosely coupled temporal storage management
US7257690B1 (en) 2004-10-15 2007-08-14 Veritas Operating Corporation Log-structured temporal shadow store
US7716250B1 (en) * 2005-05-27 2010-05-11 Microsoft Corporation Erasure coding and group computations using rooted binary and ternary trees
US7697518B1 (en) * 2006-09-15 2010-04-13 Netlogic Microsystems, Inc. Integrated search engine devices and methods of updating same using node splitting and merging operations
EP1918822A1 (fr) * 2006-10-31 2008-05-07 Axalto SA Système et procédé d'indexation de mémoire
KR101213160B1 (ko) * 2006-11-16 2012-12-17 삼성전자주식회사 그룹 키 업데이트 방법 및 이를 이용한 그룹 키 업데이트장치
JP4379894B2 (ja) * 2006-11-28 2009-12-09 株式会社エスグランツ カップルドノードツリーの分割/結合方法及びプログラム
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US9305112B2 (en) 2012-09-14 2016-04-05 International Business Machines Corporation Select pages implementing leaf nodes and internal nodes of a data set index for reuse
US10417209B1 (en) 2013-03-14 2019-09-17 Roger Lawrence Deran Concurrent index using copy on write
CN104426770A (zh) * 2013-09-09 2015-03-18 中兴通讯股份有限公司 路由查找方法及装置、B-Tree树结构的构建方法
US11038591B2 (en) * 2019-06-28 2021-06-15 Rolls-Royce Corporation Optical interface and distributed fiber optic communication network for controlling a gas turbine engine and method
CN111026762A (zh) * 2019-12-12 2020-04-17 北京金山云网络技术有限公司 红黑树索引生成方法、装置、电子设备及存储介质
CN112612011B (zh) * 2020-12-24 2023-12-26 西安电子科技大学 基于kd-树空间搜索的dbscan生命探测雷达点迹凝聚方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
JPS59146339A (ja) * 1983-02-09 1984-08-22 Hitachi Ltd 情報検索方式
JPS59165162A (ja) * 1983-03-11 1984-09-18 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン ボリューム回復方法
US4677550A (en) * 1983-09-30 1987-06-30 Amalgamated Software Of North America, Inc. Method of compacting and searching a data index
JPS61184635A (ja) * 1985-02-12 1986-08-18 Hitachi Ltd デ−タベ−スシステムの検索方式
GB2196764A (en) * 1986-10-30 1988-05-05 Apple Computer Hierarchical file system
US5058002A (en) * 1987-06-23 1991-10-15 Mitsubishi Denki Kabushiki Kaisha Page splitting method and apparatus for a database stored in a plurality of memory storage units
US4823310A (en) * 1987-08-10 1989-04-18 Wang Laboratories, Inc. Device for enabling concurrent access of indexed sequential data files
JPS6442731A (en) * 1987-08-10 1989-02-15 Hitachi Ltd Optimizing system for relational data base
JPH01145720A (ja) * 1987-12-01 1989-06-07 Hitachi Software Eng Co Ltd B木のノード管理方式
US5043872A (en) * 1988-07-15 1991-08-27 International Business Machines Corporation Access path optimization using degrees of clustering
US5089952A (en) * 1988-10-07 1992-02-18 International Business Machines Corporation Method for allowing weak searchers to access pointer-connected data structures without locking
US5218696A (en) * 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5063504A (en) * 1989-12-18 1991-11-05 At&T Bell Laboratories Information control system for reserve locking infrastructure nodes for subsequent exclusive and share locking by the system

Also Published As

Publication number Publication date
EP0453707A3 (en) 1992-12-02
US5261088A (en) 1993-11-09
JPH04229372A (ja) 1992-08-18
EP0453707A2 (en) 1991-10-30

Similar Documents

Publication Publication Date Title
JPH0769922B2 (ja) メモリ空間再使用管理方法及びシステム
US5218696A (en) Method for dynamically expanding and rapidly accessing file directories
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US5790848A (en) Method and apparatus for data access and update in a shared file environment
US7680836B2 (en) Systems and methods for a snapshot of data
US5850522A (en) System for physical storage architecture providing simultaneous access to common file by storing update data in update partitions and merging desired updates into common partition
US7953704B2 (en) Systems and methods for a snapshot of data
US7882071B2 (en) Systems and methods for a snapshot of data
US7680842B2 (en) Systems and methods for a snapshot of data
US7136867B1 (en) Metadata format for hierarchical data storage on a raw storage device
EP2356560B1 (en) Atomic multiple modification of data in a distributed storage system
US8131782B1 (en) Shadow directory structure in a distributed segmented file system
US7818346B2 (en) Database heap management system with variable page size and fixed instruction set address resolution
US20120284317A1 (en) Scalable Distributed Metadata File System using Key-Value Stores
Biliris An Efficient Database Storage Structure for Large Dynamic Objects.
US20130311523A1 (en) Extending file system namespace types
JPH11143755A (ja) 階層構成情報のコピーおよび共有方法
EP0460934A2 (en) Fault tolerant relocation of storage with atomicity
EP0410210A2 (en) Method for dynamically expanding and rapidly accessing file directories
JP4159506B2 (ja) 階層記憶装置、その復旧方法、及び復旧プログラム
US10146466B1 (en) Merging mapping metadata to promote reference counting efficiency
CN118035200A (en) Metadata management method, device and equipment for distributed file system
Kim et al. Development of an Index Manager for a Main Memory DBMS Tachyon
Duncan Design goals and implementation of the new High Performance File System.(includes related article on B Trees and B+ Trees)
Chong et al. Rapid Recovery of Very Large Memory Resident Data Objects