JP2761389B2 - ファイル順次アクセス方法及び装置 - Google Patents

ファイル順次アクセス方法及び装置

Info

Publication number
JP2761389B2
JP2761389B2 JP63199772A JP19977288A JP2761389B2 JP 2761389 B2 JP2761389 B2 JP 2761389B2 JP 63199772 A JP63199772 A JP 63199772A JP 19977288 A JP19977288 A JP 19977288A JP 2761389 B2 JP2761389 B2 JP 2761389B2
Authority
JP
Japan
Prior art keywords
clause
read
timestamp
node
search
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
JP63199772A
Other languages
English (en)
Other versions
JPS6470839A (en
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.)
UONGU LAB Inc
Original Assignee
UONGU LAB Inc
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 UONGU LAB Inc filed Critical UONGU LAB Inc
Publication of JPS6470839A publication Critical patent/JPS6470839A/ja
Application granted granted Critical
Publication of JP2761389B2 publication Critical patent/JP2761389B2/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 従来の技術 今日、データ要素(エレメント)の大きな集まりを管
理するためにはデータ要素を階層順序即ちシーケンスに
編成する方法が一般的になっている。かかる編成法のば
あい、それぞれのデータ要素はその階層シーケンス内に
一意的なロケーションを有することによってアクセスが
より容易になってきている。更に、全ての要素を順次読
出すことも可能である。
索引付順次編成ファイル方式や索引付順次アクセス法
(ISAM)の場合、レコードの大きな集まりは「キー番
号」順に編成される。即ち各レコードは一意的なキー番
号と対応しそれらのキー番号は昇順に構成されている。
そのため、各レコードは個々のキー番号によるか或いは
順次的に(即ちキー番号の昇順に従って)かの何れかの
形で検索される。キー番号とレコーどはファイルの要素
であると考えられる。
牽引付順次編成ファイルは、B木として知られるデー
タ構造を用いたコンピュータ又はソフトウェアシステム
において通常実現されている。一般的に言って、B木
は、ポインタと称する枝の組により接続される節と称す
る交点の組により構成される。各節は順序の付けられた
キー番号の唯一つの組を保持する。節自体は一定の順序
で配列される。B木を読出したり探索するにはポインタ
を介して節から節へと木を順次横断する。節の一つが
「根」に指定されるためのB木はポインタの唯一つの経
路が根から残りの節の各々に至るように「向きをもって
いる」といわれる。もう一つの節からポインタにより位
置指定された節は後続節であると考えられる。子孫を有
しない節は「葉節」と称される。
各葉節は索引付順次編成ファイルのN個の関連するデ
ータ値もしくはレコードと共に昇順に従って分類される
N個のキー番号(キー)を含んでいる。葉節でない節は
それぞれ昇順で分類されるN個の一連のキー番号(キ
ー)もしくはエレメントとそれと関連するN個のポイン
タを含んでいる。1番目のキーと関連するポインタはそ
のエレメントが1番目のキーより大きいかそれと等しく
I+1番目のキーよりも小さな節を全て含む部分木を位
置指定する。
根は例外として木内の各節は少なくとも半分満たされ
ている。
ユーザはB木を次の3つのやり方で操作することがで
きる。
サーチ操作: ユーザはそのキー番号もしくはその直前のキーに与え
られたB木内の葉節エントリー(即ちファイルレコー
ド)を探索する。サーチ操作においてコンピュータシス
テムは適当な葉節に達するまで根節から始まってB木を
下降する。
挿入操作: ユーザ葉節中にエントリー(即ちレコード)を挿入す
ることができる。挿入操作において、コンピュータシス
テムは探索を実行して新しいエントリーを挿入すべき適
当な葉を発見する。その後システムは葉が新しいエント
リーに適合するだけの十分な未使用空間を含んでいるか
どうかを決定する。もしそうであればエントリーを挿入
する。然らざる場合には葉は2つの葉節(即ち「元の」
節と新しい節)に分割され新しい節は適当な節中に挿入
される。その後、元の葉節の親節を突き止め新しい葉節
中の最小キーとその最小キーに対するポインタを親節内
に挿入する。もし親節がすでに満たされている場合には
親は2つの節に分割され、この方法が再帰的に適用され
る。もし根が分割されればその場合には木の高さが大き
くなり新しい根が作りだされる。
削除操作: ユーザは葉節からエントリー(即ちレコード)を削除
することができる。削除操作においてはB木が探索され
て問題の葉節を見出しエントリーレコードが除去され
る。もし葉節が半分満たされた状態より少なくなると葉
節は次に来る葉節と組合わされる。次に来る葉節の親を
突き止め、この方法を再帰的に適用して親節により保持
される次の葉節と関連するキー番号とポインタとを除去
する。
大抵のISAMシステムは主メモリ内の最後に検索したレ
コードのキーを退避させることによって順次読取りを行
う。プログラムが順次読出し要求を発する毎にISAMシス
テムはサーチ操作を行いそのキーが最後に検索されたレ
コードのキーよりもすぐ次に大きいレコードを求める。
かかる、サーチ操作のコストは次の2つの要素に基づ
いている。即ち、ディスクから節を読出すコスト(i/o
コスト)と各節を検査するコスト(CPUコスト)であ
る。順次読出しのi/oコストは主メモリ内に配置された
キャッシュ内に最近アクセスされた節のコピーを保存す
ることによってほぼ最適にすることができる。一つの節
が必要とされる毎に、キャッシュが検査される。すなわ
ち節はそれがキャッシュ内にないばあいにはディスクか
ら読出される。キャッシュを用いることによって順次読
出しのi/oコストの多くを排除することができる。然し
ながら、CPUコストは、順次読出して行うのにその時間
の大半を費やすアプリケーションの場合には特に相当な
ものになる虞れがある。
ISAMシステムには木内の次の節を位置指定する余分の
「リンク」ポインタを各節内に保存することによって順
次読出しを最適にするものがある。かかるリンク式ISAM
ファイルは「リンクB木」として知られる修正したB木
データ構造により作られる。リンクB木は順次読出しの
相当効率的な実行を可能にする。
システムはリンクB木内のレコードの読出しを実行す
る毎にそのレコードを格納する節のディスクアドレスと
その節内のレコードの位置を退避する。順次読出しは退
避されたディスクアドレスを用いて退避位置を節内のレ
コーど数と比較して適当な節をディスクから読出すこと
によって実行される。もし退避位置が節内のレコーど数
よりも小さい場合にはその位置は増分されそれに対応す
るレコードが検索される。さもなければ位置はゼロにセ
ットされ退避したディスクアドレスは節のリンクポイン
タにより与えられるディスクアドレスにセットされその
プロセスが繰返される。
リンクとキャッシュの組合せは順次読出しにおける次
に読出される操作のコストのほぼ全部を除くことができ
る。然しながら、順次読出しにリンクを使用すると他の
プロセスが挿入と削除を実行している間に一つのプロセ
スがISAMファイルを読出すことが許されるような並行的
環境において種々の問題を引き起こす。挿入と削除はB
木を再構成することによって「次の」レコードが最早期
待された節中に存在しないようにする。その結果、リン
クは並行的な読出しと最新を可能にするような環境内に
は一般的にいって使用されないでいる。その代わり、順
次読出しはそのキーが最近検索されたレコードのキーよ
りも次に大きなレコードを求めて、ファイルを検索する
という、より高価な技法により実行される。他方、プロ
セスが互いに干渉しあわないようにするために並行制御
アルゴリズムが存在する。例えば、プロセスBがその節
を分割して新たな節を形成している間にプロセスAが節
を点検することを妨げる並行アルゴリズムが存在する。
大抵の並行アルゴリズムは「ロック」と称する特徴をそ
れぞれのB木の節と結びつける。各節を点検する前にそ
れをロックするプロセスが必要になる。節が既にロック
されておればその節を点検しようとするプロセスはロッ
クが使えるようになるまで、即ち節がロック解除される
まで中断される。
最初に開発された並行アルゴリムズの一つでは、サー
チ操作は根節をロックし適当な子孫節を選択していた。
次にそれは子孫節をロックして探索を継続した。挿入と
削除の操作では適当な葉節を突き止めるための探索を行
った。探索の終わりに潜在的に分割及び(又は)組合わ
せをされなければならない節は全て既にロックされてい
るから挿入や削除を進めることができる。全ての木の操
作が根をロックし並行性が存在しないため、このアルゴ
リズムは非効率的である。このアルゴリムズは以下のよ
うに改良される。サーチ操作は根節をロックし適当な子
孫節を選択する。その後それは子孫節をロックし根をロ
ック解除し探索を継続する。挿入削除操作は探索を行う
ことによって葉節をロックしたままにとどめる。その後
それらは葉節を更新し親節を更新する必要があるかどう
かを判断する。もしその必要があればそれらは親節をロ
ックして続行する。
この「改良された」アルゴリズムはデッドロック、即
ちプロセスAが親節をロックし終わり子孫節をロックし
ようと試みている一方プロセスBがその子孫節をロック
し終わり親をロックしてそれを更新しようと試みている
ような状態に至る。両方のプロセスは永久に待機するこ
とになろう。
フィリップL.レーマン(Philip L.lehman)とS.ビン
グ ヤオ(S.Bing Yao)は「B木の並行操作のための効
率的ロッキング(“Efficient Locking for Concurrent
Operations on B−trees")」(ACMデータベースシス
テム紀要(ACM Transactions on Database Systens),
第6巻,第4号,1981年12月)に上記アルゴリズムの変
形を提示している。一般的にいってテレーマン−ヤオの
並行アルゴリズムではサーチ操作は根節をロックして適
当な子孫葉節を選択する。その後それは根節をロック解
除して子孫葉節をロックする。この時までに子孫葉節は
分割されて新たな葉節を形成することができ実際に所望
のエントリーもしくはレコードはその新たな葉節中にあ
る。探索アルゴリズムは所望のキーが子孫葉節中の最大
キーよりも大きいかどうかを決定することによってこれ
をチェックする。もし大きければ探索アルゴリズムは分
割中につくりだされた関連するリンクポインタを使用し
て新たな葉節を突き止め所望キーがその新たな葉節内の
別個のキーより大きいか等しいかを決定する。
レーマン−ヤオアルゴリズムにおける挿入操作は探索
を実行することによって子孫葉節をロック状態にする。
その後挿入操作は子孫葉節が新たなエントリーレコード
に対する余地を含んでいるかどうか決定する。もし含ん
でいれば子孫葉節は更新されロック解除される。そうで
ない場合には挿入操作は親節をつきとめロックし子孫の
葉節を分割して新たな葉節を形成し子孫葉節と新たな葉
節をロック解除して挿入アルゴリズムを今やロックされ
た親節に再帰的に適用する。
レーマン−ヤオ並行アルゴリズムにおける削除操作は
サーチを実行し所望のエントリーを除去するが節どうし
を組合せる試みは行わない。
発明が解決しようとする問題点 然しながら、上記のレーマン−ヤオアルゴリズムは2
つの欠点を有している。第1にそのアルゴリズムはB木
エントリが削除されるときに削除操作が節どうしを組合
わせることが出来ない。そのためメモリの対応するディ
スクブロックは将来の使用のために再生利用することが
できない。第2にそのアルゴリズムは節中にかって配置
された最小キーに等しい分離キーを格納するサーチ操作
を要する。このため余分のスペースを使用し効率が低下
する。
問題点を解決するための手段 本発明は索引順次編成(ISAM)ファイルに対する順次
アクセスを最適化するために「更新」と「削除」のタイ
ムスタンプを使用する方法を開示する。殊に本発明はリ
ンクを並行的環境中で順次読出しするために使用するこ
とを可能にするために「更新タイムスタンプ」を使用し
従来技術において見出される並行性の問題点を回避する
ために「削除タイムスタンプ」を使用する。更に、削除
タイムスタンプは従来技術がかかる組合わせを可能にし
ない場合節同志の組合わせを可能にする。「更新タイム
スタンプ」はそれが分割されたりB木から除去されたり
する時に節に付与される単調増加数である。以上の両タ
イプのタイムスタンプはISAMファイルが「開いて」いる
期間中は一意的であってB木を読出したり並行処理する
際に役立つ。
プロセスがISAMファイルのB木の1レコードを読む毎
にローカル(局所)メモリのユーザブロック中のレコー
ドの3つの識別係数を退避させる。上記の退避される3
つの識別係数とは最後に読出されるレコードの節のディ
スクメモリアドレスと、節内におけるその最後に読出さ
れるレコードの位置と、最後に読出されるレコードのキ
ーである。更に、該プロセスはユーザブロック内で節の
更新タイムスタンプを退避させる。
その後、プロセスが若干後の時刻に順次読出し(即
ち、最後に読出されるレコードの後に来るレコードの読
出し)を実行する場合、該プロセスは、(1)3つの退
避された識別係数を用いて節と該節中の最後に読出され
るレコードの位置にアクセスし、(2)節をロックして
それが並行的に修正されることを一時的に防止し、
(3)その時の節の更新タイプスタンプをその節の最後
読出しの退避された更新タイムスタンプと比較して最後
の読出し以降、節が修正されているかを見る。この節は
ロック解除されサーチ操作を行ってそのキーがユーザブ
ロック内に格納された最終レコードのキーよりすぐ次に
大きいレコードを求める。もしタイムスタンプ同志が一
致していればユーザブロック内に退避された節内位置は
節内のエントリ数と比較される。もし退避された位置が
エントリ数より小さければ、位置は増分されその結果得
られる位置に対応するレコードが読出される。さもなけ
れば並行節のリンクポインタにより識別された節はロッ
ク解除され、その新たな節中の第1のレコードが読出さ
れる。
結果としてレコードが読出された後ユーザブロック内
の情報が更新され節はロック解除される。B木内の次に
続くレコードの各々に対して同じステップが繰返され
る。
プロセスがサーチ操作を開始する毎に、それは探索
(サーチ)タイムスタンプを得る。プロセスが首尾よく
節をロックする毎に、それはその探索タイムスタンプを
節の削除タイムスタンプと比較する。もし削除タイムス
タンプが探索タイムスタンプより大きければ、節は親節
が点検されロックされた節に対するポインタが得られた
時以降に分割される木から除去されている。この時点で
ロックされた節はアンロックされサーチ操作は新たな探
索タイムスタンプでファイルB木の始めから繰返され
る。
それ故、レコードのランダムな読出しに適用されるサ
ーチ操作は次の通りである。レコードのキー番号が一定
であるとすると、まず並行探索タイムスタンプを確立す
るとともに、所与のキー番号を有するものと評価された
節をロックすることによって、ランダムなレコードの読
出しが行われる。探索タイムスタンプは、ロックされた
節と関連する削除タイムスタンプと比較される。もし節
の削除タイムスタンプが順次探索タイムスタンプの後に
来れば、節がアンロックされB木が再追跡されて何れの
節が所与のキー番号を有しているかについての最新の評
価を求める。他方、もし節の削除タイムスタンプが探索
タイムスタンプの前にあれば、所与のキー番号について
節が探索される。もしそのキーが節内に発見されればそ
れと関連するレコードが読出され節はアンロックされ
る。もしそのキーがロックされた節内の最大キーより大
きければ、ロックされた節のリンクポインタにより与え
られる節が上記のステップに続くキーを求めて探索され
る。
本発明の一つの特徴に従えば、節の各々の「更新タイ
ムスタンプ」と共に最新更新された節のテーブルを格納
するためにキャッシュメモリが用いられる。更に、その
キャッシュメモリテーブルは最近付与(代入)された削
除タイムスタンプとそれに対応する節のリストを保持す
る。テーブルが一杯になると、最も古いエントリは破棄
されて入来するエントリのための余地を作るようになっ
ている。その代わり、最も使用されないと思われるエン
トリが廃棄されるようにしてもよい。ローカルメモリ内
の2つのレジスタはそれぞれ最後に廃棄された削除と更
新のタイムスタンプを保持する。最も使用されそうにな
いエントリが廃棄されるばあいには、削除と更新のタイ
ムスタンプがそれぞれ2つのローカルメモリレジスタ内
に格納される。
各プロセスは問題の節を求めるためにキャッシュテー
ブルを点検した後にディスクメモリを点検する。もし問
題の節がキャッシュテーブル内に載せられて(リスティ
ングされて)おれば、それに対応するリスティングされ
た更新、削除タイムスタンプがそれぞれ退避されたタイ
ムスタンプ若しくは得られた探索タイムスタンプと比較
されてそれぞれ上述の通り節を読取ったり探索したりす
る。もし問題の節がキャッシュテーブル内にリスティン
グされていなければ、対応するリスティングされた更新
もしくは削除タイムスタンプがそれぞれ退避された更新
タイムスタンプもしくは得られた探索タイムスタンプと
比較されそれぞれ上述したように節を読出したり探索し
たりする。もし問題の節がキャッシュテーブル内にリス
ティングされていなければ、それに対応するリスティン
グされた更新もしくは削除タイムスタンプはそれぞれ退
避された更新タイムスタンプ、もしくは得られた探索タ
イムスタンプと比較されそれぞれ上述したように節を読
出したり探索したりする。もし問題の節がキャッシュメ
モリ内にリスティングされていなければローカルメモリ
内の各レジスタ中に保持された最後に廃棄された更新・
削除タイムスタンプを用いてそれぞれ節の読出しと探索
を行う。
本発明の上記その他の目的、特徴、利点は添付図面に
示した実施例の詳細な説明より明らかとなる筈である。
上記図面中応用の参照文字は全体を通して同一の部分を
指すものとする。図面は必ずしも寸法通りではなく本発
明の原理を説明することに重点がある。
実施例 順序突けられた、項目(アイテム)のリストを保守し
読出し、殊にアイテムを順番に読出すことが望ましい場
合が多い。最新技術のコンピュータを使用すると数千の
かかる順序の付いたアイテムを有するリストを保守(即
ちアイテムの挿入と削除)と読出しが可能になる。然し
ながら、これらの大きなリストの場合、リストの順次読
出し中に継起するアイテムを探索するためにそれが要す
る時間を最適にしリストと関連して使用される主メモリ
空間の大きさを最小にする必要がある。
本発明の場合、木状のデータ構造を用いて上述の目的
にかなうやり方で順次リストを編成管理する。本発明に
より用いられる木状のデータ構造は「B木」として知ら
れる。第1図はキーと称されKnのラベルを有するエレメ
ント系列のリストを編成するためにB木20を使用したも
のの図解例である。キーの部分集合(サブセット)順列
は節10,12,14をそれぞれ形成する。木構造の頂点の節は
木リスト20の根12である。B木20の底部の節は葉節14で
ある。葉節14の各キーは節内の位置と(もしくは)第1
図に「rec」のラベルを有する対応するデータ値やレコ
ードのディスクメモリアドレスを表示する。中央の節10
は葉でない節である。節10の各キーKnはそれと関連する
ポインタを有し、同ポインタはその節が各キーKnより大
きいか等しく節10内のKnの後続キーよりも小さな部分木
の根のディスクメモリアドレスを与える。第1図のB木
20の場合、節10のキーの部分木はそれぞれ葉節14であ
る。
更に、第10,12,14はそれら自身の間で順番が付けられ
ている。各節10,12,14は点線矢印で示したリンクポイン
タ8を有し、同ポインタはそれぞれの後続節を位置指定
する。即ちそのディスクメモリアドレスを与える。かく
してB木20は「リンクされた」B木である。
B木20はリストのデータ値もしくはレコードが順次昇
順キーによるかもしくは無作為的な順序で各キー番号に
よるか何れかの形で読出されたりアクセスされたりする
ことを可能にするため、リンクされたB木20は索引順次
アクセス法(ISAM)もしくは索引順次ファイルを構成す
るとされる。
更に、各節10,12,14は2つのタグと関連していて、そ
の一つはキーとレコーどを挿入もしくは削除することに
よって節が修正(即ち更新)された最終時刻を述べ、第
2のものは節が2つの節に分離され削除されたりもう一
つの節と組合わされて一つの節を形成する最終時刻を述
べる。これら2つのタグは「タイムスタンプ」と称され
る。節が(分割されたりもう一つの節と組合わされたり
することを含めて)更新されたり削除される毎に、それ
はそれぞれ単調に増加する「更新タイムスタンプ」もし
くは「削除タイムスタンプ」を付与される。上記タイム
スタンプはB木/ISAMファイル20が「開いた」期間中一
意的である。タイムスタンプは更新や削除が発生した日
付と時刻であることもあれば従来のカウンタが生成した
番号のこともある。一つの節が更新されたり削除された
りするとそれと対応するタイムスタンプが第2図に示す
ようなキャッシュメモリ内のバッファプール制御テーブ
ル16内に各節のコピーと共に格納されディスクメモリ空
間の使用を最適化できるようにすることが望ましい。そ
れぞれの最新変更もしくは削除された節に対してはキャ
ッシュメモリ制御テーブル16は一定限度まで(1)アク
セスされた節のコピーもしくは参照と、(2)その節の
更新タイムスタンプと、(3)節の削除タイムスタンプ
を格納する。各節のコーピー内には後続節のディスクメ
モリアドレスが含まれる。テーブル16内の節エントリの
最大番号は2000までユーザがセットできることが望まし
い。テーブル16の長さは制限されているために最近の変
更もしくは削除だけがリストされる。即ち、一旦キャッ
シュメモリ制御テーブル16が一杯になると、テーブルに
対する次のエントリは現在のエントリの最も近くのもの
ではないタイムスタンプと置換される。その廃棄された
エントリのタイムスタンプはレジスタ42,44内に退避さ
れ後述の如く使用される。例えば、第2図中の新たなエ
ントリは第1のエントリ18を置換することになろう。置
換されたエントリ18の更新と削除タイムスタンプはそれ
ぞれキャッシュメモリ内のレジスタ42,44内に格納され
る。
その代わりに制御テーブル16内の節の使用確率(即ち
使用可能性)に基づく表を用いて何れのエントリが廃棄
されて新たなエントリに対する余地を作るべきかを決定
するようにすることもできる。一般に知られている多く
のアルゴリズムの一つである重み付けアルゴリズムを使
用することが望ましい。最低の重みを有する現在のテー
ブルエントリが廃棄される。エントリが2つのばあい、
最低の重みを有するものが廃棄される。廃棄されたエン
トリのタイムスタンプはレジスタ42,44内に退避された
各々のタイムスタンプと比較される。各タイムスタンプ
のうち最近のものがレジスタ42,44内に退避される。
節の次の探索においては制御テーブル16内のキャッシ
ュメモリがまづ参照される。もしその節がテーブル16内
に見出されればリスト(リスティング)されたそれに対
応する更新もしくは削除タイムスタンプが直接点検され
る。もしその節がテーブル16内に見出されなければその
節はディスクメモリからキャッシュメモリ制御テーブル
16内へ入来エントリとして読出される。その節がテーブ
ル16内にリストされていないためその更新・削除タイム
スタンプはテーブル16内にリスティングされたもの程最
近のものでないことがわかる。それ故、同節は最後に置
換されたもしくは「廃棄」された節の退避タイムスタン
プをとる。例えば、先の例からもし第1のエントリ18の
置換された節12がその後サーチ操作の対象である場合に
はそれは最早キャッシュメモリ制御テーブル16内に存在
しないことが判る。節12はそれ故ディスクメモリからキ
ャッシュメモリ制御テーブル16内へ新たなエントリとし
て読出され第2図に示すようなレジスタ42内に格納され
たキャッシュテーブル16の最後に置換されたタイムスタ
ンプである100の更新タイムスタンプをとる。削除タイ
ムスタンプは同様にして節12によりレジスタ44から得ら
れる。
第3図は本発明を具体化したシステム26の概略であ
る。B木/ISAMファイル22のエレメントはディスクメモ
リ24内に格納される。キャッシュメモリ28はB木22の最
近更新もしくは削除された節の制御テーブル30と第2図
に説明したレジスタ46の最後に取代えられた更新・削除
タイムスタンプを格納する。レコードがISAMファイル22
から読出される毎にシステム26はローカルメモリ内のユ
ーザブロック40内に以下のものを退避させることにより
ファイル内のその位置を参照する。即ち、(1)読出さ
れたレコードを格納する節のディスクメモリアドレス、
(2)節内の読出されたレコードの位置、(3)レコー
ドを読出した時刻における節の最新スタンプ、および
(4)レコードのキーである。一方、レコードが検索さ
れて節が変更、分割もしくは削除される毎に、その節の
新しい更新もしくは削除タイムスタンプがそれぞれ制御
テーブル30内に反映される。
ユーザブロック40内に退避された情報の助けによって
システム26は第4図のフローチャート中に輪郭を示した
次のステップに従って順次読出しを実行する。説明のた
めに今、システム26が第3図の節50の一つのレコードの
読出しを丁度完了したと仮定する。その仮定の下開でユ
ーザブロック40はその節50のディスクアドレスと、節内
の最後に読出された位置、その最後の読出し時の節50の
更新タイムスタンプ、および読出されたレコードのキー
を格納する。順次読出しが続行される場合にはシステム
26はB木内の何れの変化も、殊に最後に読出される節50
に対する如何なる変化もチェックする必要がある。その
ため、システム26は最近変更もしくは削除された節のリ
ストの中に節50を並行して格納するかどうかを見るため
に制御テーブル30を点検する。もし否であれば、節50は
ユーザブロック40内に格納されたアドレスディスクから
制御テーブル30内へ読出され節50は第3図に先に述べた
ようなレジスタ46内に格納された最後に置換/廃棄され
た各々のタイムスタンプの更新・削除タイムスタンプ値
をとる。節50はロックされてそれがこの読出しと並行し
て更新されることを一時的に防止する。節50のとるレジ
スタ46からの更新タイムスタンプはユーザブロック40内
に格納された更新タイムスタンプと比較される。もしそ
れらのタイムスタンプ同志が異なっていれば節50がアン
ロックされシステム26はサチ操作を行ってユーザブロッ
ク40内に格納された、先に退避されたキー番号、のすぐ
次に大きなキーを含む節を求める。
もしタイムスタンプ同志が異なっていなければ、ユー
ザブロック40内に退避された節中の位置が節50中のエン
トリの数と比較される。もし退避された位置がエントリ
数より小さければ、その位置は増分され、結果として求
められた位置に対応するレコードが読出される。このレ
コードを読出すや否や、システム26はユーザブロック40
内に節50のディスクアドレスと、同節内の、結果として
求められた位置と、この読出し時の節50の現在更新タイ
ムスタンプと、丁度読出されたばかりのレコードのキー
を格納する。その後節50はアンロックされて上記ステッ
プが繰返されて節の各レコードを順次読出し節から次の
節へと読出す。
もし退避した位置が節50内のエントリ数より大きいか
等しい場合には、節50のリンクポインタにより識別され
た節(第3図の節100)がテーブル30内のリンクポイン
タエントリにより与えられるアドレスでデスクメモリ24
から読出される。この節はロックされ節50はアンロック
される。新しい節(即ち節100)の最初のレコードが読
出される。この読出し後にシステム26はユーザブロック
40内に新たな節のデイスクアドレスと、新たな節中の第
1の位置と、ディスクメモリ24からキャッシュ制御テー
ブル30内へ読出された後新しい節へ付与される更新タイ
ムスタンプと、丁度読出されたばかりのレコードのキー
を格納する。その後上記ステップが繰返されて木の各レ
コードを順次読出す。かくして第4図のフローチャート
内に略述したステップが繰返されて各レコードを読出
す。
順次的にISAMファイルを読出すための上記方法(スキ
ーム)は更新の準備コストがそれぞれの順次読出しの開
始時にタイムスタンプ同志を比較し各読出し終了時にキ
ーを退避するコストに制限されるため検索が更新よりも
一般的であるような環境の場合に著しい性能を発揮す
る。同様にして順次読出しのCPUコストにおいて直接的
な利点が現れる。更に、ロックを使用することによって
B木を読出し更新する同時並行性を最大にすることがで
き、キャッシュメモリを使用することによってディスク
メモリから読出し探索するコストを最小限にすることが
できる。
システム26は親節からのサーチ操作を以下の如くして
実行する。サーチ操作の開始時システム26は探索(サー
チ)タイムスタンプ(即ち現在の日付と時刻もしくはカ
ウンタからの数)を得る。システム26は子孫節をロック
してその得た検索タイムスタンプをもし存在するならば
制御テーブル30内にリストされたような、あるいは先に
述べたようにレジスタ46から付与された節の削除タイム
スタンプと比較する。もし削除スタンプが探索タイムス
タンプより大きければ、子孫節は親節が点検され子孫節
に対するポインタが得られた時刻から分割もしくは木22
から除去され終わっている。この時点で子孫節はアンロ
ックされたサーチ操作は新たな探索タイムスタンプをも
って繰返される。
もし削除タイムスタンプが探索タイムスタンプより小
さければ子孫節は木内に依然存在するから更に探索可能
である。
システム26は更に木22のレコードのランダム読出しを
実行する際このサーチ操作を利用する。システム26は第
5図のフローチャート内に概略を示したステップに従っ
てレコードのキー番号を与えられたレコードのランダム
な読出しを実行する。このことを説明するために今シス
テム26が第3図の節50を所与のキー番号を求めて丁度探
索し終わったと仮定しよう。その時間中節50はロックさ
れてそれが節50内の探索と並行して更新されることを一
時的に防止するようになっている。システム26は節50を
探索して何れの節が所与のキー番号を探索すべき次の節
となるべきかについて評価をつくりだす。節50からのポ
インタ32はシステム26に対して節100が節50内のキー番
号に対する後続キー番号を有するエレメントを格納する
ことを示す。新たな探索タイムスタンプは第3図に示し
たローカルメモリ28内のバッファ48内に格納されて評価
された次の節100内を所与のキー番号を求めて新たな探
索を開始する。節50はアンロックされる。
関連するポインタ32より与えられるディスクメモリア
ドレスの節100はロックされてそれが節100内の所与のキ
ー番号を探索するのと並行して更新されることのないよ
う一時的に防止する。システム26は節100を含む制御テ
ーブル30を探索した後、テーブル内にリストされた節10
0の削除タイムスタンプがローカルメモリバッファ48内
に格納された探索タイムスタンプと比較されて節50がア
ンロックされこの新たな探索が開始されて以来節100が
分割もしくは削除されたかどうかを調べる。もし節100
の削除タイムスタンプが順序的に探索タイムスタンプの
後であれば節100はこの新たな探索が開始されてから分
割もしくは削除されている。かくしてテーブル30内の節
100のコピーは所与のキー番号を探索するためには使用
することはできない。節100はアンロックされ根節34か
らB木22が再追跡されて節50の最も現在の子孫節を発見
する。もし節100の削除タイムスタンプが時間の経過か
らいって探索タイムスタンプの前であれば、テーブル30
内に与えられる節100の所与のキー番号が探索される。
まづ所与のキー番号を節100内の最大キーと比較するこ
とが望ましい。もし所与のキー番号が節100内の最大キ
ーより小さいかそれと等しければ、システム26は節100
内の所与のキー番号を探す。もしそのキー番号が見つか
るとそれに対応するレコードが読出される。一たんその
対応するレコードが読出されると、節100はアンロック
される。もしその所与のキー番号が節100内に見つから
ない場合には、探索は終了してユーザに失敗を表示す
る。所与のキー番号が何処に挿入されるべきかを示す節
100内の位置もまたユーザに示される。
もし所与のキー番号が節100内の最大キーより大きけ
れば節100のリンクポインタを使用して次の節38を見出
す。このインクポインタの有効性は削除されるだけでな
く分割される毎に一節に対し削除タイムスタンプを付与
することによって確保される。節38はロックされる。所
与のキー番号は節38内に現在存在する最小キーと比較さ
れる。もし所与のキー便号が節38内の最小キーより大き
いかそれと等しければ節100がアンロックされ節38は節1
00が探索されたのと同様な方法で所与のキー番号を探索
される。もし所与のキー番号が節38内の最小キーより小
さければ、節38がアンロックされ探索は失敗に終わる。
もしテーブル30が節100を含んでいなければ、節100は
先に関連ポインタ32により与えられたディスクメモリア
ドレスを用いてディスクメモリから読出される。節100
のコピーはキャッシュメモリテーブル30内へ読出され
る。システム26は節100に先に論じたようなレジスタ46
内に格納された最後に置換されたタイムスタンプの削除
タイムスタンプを付与する。この削除タイムスタンプは
探索タイムスタンプと比較される。もし付与された削除
タイムスタンプが探索タイムスタンプより時間的に最近
であれば節100は探索開始以後削除されたか分割された
かである。かくして節100はこの時に探索するに適当な
後読節ではないかもしれない。節100はアンロックされ
新たな探索が開始されて(即ちB木22は新たなサーチ時
間をもって根節34から再び追跡/探索される)節50の最
も現在時点の子孫節を見出す。
もし付与された削除タイムスタンプが時間の経過から
いって探索タイムスタンプより前であれば、先に述べた
ように節100の付与キー番号を探索する。もし付与のキ
ー番号がその後節100内に見出されたならば、それに対
応するレコードが読出される。一旦レコードが読出され
ると節100はアンロックされシステム26は制御テーブル3
0内に100のコピーを退避させる。もし所与のキー番号が
節100内の最大キーよりも小さく節100内に見当たらない
ばあいは探索は失敗に終わり所与のキーが挿入されるで
あろう節100内の位置をユーザに示す。もし所与のキー
番号が節10内の最大キー番号よりも大きい場合には、節
100のリンクポインタ36により位置指定された次の節が
探索さるべき次の節となる節30を定義する。次の節38は
ロックされそのキー番号は所与のキー番号と比較され
る。もし所与のキー番号が次の節38内の最小キー番号よ
り大きいかそれと等しい場合には節100はアンロックさ
れ節100内の探索と同様なやり方で節38の所与のキー番
号が探索される。もし所与のキーが節38内の最小キーよ
り小さければ、節38がアンロックされ探索は失敗に終わ
る。
上記システムの削除タイムスタンプは半分以上の空の
節が削除操作により併合できるようにして全ての節が分
離符号を担わずにかって節内に配置された最小キーを指
示するようにすることによってディスクメモリ空間内に
退避させる。
以上、本発明を実施例に即して説明したが当業者は請
求範囲により規定された発明の精神と範囲から逸脱せず
にその形成と詳部に種々の変更をなしうることを理解さ
れるであろう。例えば削除・更新のタイムスタンプは節
の代わりにキーもしくはレコードの如き木構造の他の部
分と関連させることもできる。
【図面の簡単な説明】
第1図は本発明に使用するリンクB木の概略図、第2図
は本発明に使用する制御テーブル図、第3図は本発明を
具体化したシステムの略線図、第4図は第3図のシステ
ムによりリンクB木に対して行った順次読出しのフロー
チャート、第5図は第3図のシステムによりリンクB木
に対して実行したランダム読出しのフローチャートであ
る。 尚、図面において、 20……B木、10,12,14……節 12……根、14……葉節 42,44……レジスタ、16,30……制御テーブル 28……キャッシュメモリ 40……ユーザブロック、26……システム 24……ディスクメモリ、34……根節

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】データエレメントのファイルを記憶するた
    めの計算機システムにおいて、前記ファイルにおける連
    続して順序付けられたエレメントのリストを順次読み出
    す一方で、前記リストを並行的に変更できるようにする
    方法であって、 順序付けられた複数のエレメントを保持し且つそれとと
    もに1つのリストを定義する木構造データファイルを、
    前記計算機システムの第1のメモリ領域において提供す
    るステップであって、前記木構造は、前記順序付けられ
    たエレメントの順序付けられたサブグループを各々が保
    持する複数の節を有し、前記節は関連のポインタによっ
    て互いに順番にリンクされる、ステップと、 前記木構造の前記エレメントにタイムスタンプを付与す
    るステップと、 エレメントを読み出すステップと、 第2のメモリ領域に、読み出された前記エレメントのイ
    ンジケーションと、該読み出されたエレメントに対応す
    る前記タイムスタンプのインジケーションとの両方を記
    録するステップと、 前記エレメントを保持する前記節が変更される毎に、前
    記読み出されたエレメントの前記タイムスタンプを現在
    のタイムスタンプに更新するステップと、 前記リストが順次読み出されているときに前記リストを
    変更することが可能とされるように、前記読み出された
    エレメントの現在後続するエレメントを決定するため
    に、後続するエレメントを読み出す前に、前記読み出さ
    れたエレメントに付与された前記現在のタイムスタプと
    記録された前記インィケーションによって示される前記
    タイムスタンプとを比較するステップと、 を備える方法。
  2. 【請求項2】前記木構造の前記エレメントにタイムスタ
    ンプを付与する前記ステップは、1つの節の各エレメン
    トに、その節に付与された前記タイムスタンプが付与さ
    れるように、前記木構造の節にタイムスタンプを付与す
    るステップを含む、 請求項1に記載の方法。
  3. 【請求項3】節にタイムスタンプを付与する前記ステッ
    プは、節に、前記節のエレメントの挿入又は削除が発生
    した時間を付与するステップを含む、 請求項2に記載の方法。
  4. 【請求項4】節にタイムスタンプを付与する前記ステッ
    プは、節に、前記節の分割又は削除が発生した時間を付
    与するステップを含む、 請求項2に記載の方法。
  5. 【請求項5】キャッシュメモリにおいて最も最近読み出
    されたエレメントの節をセーブするステップ を更に備える請求項1に記載の方法。
  6. 【請求項6】関連のポインタを用いて前記現在後続する
    エレメントを含む節を獲得するステップ を更に備える請求項1に記載の方法。
  7. 【請求項7】前記現在後続するエレメントを含む節を獲
    得する前記ステップは、前記節が変更されることを一時
    的に防止するように前記節をロックするステップを含
    む、 請求項6に記載の方法。
  8. 【請求項8】変更されることを一時的に防止するよう
    に、前記読み出されたエレメントの現在のタイムスタン
    プと、記録の前記インジケーションによって示される前
    記タイムスタンプとを比較する前に、前記読み出された
    エレメントを保持する前記節をロックするステップと、 前記現在後続するエレメントを読み出した後に前記読み
    出されたエレメントをアンロックするステップと、 を更に備える請求項1に記載の方法。
  9. 【請求項9】順序付けられたエレメントのデータファイ
    ルを記憶する計算機システムにおいて、データファイル
    の順序付けられたエレメントを順次アクセスし且つ読み
    出す一方で、前記データファイルを変更できるようにす
    る装置であって、 順序付けされた節を有する木構造(22)の形で前記デー
    タファイルを記憶する第1の手段(24)であって、各節
    は、個々の節内において及び節から節へ順に読み出され
    る前記順序付けさけたエレメントのサブグループを含
    む、第1の手段(24)と、 個々のオペレーションにより節が変更又は削除される毎
    に、前記節に現在のタイムスタンプを付与する第2の手
    段(30)と、 エレメントが読み出されると前記エレメントのインジケ
    ーションを記録し、且つ前記エレメントを読み出しする
    ときに前記エレメントを含む前記節に対応する前記タイ
    ムスタンプのインジケーションを記録する第3の手段
    (40)と、 記録された前記インジケーションによって示された前記
    節の前記タイムスタンプと、前記節に現在付与されてい
    る現在のタイムスタンプとを比較する比較手段(26)で
    あって、読み出された前記エレメントの後続のエレメン
    トを読み出すすぐ前にこの比較を行い、かつ、前記現在
    のタイムスタンプが、記録された前記インジケーション
    によって示された前記タイムスタンプと異なる場合に、
    前記後続のエレメントを現在含む節に対するサーチを
    し、かつ、記録された前記インジケーションによって示
    された前記タイムスタンプが、前記現在のタイムスタン
    プと等しい場合に、前記読み出されたエレメントを含む
    前記節から前記後続のエレメントを提供する、比較手段
    (26)と、 を備える装置。
  10. 【請求項10】節は、エレメントの挿入又は削除によっ
    て変更されるものと考えられ、且つ前記節のエレメント
    を2つの節に分けることによって又は前記節のすべての
    エレメントを削除することによって削除されるものと考
    えられる、 請求項9に記載の装置。
JP63199772A 1987-08-10 1988-08-10 ファイル順次アクセス方法及び装置 Expired - Lifetime JP2761389B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84253 1987-08-10
US07/084,253 US4823310A (en) 1987-08-10 1987-08-10 Device for enabling concurrent access of indexed sequential data files

Publications (2)

Publication Number Publication Date
JPS6470839A JPS6470839A (en) 1989-03-16
JP2761389B2 true JP2761389B2 (ja) 1998-06-04

Family

ID=22183778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63199772A Expired - Lifetime JP2761389B2 (ja) 1987-08-10 1988-08-10 ファイル順次アクセス方法及び装置

Country Status (6)

Country Link
US (1) US4823310A (ja)
EP (1) EP0303231B1 (ja)
JP (1) JP2761389B2 (ja)
AU (1) AU608872B2 (ja)
CA (1) CA1288521C (ja)
DE (1) DE3856055T2 (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107419A (en) * 1987-12-23 1992-04-21 International Business Machines Corporation Method of assigning retention and deletion criteria to electronic documents stored in an interactive information handling system
US5123104A (en) * 1988-04-08 1992-06-16 International Business Machines Corporation Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations
US5043876A (en) * 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
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
CA2001390C (en) * 1988-12-19 1997-12-30 Ming-Chien Shan View composition in a data-base management system
JPH02253449A (ja) * 1989-03-28 1990-10-12 Pfu Ltd データベースの同時実行制御方式
US5454099A (en) * 1989-07-25 1995-09-26 International Business Machines Corporation CPU implemented method for backing up modified data sets in non-volatile store for recovery in the event of CPU failure
JPH03130842A (ja) * 1989-10-17 1991-06-04 Toshiba Corp データベースシステムの同時実行制御装置
JPH07104810B2 (ja) * 1989-11-18 1995-11-13 株式会社日立製作所 共用ファイルのアクセス制御方式
US5062038A (en) * 1989-12-18 1991-10-29 At&T Bell Laboratories Information control system
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
US5063502A (en) * 1989-12-18 1991-11-05 At&T Bell Laborabories Information control system for counting lock application against composite information infrastructure
US5063501A (en) * 1989-12-18 1991-11-05 At&T Bell Laboratories Information control system for selectively transferring a tree lock from a parent node to a child node thereby freeing other nodes for concurrent access
US5063503A (en) * 1989-12-18 1991-11-05 At&T Bell Laboratories Information control system for selectively locking an entity with requested intermediate reserve exclusive and share locks
US5247672A (en) * 1990-02-15 1993-09-21 International Business Machines Corporation Transaction processing system and method with reduced locking
US5142663A (en) * 1990-02-23 1992-08-25 International Business Machines Corporation Method for memory management within a document history log in a data processing system
US5261088A (en) * 1990-04-26 1993-11-09 International Business Machines Corporation Managing locality in space reuse in a shadow written B-tree via interior node free space list
US5319777A (en) * 1990-10-16 1994-06-07 Sinper Corporation System and method for storing and retrieving information from a multidimensional array
JPH04262453A (ja) * 1991-02-15 1992-09-17 Hitachi Ltd ニュ−ロ学習制御方法及び装置
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
US5333316A (en) * 1991-08-16 1994-07-26 International Business Machines Corporation Locking and row by row modification of a database stored in a single master table and multiple virtual tables of a plurality of concurrent users
GB9204450D0 (en) * 1992-03-02 1992-04-15 Ibm Concurrent access to indexed data files
JP3478558B2 (ja) * 1993-04-26 2003-12-15 日本電信電話株式会社 データベースヘのオブジェクト格納検索方法
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US5678040A (en) * 1993-10-29 1997-10-14 Motorola, Inc. Method for managing a hierarchical design transaction
EP0713183A3 (en) * 1994-11-18 1996-10-02 Microsoft Corp Network-independent shadow files
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
US5918224A (en) * 1995-07-26 1999-06-29 Borland International, Inc. Client/server database system with methods for providing clients with server-based bi-directional scrolling at the server
GB2311392B (en) * 1996-03-22 1998-03-04 Digital Equipment Corp A method of maintaining information in a memory of a computer system
US6718550B1 (en) 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US6009425A (en) * 1996-08-21 1999-12-28 International Business Machines Corporation System and method for performing record deletions using index scans
JPH10260876A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd データベースのデータ構造及びデータベースのデータ処理方法
US6510460B1 (en) 1997-12-18 2003-01-21 Sun Microsystems, Inc. Method and apparatus for enforcing locking invariants in multi-threaded systems
US6516354B2 (en) 1997-12-18 2003-02-04 Sun Microsystems, Inc. Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6249803B1 (en) 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
US6405264B1 (en) 1997-12-18 2002-06-11 Sun Microsystems, Inc. Marshaling and unmarshaling framework for supporting filters in a distributed object system
US6205491B1 (en) 1997-12-18 2001-03-20 Sun Microsystems, Inc. Method and apparatus for deferred throwing of exceptions in C++
US6016489A (en) * 1997-12-18 2000-01-18 Sun Microsystems, Inc. Method and apparatus for constructing stable iterators in a shared data collection
US6438616B1 (en) 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6170063B1 (en) 1998-03-07 2001-01-02 Hewlett-Packard Company Method for performing atomic, concurrent read and write operations on multiple storage devices
KR100289331B1 (ko) * 1998-10-27 2001-05-02 정선종 고차원 색인 구조의 동시성 제어 방법
US6411964B1 (en) * 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US7263558B1 (en) 1999-09-15 2007-08-28 Narus, Inc. Method and apparatus for providing additional information in response to an application server request
US6978280B1 (en) * 2000-10-12 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system for improving LUN-based backup reliability
US6978271B1 (en) * 2000-10-31 2005-12-20 Unisys Corporation Mechanism for continuable calls to partially traverse a dynamic general tree
US6633862B2 (en) * 2000-12-29 2003-10-14 Intel Corporation System and method for database cache synchronization across multiple interpreted code engines
US20020174109A1 (en) * 2001-05-16 2002-11-21 Chandy Kanianthra Mani Event detection with concurrent data updates
US20020174111A1 (en) * 2001-05-21 2002-11-21 Panagiotis Kougiouris System and method for managing resources stored in a relational database system
US8112529B2 (en) 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US20090006543A1 (en) * 2001-08-20 2009-01-01 Masterobjects System and method for asynchronous retrieval of information based on incremental user input
GB2383153A (en) * 2001-12-17 2003-06-18 Hemera Technologies Inc Search engine for computer graphic images
US7206776B2 (en) * 2002-08-15 2007-04-17 Microsoft Corporation Priority differentiated subtree locking
US7383276B2 (en) * 2004-01-30 2008-06-03 Microsoft Corporation Concurrency control for B-trees with node deletion
US7953749B2 (en) * 2004-05-11 2011-05-31 Oracel International Corporation Providing the timing of the last committed change to a row in a database table
US7418445B1 (en) * 2004-11-08 2008-08-26 Unisys Corporation Method for reducing the scope of the K node construction lock
US7380000B2 (en) * 2005-08-16 2008-05-27 Toshiba America Research, Inc. IP network information database in mobile devices for use with media independent information server for enhanced network
CN101305374B (zh) 2005-11-10 2014-05-07 皇家飞利浦电子股份有限公司 具有嵌入式临床指引的决策支持设备、装置和方法
US9037557B2 (en) * 2011-02-28 2015-05-19 International Business Machines Corporation Optimistic, version number based concurrency control for index structures with atomic, non-versioned pointer updates
US8713056B1 (en) 2011-03-30 2014-04-29 Open Text S.A. System, method and computer program product for efficient caching of hierarchical items
US9275096B2 (en) * 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
CN103326958B (zh) * 2012-03-22 2017-07-04 罗普特(厦门)科技集团有限公司 监控数据缓存方法及系统
US10417209B1 (en) 2013-03-14 2019-09-17 Roger Lawrence Deran Concurrent index using copy on write
KR101587158B1 (ko) * 2014-02-10 2016-01-20 주식회사 티맥스데이터 트리 인덱스를 이용하는 노드 탐색 방법 및 장치
CN106227679B (zh) * 2016-07-25 2018-12-28 北京邮电大学 一种数据缓存替换方法及装置
KR101947503B1 (ko) * 2017-03-20 2019-02-14 주식회사 티맥스데이터 트리 인덱스를 제공하는 컴퓨팅 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2459476B2 (de) * 1974-12-16 1977-01-20 Gesellschaft für Mathematik und Datenverarbeitung mbH, 5300 Bonn Schaltungsanordnung fuer nichtzyklische datenpermutationen
JPS58201175A (ja) * 1982-05-20 1983-11-22 Kokusai Denshin Denwa Co Ltd <Kdd> 機械翻訳方式
US4627019A (en) * 1982-07-08 1986-12-02 At&T Bell Laboratories Database management system for controlling concurrent access to a database
US4611298A (en) * 1983-06-03 1986-09-09 Harding And Harris Behavioral Research, Inc. Information storage and retrieval system and method

Also Published As

Publication number Publication date
DE3856055T2 (de) 1998-05-20
JPS6470839A (en) 1989-03-16
EP0303231A3 (en) 1992-07-08
AU608872B2 (en) 1991-04-18
DE3856055D1 (de) 1997-12-04
EP0303231B1 (en) 1997-10-29
US4823310A (en) 1989-04-18
CA1288521C (en) 1991-09-03
AU2004688A (en) 1989-02-16
EP0303231A2 (en) 1989-02-15

Similar Documents

Publication Publication Date Title
JP2761389B2 (ja) ファイル順次アクセス方法及び装置
US6209000B1 (en) Tracking storage for data items
US7418544B2 (en) Method and system for log structured relational database objects
US5280612A (en) Multiple version database concurrency control system
EP1342173B1 (en) Database management system and method for databases having large objects
US5758356A (en) High concurrency and recoverable B-tree index management method and system
US6738790B1 (en) Approach for accessing large objects
US8176023B2 (en) Hierarchical locking in B-tree indexes
US5999943A (en) Lob locators
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
US5218696A (en) Method for dynamically expanding and rapidly accessing file directories
US6161109A (en) Accumulating changes in a database management system by copying the data object to the image copy if the data object identifier of the data object is greater than the image identifier of the image copy
US4914569A (en) Method for concurrent record access, insertion, deletion and alteration using an index tree
US6411964B1 (en) Methods for in-place online reorganization of a database
US6026406A (en) Batch processing of updates to indexes
US5933820A (en) System, method, and program for using direct and indirect pointers to logically related data and targets of indexes
US9149054B2 (en) Prefix-based leaf node storage for database system
US8560500B2 (en) Method and system for removing rows from directory tables
Lomet et al. Transaction time support inside a database engine
US20070118547A1 (en) Efficient index versioning in multi-version databases
Hsu et al. Concurrent Operations in Extendible Hashing.
Ghanem et al. Bulk operations for space-partitioning trees
EP0410210A2 (en) Method for dynamically expanding and rapidly accessing file directories
Ng et al. The R-Link tree: A recoverable index structure for spatial data
Lilja et al. Online bulk deletion