JP2515950B2 - コンピュ―タシステム内にエントリするデ―タベ―スを記憶し且つ維持する方法及びデ―タベ―ス管理システム - Google Patents
コンピュ―タシステム内にエントリするデ―タベ―スを記憶し且つ維持する方法及びデ―タベ―ス管理システムInfo
- Publication number
- JP2515950B2 JP2515950B2 JP4167824A JP16782492A JP2515950B2 JP 2515950 B2 JP2515950 B2 JP 2515950B2 JP 4167824 A JP4167824 A JP 4167824A JP 16782492 A JP16782492 A JP 16782492A JP 2515950 B2 JP2515950 B2 JP 2515950B2
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- indexed
- tree data
- pointer
- database
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明は一般的に大きいデータベ
ースを記憶するためのデータベース管理システムに関す
るものであり、且つ特に高いデータ挿入周波数により大
きいデータベースを記憶する場合に、主記憶装置と補助
記憶装置との効率的な使用をさせる方法とシステムとに
関するものである。
ースを記憶するためのデータベース管理システムに関す
るものであり、且つ特に高いデータ挿入周波数により大
きいデータベースを記憶する場合に、主記憶装置と補助
記憶装置との効率的な使用をさせる方法とシステムとに
関するものである。
【0002】
【本発明の背景技術】コンピュータシステムにより実行
される全部のトランザクションの累積のジャーナル(し
ばしばログファイルと呼ばれる)を維持するマルチユー
ザコンピュータシステムを考えよう。典型的には、各ロ
グエントリがそのトランザクションを識別し、そのトラ
ンザクションが計算されるか又はアボートされるかのい
ずれかを指示し、且つ他の関連するデータを含んでい
る。時間を越えて、非常に多数のそのようなログエント
リが累積し、且つこれらのエントリが順アクセスディス
クファイル内に記憶される。永続するトランザクション
と大きく且つ連続するトランザクションの負荷とを有す
るコンピュータシステムを取り扱う複雑なトランザクシ
ョンにおいて、ログ記録は高周波数でファイル内へログ
記録の挿入を要求しながら、非常な高速度で作り出され
る。
される全部のトランザクションの累積のジャーナル(し
ばしばログファイルと呼ばれる)を維持するマルチユー
ザコンピュータシステムを考えよう。典型的には、各ロ
グエントリがそのトランザクションを識別し、そのトラ
ンザクションが計算されるか又はアボートされるかのい
ずれかを指示し、且つ他の関連するデータを含んでい
る。時間を越えて、非常に多数のそのようなログエント
リが累積し、且つこれらのエントリが順アクセスディス
クファイル内に記憶される。永続するトランザクション
と大きく且つ連続するトランザクションの負荷とを有す
るコンピュータシステムを取り扱う複雑なトランザクシ
ョンにおいて、ログ記録は高周波数でファイル内へログ
記録の挿入を要求しながら、非常な高速度で作り出され
る。
【0003】少なくとも幾つかの状態では、一つ以上の
インデックス付値によるログ記録への遅れたアクセスが
望ましい。例えば、幾つかのシステムユーザが十分な周
波数により、そのファイルがこのデータへの効果的なア
クセスを可能にするためにインデックス付参照符号を用
いて、指定されたデータベース管理システム(DBMS;dat
a-base management system)内に記憶されることを必要
とするような歴史的記録をアクセスできる。
インデックス付値によるログ記録への遅れたアクセスが
望ましい。例えば、幾つかのシステムユーザが十分な周
波数により、そのファイルがこのデータへの効果的なア
クセスを可能にするためにインデックス付参照符号を用
いて、指定されたデータベース管理システム(DBMS;dat
a-base management system)内に記憶されることを必要
とするような歴史的記録をアクセスできる。
【0004】多くのトランザクション操作コンピュータ
システムにおいて、ロギングがシステム障害からの回復
を装うことに集中されてきて、従って事象の比較的短い
期間の履歴を参照し帰すことができるようなシステムを
必要としてきた。しかしながら、システム負荷は成長し
続け、且つトランザクションシステムは、もっと複雑な
アクティビティに対する応答性を取るから、アクティビ
ティ記録(事象ロギング)に対する要求は単純な回復ロ
ギングから長期間アクティデヒィ流れ管理補助やシステ
ムモニタリング、気密保護、その他へ偏移する。この偏
移によって、単一の永続性トランザクションを作り上げ
る事象の期間と数とが、所定の時間に取り上げられるス
テップを見直す、人の代行者に対する頻繁な要求が存在
する点まで増大する。同時に、システムには既知の活動
中の事象の全数が、今活動中の事象のトラックを維持す
るために用いられているメモリ常駐データ構造がもはや
利用できない点まで増大する。
システムにおいて、ロギングがシステム障害からの回復
を装うことに集中されてきて、従って事象の比較的短い
期間の履歴を参照し帰すことができるようなシステムを
必要としてきた。しかしながら、システム負荷は成長し
続け、且つトランザクションシステムは、もっと複雑な
アクティビティに対する応答性を取るから、アクティビ
ティ記録(事象ロギング)に対する要求は単純な回復ロ
ギングから長期間アクティデヒィ流れ管理補助やシステ
ムモニタリング、気密保護、その他へ偏移する。この偏
移によって、単一の永続性トランザクションを作り上げ
る事象の期間と数とが、所定の時間に取り上げられるス
テップを見直す、人の代行者に対する頻繁な要求が存在
する点まで増大する。同時に、システムには既知の活動
中の事象の全数が、今活動中の事象のトラックを維持す
るために用いられているメモリ常駐データ構造がもはや
利用できない点まで増大する。
【0005】マルチユーザ銀行業務システム例 1秒当たり100 トランザクションを実行するマルチユー
ザ銀行業務システムを一例として考えよう。各トランザ
クションが幾つかの異なる表の一つから無作為に選択さ
れた列内のある行値を更新する。三つの一次表を有する
システムを用いて、それらの表のうちの二つは主記憶装
置内に維持されるために十分に小さく、且つそれらの表
のうちの一つは補助記憶装置内に維持される場合には、
トランザクションが、平均して、二つの入出力動作を必
要とし、1秒当たり全部で200 ディスク入出力動作を必
要とする。ディスク記憶装置の各ディスクアームが1秒
当たり25入出力動作以上は取り扱えない場合には、8デ
ィスクアームがこのレベルのトランザクションアクティ
ビティを取り扱うために必要となるであろう。
ザ銀行業務システムを一例として考えよう。各トランザ
クションが幾つかの異なる表の一つから無作為に選択さ
れた列内のある行値を更新する。三つの一次表を有する
システムを用いて、それらの表のうちの二つは主記憶装
置内に維持されるために十分に小さく、且つそれらの表
のうちの一つは補助記憶装置内に維持される場合には、
トランザクションが、平均して、二つの入出力動作を必
要とし、1秒当たり全部で200 ディスク入出力動作を必
要とする。ディスク記憶装置の各ディスクアームが1秒
当たり25入出力動作以上は取り扱えない場合には、8デ
ィスクアームがこのレベルのトランザクションアクティ
ビティを取り扱うために必要となるであろう。
【0006】なんらかの数のキー;過去のトランザクシ
ョンについての会計ホルダによる質問に解答するための
タイムスタンプと連結された会計識別子;現金引き出し
不平衡を解決することを容易にするためのタイムスタン
プと連結されたテラー識別子その他;によるログ記録の
インデックスを付けられた検索に対する使用が、誰でも
容易に想像できる。そのようなインデックスに対する挿
入の期間は非常に長くなり得る。
ョンについての会計ホルダによる質問に解答するための
タイムスタンプと連結された会計識別子;現金引き出し
不平衡を解決することを容易にするためのタイムスタン
プと連結されたテラー識別子その他;によるログ記録の
インデックスを付けられた検索に対する使用が、誰でも
容易に想像できる。そのようなインデックスに対する挿
入の期間は非常に長くなり得る。
【0007】標準平衡多方向探索樹 (B-tree; 以下Bト
リーと略称する)インデックス付ファイルを用いて、一
箇月を越える期間の長い記録について会計−ID−タイ
ムスタンプインデックスを維持することを必要とする付
加される資源を考えよう。Bトリーインデックスについ
て馴染みがない読者に対しては、これらの種類のインデ
ックスは従来技術において周知であること、及び以下に
少し詳細に説明することに注目されたい。さし当たっ
て、標準Bトリーインデックスの使用の唯一の重要性
は、各連続する記録に対するログ記録のインデックスの
位置が無作為であることであり−それがそのファイル内
のいかなる位置にあってもよいことを意味する。100 個
の新しいログインデックスエントリが会計−ID−タイ
ムスタンプインデックスに対して1秒当たりに発生し、
1日当たり8時間、1月当たり20労働日である。かくし
て、1月当たりでは約57,600,000個の新しいエントリが
発生する。それに加えて、各インデックスエントリは少
なくとも10バイトを必要とし、1ギガバイトの記憶空間
の約半分を占有するインデックステーブルとなる。明ら
かにほとんどのインデックステーブルはメモリ常駐では
ない。各新挿入ログ記録の位置は無作為であるから、各
トランザクションに対するログ記録を挿入するために
は、1頁読取と1頁書込との平均が典型的に必要であろ
う。かくして、この種の各インデックスは1秒当たり約
200 ディスク入出力動作、すなわち付加的な8ディスク
アームを加える。
リーと略称する)インデックス付ファイルを用いて、一
箇月を越える期間の長い記録について会計−ID−タイ
ムスタンプインデックスを維持することを必要とする付
加される資源を考えよう。Bトリーインデックスについ
て馴染みがない読者に対しては、これらの種類のインデ
ックスは従来技術において周知であること、及び以下に
少し詳細に説明することに注目されたい。さし当たっ
て、標準Bトリーインデックスの使用の唯一の重要性
は、各連続する記録に対するログ記録のインデックスの
位置が無作為であることであり−それがそのファイル内
のいかなる位置にあってもよいことを意味する。100 個
の新しいログインデックスエントリが会計−ID−タイ
ムスタンプインデックスに対して1秒当たりに発生し、
1日当たり8時間、1月当たり20労働日である。かくし
て、1月当たりでは約57,600,000個の新しいエントリが
発生する。それに加えて、各インデックスエントリは少
なくとも10バイトを必要とし、1ギガバイトの記憶空間
の約半分を占有するインデックステーブルとなる。明ら
かにほとんどのインデックステーブルはメモリ常駐では
ない。各新挿入ログ記録の位置は無作為であるから、各
トランザクションに対するログ記録を挿入するために
は、1頁読取と1頁書込との平均が典型的に必要であろ
う。かくして、この種の各インデックスは1秒当たり約
200 ディスク入出力動作、すなわち付加的な8ディスク
アームを加える。
【0008】長さが20日のみに対してログインデックス
を維持することを要求される削除動作は、ピークでない
使用時間の間に多分実行され得る。さもなければ、その
ような削除動作はそのシステムの負荷へ、1秒当たり約
別の200 ディスク入出力動作を付加するであろう。
を維持することを要求される削除動作は、ピークでない
使用時間の間に多分実行され得る。さもなければ、その
ような削除動作はそのシステムの負荷へ、1秒当たり約
別の200 ディスク入出力動作を付加するであろう。
【0009】二つ又は三つのそのようなトランザクショ
ンログインデックスが維持される場合には、トランザク
ションの流れを取り扱うために必要なディスク記憶装置
の数は、銀行の基本的機能記録を維持するために必要な
ディスク記憶装置の数を越えるであろう。
ンログインデックスが維持される場合には、トランザク
ションの流れを取り扱うために必要なディスク記憶装置
の数は、銀行の基本的機能記録を維持するために必要な
ディスク記憶装置の数を越えるであろう。
【0010】本発明は高周波数データ挿入に関連する上
述のディスク入出力ボトルネックを克服する。非常に少
ないディスクアーム使用による、それ故に非常に低い費
用による大きいデータベースのインデックス内への高周
波数挿入を実行することを、本発明がコンピュータシス
テムにできるようにする。特に、本発明はインデックス
変化を延ばし、且つインデックスがディスク上へ記憶さ
れる順序と整合する予定された順序でバッチで記憶され
たログインデックスへのそのような更新を取り扱う。結
果として、ディスク装置に課せられる負荷は非常に低減
される。
述のディスク入出力ボトルネックを克服する。非常に少
ないディスクアーム使用による、それ故に非常に低い費
用による大きいデータベースのインデックス内への高周
波数挿入を実行することを、本発明がコンピュータシス
テムにできるようにする。特に、本発明はインデックス
変化を延ばし、且つインデックスがディスク上へ記憶さ
れる順序と整合する予定された順序でバッチで記憶され
たログインデックスへのそのような更新を取り扱う。結
果として、ディスク装置に課せられる負荷は非常に低減
される。
【0011】また、そのようなインデックスを維持する
アクティビティは主データベースとデータベース管理シ
ステムプログラムとから個別のプロセッサ及び個別のデ
ィスク上で実行され得る。結果として、高い挿入速度デ
ータベースに対するインデックスを維持する処理が、新
しく挿入される記録を確実に且つ早急に記憶している主
データベース管理システムアクティビティの実行を傷つ
けない。
アクティビティは主データベースとデータベース管理シ
ステムプログラムとから個別のプロセッサ及び個別のデ
ィスク上で実行され得る。結果として、高い挿入速度デ
ータベースに対するインデックスを維持する処理が、新
しく挿入される記録を確実に且つ早急に記憶している主
データベース管理システムアクティビティの実行を傷つ
けない。
【0012】
【本発明の概要】本発明の広い形態においては、本発明
は主ランダムアクセス記憶装置と補助記憶装置とを有す
るコンピュータシステム内にエントリするデータベース
を記憶し且つ維持する方法であり、前記コンピュータシ
ステムにより実行される方法のステップは、要求に際し
て、データベースファイル内に新しい記録を記憶するス
テップ、主記憶装置内に記憶されている第1トリーデー
タ構造内へ前記新しい記録へのインデックス付ポインタ
を記憶するステップ、補助記憶装置内に第2トリーデー
タ構造を記憶し、前記第2トリーデータ構造はインデッ
クス付ポインタが前記第1トリーデータ構造内に記憶さ
れる記録以外の全部の前記データベースファイル内の記
録へのインデックス付ポインタを含んでおり、そこで前
記第2トリーデータ構造内の前記インデックス付ポイン
タは前記補助記憶装置内に予定された順序で記憶される
ステップ、前記第1トリーデータ構造の一部を前記第2
トリーデータ構造内へ、(1A)前記第1トリーデータ構造
内のインデックス付ポインタの一部を選択し、(1B)前記
第2トリーデータ構造内の前記インデックス付ポインタ
の相当する一部を前記補助記憶装置から検索し、(1C)前
記第1トリーデータ構造内のインデックス付ポインタの
前記選択された部分を前記第2トリーデータ構造から検
索された前記インデックス付ポインタへ組み合わせ、(1
D)前記予定された順序で前記補助記憶装置内へこの組み
合わされたインデックスポインタを記憶して、且つ(1E)
前記第2トリーデータ構造からのインデックス付ポイン
タと組み合わされたインデックス付ポインタを前記第1
トリーデータ構造から除去することにより、周期的に組
み合わせるステップ、を具えており、それにより付加さ
れたデータベース記録に対するインデックス付ポインタ
はバッチで補助記憶装置へ書き込まれ、それによって前
記補助記憶装置を効率よくアクセスする。
は主ランダムアクセス記憶装置と補助記憶装置とを有す
るコンピュータシステム内にエントリするデータベース
を記憶し且つ維持する方法であり、前記コンピュータシ
ステムにより実行される方法のステップは、要求に際し
て、データベースファイル内に新しい記録を記憶するス
テップ、主記憶装置内に記憶されている第1トリーデー
タ構造内へ前記新しい記録へのインデックス付ポインタ
を記憶するステップ、補助記憶装置内に第2トリーデー
タ構造を記憶し、前記第2トリーデータ構造はインデッ
クス付ポインタが前記第1トリーデータ構造内に記憶さ
れる記録以外の全部の前記データベースファイル内の記
録へのインデックス付ポインタを含んでおり、そこで前
記第2トリーデータ構造内の前記インデックス付ポイン
タは前記補助記憶装置内に予定された順序で記憶される
ステップ、前記第1トリーデータ構造の一部を前記第2
トリーデータ構造内へ、(1A)前記第1トリーデータ構造
内のインデックス付ポインタの一部を選択し、(1B)前記
第2トリーデータ構造内の前記インデックス付ポインタ
の相当する一部を前記補助記憶装置から検索し、(1C)前
記第1トリーデータ構造内のインデックス付ポインタの
前記選択された部分を前記第2トリーデータ構造から検
索された前記インデックス付ポインタへ組み合わせ、(1
D)前記予定された順序で前記補助記憶装置内へこの組み
合わされたインデックスポインタを記憶して、且つ(1E)
前記第2トリーデータ構造からのインデックス付ポイン
タと組み合わされたインデックス付ポインタを前記第1
トリーデータ構造から除去することにより、周期的に組
み合わせるステップ、を具えており、それにより付加さ
れたデータベース記録に対するインデックス付ポインタ
はバッチで補助記憶装置へ書き込まれ、それによって前
記補助記憶装置を効率よくアクセスする。
【0013】ここに記載した好適な一実施例は、主ラン
ダムアクセス記憶装置と補助記憶装置とを有するコンピ
ュータシステムにより維持されるファイルによって、非
常に高い挿入速度によるデータベースの低費用インデッ
クス付けを許容するデータベースインデックス付け技法
を提供する。そのデータベースへ付加される各項目に対
する記録は、補助記憶装置(ディスク記憶装置)内の順
次編成ファイル内へ記憶され、新しい記録へのインデッ
クス付ポインタは主ランダムアクセス記憶装置内へ記憶
された小Bトリー内へ記憶さる。そのデータベースに対
する全インデックスファイルは、第2の、補助記憶装置
内の大Bトリーである。この全インデックスファイルの
葉ノードはパックされて、インデックスを付けられた順
序で記憶される。
ダムアクセス記憶装置と補助記憶装置とを有するコンピ
ュータシステムにより維持されるファイルによって、非
常に高い挿入速度によるデータベースの低費用インデッ
クス付けを許容するデータベースインデックス付け技法
を提供する。そのデータベースへ付加される各項目に対
する記録は、補助記憶装置(ディスク記憶装置)内の順
次編成ファイル内へ記憶され、新しい記録へのインデッ
クス付ポインタは主ランダムアクセス記憶装置内へ記憶
された小Bトリー内へ記憶さる。そのデータベースに対
する全インデックスファイルは、第2の、補助記憶装置
内の大Bトリーである。この全インデックスファイルの
葉ノードはパックされて、インデックスを付けられた順
序で記憶される。
【0014】周期的に、メモリ常駐小Bトリーの一部分
がインデックス値の範囲を選択し、且つインデックス値
のこの選択された範囲内の全部のインデックス付ポイン
タを補助記憶装置から検索することにより、大Bトリー
の相当する部分と組み合わされる。インデックス値のそ
の選択された範囲内の第1Bトリー内のインデックス付
ポインタは検索された記録へ組み合わされ、インデック
ス付ポインタのこの結果の組み合わせ集合は、大Bトリ
ーの末尾において補助記憶装置の隣接する領域内に、イ
ンデックスを付けられた順序で補助記憶装置内へ記憶さ
れる。結果として、新しく付加されたデータベース記録
に対するインデックス付ポインタはバッチで補助記憶装
置へ書き込まれ、それにより補助記憶装置を非常に効果
的にアクセスする。
がインデックス値の範囲を選択し、且つインデックス値
のこの選択された範囲内の全部のインデックス付ポイン
タを補助記憶装置から検索することにより、大Bトリー
の相当する部分と組み合わされる。インデックス値のそ
の選択された範囲内の第1Bトリー内のインデックス付
ポインタは検索された記録へ組み合わされ、インデック
ス付ポインタのこの結果の組み合わせ集合は、大Bトリ
ーの末尾において補助記憶装置の隣接する領域内に、イ
ンデックスを付けられた順序で補助記憶装置内へ記憶さ
れる。結果として、新しく付加されたデータベース記録
に対するインデックス付ポインタはバッチで補助記憶装
置へ書き込まれ、それにより補助記憶装置を非常に効果
的にアクセスする。
【0015】
【実施例】本発明のもっと詳細な理解は、添付の図面と
一緒に理解されるべき好適な典型的実施例の以下の説明
から得ることができる。
一緒に理解されるべき好適な典型的実施例の以下の説明
から得ることができる。
【0016】図1を参照して、システムバス104 によ
り、補助記憶装置106(例えば磁気ディスク記憶デバイ
ス)、主記憶装置108(すなわち、高速の、ランダムアク
セス記憶装置)、仮想記憶装置110 、及びユーザインタ
フェース112 へ相互接続された中央処理ユニット102 を
有するコンピュータシステム100 が示されている。この
コンピュータシステム100 は、ネットワークインタフェ
ース120 によりこのコンピュータシステム100 へ接続さ
れている構内通信網又は広域ネットワークバス118によ
り、多数の他のコンピュータ114, 126と典型的に相互接
続されている。
り、補助記憶装置106(例えば磁気ディスク記憶デバイ
ス)、主記憶装置108(すなわち、高速の、ランダムアク
セス記憶装置)、仮想記憶装置110 、及びユーザインタ
フェース112 へ相互接続された中央処理ユニット102 を
有するコンピュータシステム100 が示されている。この
コンピュータシステム100 は、ネットワークインタフェ
ース120 によりこのコンピュータシステム100 へ接続さ
れている構内通信網又は広域ネットワークバス118によ
り、多数の他のコンピュータ114, 126と典型的に相互接
続されている。
【0017】本発明は単一のコンピュータ100 によって
使用され得るけれども、もっと典型的には本発明は銀
行、航空会社及びその他広域分散形業務により使用され
るような、分散形計算システムに使用されるであろう。
多数の場所においてコンピュータはトランザクションに
関与し、且つこれらのトランザクションを実行する応用
プログラムが多くのデータを発生し、それらのトランザ
クションの内容、進行及び状態を記録する。この文脈に
おいて、システム100 はそれの仕事が全部の事象メッセ
ージを受信し、インデックス付けし且つ記憶することで
ある分散形計算システムにおけるノードとして見ること
ができる。
使用され得るけれども、もっと典型的には本発明は銀
行、航空会社及びその他広域分散形業務により使用され
るような、分散形計算システムに使用されるであろう。
多数の場所においてコンピュータはトランザクションに
関与し、且つこれらのトランザクションを実行する応用
プログラムが多くのデータを発生し、それらのトランザ
クションの内容、進行及び状態を記録する。この文脈に
おいて、システム100 はそれの仕事が全部の事象メッセ
ージを受信し、インデックス付けし且つ記憶することで
ある分散形計算システムにおけるノードとして見ること
ができる。
【0018】補助記憶装置106 は典型的に「ディスクフ
ァーム」を含んでおり、そのディスクファームはデータ
とプログラムとを記憶するために使用されるディスク記
憶デバイス 122〜126 の集合体である。あらゆる単一の
一つのデバイスの制限されたデータ取扱能力の故、及び
記憶されるべきデータの大量の故に、複合ディスク記憶
デバイスがしばしば用いられる。あらゆる場合に、本発
明においては、逐次編成データファイル130 を記憶する
ために補助記憶装置106 が使用され、その逐次編成デー
タファイルがデータ記録が記憶される主データベースフ
ァイルである。補助記憶装置106 は「主インデックス」
ファイル132 を記憶するためにも用いられて、その「主
インデックス」ファイルはデータファイル130 へのキー
付インデックスである。あらゆる普通のデータベース管
理システムにおけると同様に多くの、データファイル13
0 内の記録をアクセスするために、このインデックスは
用いられる。例えば、代理人識別子(これはメッセージ
を発生したユーザ又は計算代理人を識別する)とタイム
スタンプ(これはそのメッセージが発生された時間を識
別する)との連結であるキーを用いてデータ記録はイン
デックスを付けられ得る。複数インデックスが必要な場
合には、個別のインデックスファイル132 が各インデッ
クスに対して発生されるであろう。
ァーム」を含んでおり、そのディスクファームはデータ
とプログラムとを記憶するために使用されるディスク記
憶デバイス 122〜126 の集合体である。あらゆる単一の
一つのデバイスの制限されたデータ取扱能力の故、及び
記憶されるべきデータの大量の故に、複合ディスク記憶
デバイスがしばしば用いられる。あらゆる場合に、本発
明においては、逐次編成データファイル130 を記憶する
ために補助記憶装置106 が使用され、その逐次編成デー
タファイルがデータ記録が記憶される主データベースフ
ァイルである。補助記憶装置106 は「主インデックス」
ファイル132 を記憶するためにも用いられて、その「主
インデックス」ファイルはデータファイル130 へのキー
付インデックスである。あらゆる普通のデータベース管
理システムにおけると同様に多くの、データファイル13
0 内の記録をアクセスするために、このインデックスは
用いられる。例えば、代理人識別子(これはメッセージ
を発生したユーザ又は計算代理人を識別する)とタイム
スタンプ(これはそのメッセージが発生された時間を識
別する)との連結であるキーを用いてデータ記録はイン
デックスを付けられ得る。複数インデックスが必要な場
合には、個別のインデックスファイル132 が各インデッ
クスに対して発生されるであろう。
【0019】オペレーティングシステムソフトウエア14
4 、アクティビティを記録するデータベース管理プログ
ラム146 、及び目的は以下に説明される一時的インデッ
クス148 と同時に、現在実行する応用プログラム142 が
主記憶装置108 内に記憶されている。ディスク入出力の
ための緩衝記憶装置のような、このシステムに使用され
るその他のデータ構造も、主記憶装置内に置かれてい
る。このデータベース管理プログラム146 は、分散トラ
ンザクション処理システムを通じての適用業務により発
生されたアクティビティ記録(しばしばログメッセージ
と呼ばれる)を全部受信して、それらを逐次編成データ
ファイル130 内に記憶する。データベース管理プログラ
ムは、コンピュータシステム管理プログラムにより設定
されたインデックスの数に依存して、各データ記録エン
トリに対する1個以上のインデックスポインタを発生し
且つ記憶する。
4 、アクティビティを記録するデータベース管理プログ
ラム146 、及び目的は以下に説明される一時的インデッ
クス148 と同時に、現在実行する応用プログラム142 が
主記憶装置108 内に記憶されている。ディスク入出力の
ための緩衝記憶装置のような、このシステムに使用され
るその他のデータ構造も、主記憶装置内に置かれてい
る。このデータベース管理プログラム146 は、分散トラ
ンザクション処理システムを通じての適用業務により発
生されたアクティビティ記録(しばしばログメッセージ
と呼ばれる)を全部受信して、それらを逐次編成データ
ファイル130 内に記憶する。データベース管理プログラ
ムは、コンピュータシステム管理プログラムにより設定
されたインデックスの数に依存して、各データ記録エン
トリに対する1個以上のインデックスポインタを発生し
且つ記憶する。
【0020】Bトリーデータ構造 データベース管理システム(database management syste
m; DBMS)は、データベース内に記憶された記録を早急に
アクセスするために、「Bトリー」と呼ばれるデータ構
造をしばしば使用する。そのようなデータ構造はこの技
術に熟達した人々には周知であるが、データベース管理
システムインデックスのために使用されるデータ構造に
を熟知していない読者のために、Bトリーデータ構造の
短い概要を次に与える。
m; DBMS)は、データベース内に記憶された記録を早急に
アクセスするために、「Bトリー」と呼ばれるデータ構
造をしばしば使用する。そのようなデータ構造はこの技
術に熟達した人々には周知であるが、データベース管理
システムインデックスのために使用されるデータ構造に
を熟知していない読者のために、Bトリーデータ構造の
短い概要を次に与える。
【0021】「Bトリー」なる語は文字通り「平衡した
木(トリー)」を表している。Bトリーインデックスは
古典的な2進トリーではなく、むしろ各葉でないノード
がN個の子供を有するN進トリーである。図2を参照し
て、我々はほとんどあらゆるデータベース管理システム
において見出されるBトリーと類似する普通のBトリー
データ構造200 を示す。このトリーの頂点は根ノード20
2 である。このトリーの底部には葉ノード206, 208があ
る。根ノード202 と葉ノードとの間には中間ノード 210
〜220 がある。根ノードと中間ノードとは集合的に「葉
でないノード」と呼ばれる。
木(トリー)」を表している。Bトリーインデックスは
古典的な2進トリーではなく、むしろ各葉でないノード
がN個の子供を有するN進トリーである。図2を参照し
て、我々はほとんどあらゆるデータベース管理システム
において見出されるBトリーと類似する普通のBトリー
データ構造200 を示す。このトリーの頂点は根ノード20
2 である。このトリーの底部には葉ノード206, 208があ
る。根ノード202 と葉ノードとの間には中間ノード 210
〜220 がある。根ノードと中間ノードとは集合的に「葉
でないノード」と呼ばれる。
【0022】この例においては、根ノード202 は100 個
のキー値 204-001〜204-100 を含んでいる。キー値は記
録の集合をインデックス付けするために用いられる値で
あって、且つ典型的にはその記録を識別するために用い
られる記録内の1個以上のフィールドである。例えば、
データベース内の記録が次のように見える場合には、
のキー値 204-001〜204-100 を含んでいる。キー値は記
録の集合をインデックス付けするために用いられる値で
あって、且つ典型的にはその記録を識別するために用い
られる記録内の1個以上のフィールドである。例えば、
データベース内の記録が次のように見える場合には、
【表1】 代理人 タイム 動作1 動作2 パラメータ1 001 000C10 "DUMP" "ABORT" 5444 FF6 88F11D "YES" "COMMIT" 1011 … データベースは3個の16進数字代理人フィールドをタイ
ムフィールドと連結することによりキーを付けられ得
て、上記の第1記録に対しては001-000C10のキー値とな
り、上記の第2記録に対してはFF6-88F11Dとなる。これ
らのキー値内に示されたハイフン「−」は記憶された値
には含まれておらず、ここでは単に読みやすさのために
示されていることは注意されたい。
ムフィールドと連結することによりキーを付けられ得
て、上記の第1記録に対しては001-000C10のキー値とな
り、上記の第2記録に対してはFF6-88F11Dとなる。これ
らのキー値内に示されたハイフン「−」は記憶された値
には含まれておらず、ここでは単に読みやすさのために
示されていることは注意されたい。
【0023】このトリーの葉でないノード内の各々のイ
ンデックス値204 はポインタ値PTRを伴っており、その
ポインタ値がこのトリーの次に低いレベル内のもう一つ
のノード(例えばノード210)を示す。各葉でないノード
に記憶されたキー値がそのノードより下のトリーの部分
をほぼ等しい片に分割するキー値の「間隔」を指示す
る。
ンデックス値204 はポインタ値PTRを伴っており、その
ポインタ値がこのトリーの次に低いレベル内のもう一つ
のノード(例えばノード210)を示す。各葉でないノード
に記憶されたキー値がそのノードより下のトリーの部分
をほぼ等しい片に分割するキー値の「間隔」を指示す
る。
【0024】Bトリー200 の目的は記憶された順序で記
録のインデックスを維持するためである。我々のデータ
ベースが各々が独特のキー値を有する9,000,000 記録を
含んでいると想定しよう。根ノード202 はこれらの記録
を、言うならば、100 個のほぼ等しい大きさのグループ
に分割する。言い換えれば、根内のキー値がキー1〜キ
ー100 のラベルを付けられた場合、キー1とキー2との
間のキー値を有する記録の数はキー2とキー3との間の
キー値を有する記録の数とほぼ同じであり、以下同様で
ある。
録のインデックスを維持するためである。我々のデータ
ベースが各々が独特のキー値を有する9,000,000 記録を
含んでいると想定しよう。根ノード202 はこれらの記録
を、言うならば、100 個のほぼ等しい大きさのグループ
に分割する。言い換えれば、根内のキー値がキー1〜キ
ー100 のラベルを付けられた場合、キー1とキー2との
間のキー値を有する記録の数はキー2とキー3との間の
キー値を有する記録の数とほぼ同じであり、以下同様で
ある。
【0025】根ノード内に作表されたキー値は増大する
順序で(減少する順序も使用され得るけれども)作表さ
れる。根内のキーNとキーN+1との値の間のキー値を
有する全部の記録が、キーNに相当するトリーの第2レ
ベル内のノードを参照することにより見出される。かく
して001-022111(これは根ノード202 内の最初の二つの
キー値の間である)のキー値を有する記録が第2レベル
ノード210 をアクセスことにより見出され、その第2レ
ベルノードは根内の第1キーに相当し、且つその時特定
された記録への葉ノード内のポインタを見出すためにそ
の第2レベルノード210 内のエントリを用いる。
順序で(減少する順序も使用され得るけれども)作表さ
れる。根内のキーNとキーN+1との値の間のキー値を
有する全部の記録が、キーNに相当するトリーの第2レ
ベル内のノードを参照することにより見出される。かく
して001-022111(これは根ノード202 内の最初の二つの
キー値の間である)のキー値を有する記録が第2レベル
ノード210 をアクセスことにより見出され、その第2レ
ベルノードは根内の第1キーに相当し、且つその時特定
された記録への葉ノード内のポインタを見出すためにそ
の第2レベルノード210 内のエントリを用いる。
【0026】このトリー200 の第2レベル及び第3レベ
ルにおける葉でないノードは、根ノードと構造が同じで
あり、100 個のほぼ等しい大きさにされた部分集合にそ
のデータベースのそれらの部分を各々分割する。各ノー
ドはエントリの予定された最小数と最大数とを有する。
例えば、ノードは最小7エントリ及び最大100 エントリ
を各々が有することを許容され得る。かくして、この例
においては、トリーの第2レベルにおいては100 ノード
だけであり、トリーの第3レベル220 においては10,000
ノードだけであり得る。このトリーの第3レベルにおけ
るノード220 は百万葉ノード 206〜208 だけを示す。
ルにおける葉でないノードは、根ノードと構造が同じで
あり、100 個のほぼ等しい大きさにされた部分集合にそ
のデータベースのそれらの部分を各々分割する。各ノー
ドはエントリの予定された最小数と最大数とを有する。
例えば、ノードは最小7エントリ及び最大100 エントリ
を各々が有することを許容され得る。かくして、この例
においては、トリーの第2レベルにおいては100 ノード
だけであり、トリーの第3レベル220 においては10,000
ノードだけであり得る。このトリーの第3レベルにおけ
るノード220 は百万葉ノード 206〜208 だけを示す。
【0027】この例での葉ノード206 は各々、逐次編成
データファイル130 内の100 データ記録までを表現す
る、100 データ対までを含んでいる。各データ対は逐次
編成データファイル130 内の記録へのキー値とポインタ
とを具えている。このポインタ値はディスクアドレス値
と等価であるが、典型的には記録の位置を指示する中間
ポインタである。
データファイル130 内の100 データ記録までを表現す
る、100 データ対までを含んでいる。各データ対は逐次
編成データファイル130 内の記録へのキー値とポインタ
とを具えている。このポインタ値はディスクアドレス値
と等価であるが、典型的には記録の位置を指示する中間
ポインタである。
【0028】この文書の目的に対して、「インデックス
付ポインタ」は、ポインタ値と対にされたインデックス
値、又は情報のあらゆる等価データ構造又はユニットを
具えている値の対を意味すると定義される。
付ポインタ」は、ポインタ値と対にされたインデックス
値、又は情報のあらゆる等価データ構造又はユニットを
具えている値の対を意味すると定義される。
【0029】各トリーノード内に記憶された100 個のデ
ータ値を有する、図4に示した4レベルトリーを用い
て、1億記録までに対するインデックスを記憶すること
ができる。1億記録以上の記録がインデックス付けされ
ねばならぬ場合には、ノードの大きさが増大され得る
(例えば、ノードの大きさを二倍にすることにより、4
レベルトリーの容量は16億記録に増大する)か、又はト
リー200 が5レベルトリーに拡張され、その拡張が100
億記録まで取り扱えるようにするかのいずれかである。
ータ値を有する、図4に示した4レベルトリーを用い
て、1億記録までに対するインデックスを記憶すること
ができる。1億記録以上の記録がインデックス付けされ
ねばならぬ場合には、ノードの大きさが増大され得る
(例えば、ノードの大きさを二倍にすることにより、4
レベルトリーの容量は16億記録に増大する)か、又はト
リー200 が5レベルトリーに拡張され、その拡張が100
億記録まで取り扱えるようにするかのいずれかである。
【0030】真実のシステムのノード内に記憶されるキ
ー値の実際の数は、システムのメモリページサイズ(各
ノードが典型的にディスクメモリの1ページを占有す
る)、各キー値により占有されるバイトの数、及びイン
デックス付けされているデータベースの予言された最大
寸法のような要素に依存することは注意されるべきであ
る。
ー値の実際の数は、システムのメモリページサイズ(各
ノードが典型的にディスクメモリの1ページを占有す
る)、各キー値により占有されるバイトの数、及びイン
デックス付けされているデータベースの予言された最大
寸法のような要素に依存することは注意されるべきであ
る。
【0031】図2のトリー200 から項目を付加し及び削
除するための手順は、この技術に熟達した人々には周知
である。基本的に、新しいエントリを挿入するための正
しい場所はトリーを追跡し、正しい葉ノードが見出され
るまで、新しいエントリに相当するキー値範囲を有する
ノードを追跡することにより決定される。葉ノードが新
しいエントリのための空間を有する場合には、新しいエ
ントリは単純にその葉ノードへ加えられる。葉ノードが
一杯である場合には、新しいエントリに対する空間を作
り出すために存在する葉ノードに沿ってエントリが偏移
されるか、又は新しい葉ノードが作り出されてもよい。
必要な場合には、相当する親ノード内に記憶されたキー
値間隔が、トリーノードの内容へのトラックを維持する
ために調整される。
除するための手順は、この技術に熟達した人々には周知
である。基本的に、新しいエントリを挿入するための正
しい場所はトリーを追跡し、正しい葉ノードが見出され
るまで、新しいエントリに相当するキー値範囲を有する
ノードを追跡することにより決定される。葉ノードが新
しいエントリのための空間を有する場合には、新しいエ
ントリは単純にその葉ノードへ加えられる。葉ノードが
一杯である場合には、新しいエントリに対する空間を作
り出すために存在する葉ノードに沿ってエントリが偏移
されるか、又は新しい葉ノードが作り出されてもよい。
必要な場合には、相当する親ノード内に記憶されたキー
値間隔が、トリーノードの内容へのトラックを維持する
ために調整される。
【0032】エントリの削除は率直である。エントリは
そのエントリの葉ノードから削除される。各ノードに対
するエントリの最小許容数が存在するので、削除はこの
トリー内のノードの数を収縮させ得る。
そのエントリの葉ノードから削除される。各ノードに対
するエントリの最小許容数が存在するので、削除はこの
トリー内のノードの数を収縮させ得る。
【0033】上述のように、図2に使用されたインデッ
クス値とノード寸法とは、Bトリーデータ構造を説明す
る目的のためにのみ設計されたものである。千人のテラ
ーと自動テラーマシンを有する銀行に対するような、実
際の応用においては、インデックス値は典型的に少なく
とも10バイト長さ(例えば、代理人識別に対して4バイ
ト、及びタイムスタンプ値に対して6バイト)であり、
且つ葉ノード及び葉でないノードの両方におけるポイン
タは各々多分4バイト長さ(32ビットアドレスを与える
ために)である。かくして100 エントリを有する各葉は
メモリ記憶装置の約1400バイトを占有する。
クス値とノード寸法とは、Bトリーデータ構造を説明す
る目的のためにのみ設計されたものである。千人のテラ
ーと自動テラーマシンを有する銀行に対するような、実
際の応用においては、インデックス値は典型的に少なく
とも10バイト長さ(例えば、代理人識別に対して4バイ
ト、及びタイムスタンプ値に対して6バイト)であり、
且つ葉ノード及び葉でないノードの両方におけるポイン
タは各々多分4バイト長さ(32ビットアドレスを与える
ために)である。かくして100 エントリを有する各葉は
メモリ記憶装置の約1400バイトを占有する。
【0034】小Bトリーと大Bトリー 本発明の背景で上述のように、図2に示したBトリーデ
ータ構造200 についての問題点は、非常に高レベルのデ
ータ挿入を有するシステムにおいては、大きいインデッ
クスファイルがBトリー200 を通して無作為に分散され
た位置への多数の読取及び書込動作によって、極端に多
数のディスク記憶デバイスを必要とし得ることである。
更にその上、主ランダムアクセス記憶装置108 内に全部
のインデックスを記憶することは実際的でない。例え
ば、6千万記録を記憶し且つ14バイトの記憶装置を必要
とするインデックス付ポインタを使用するシステムにお
いては、インデックスファイルの葉ノードは840 メガバ
イトの記憶装置を必要とするであろうし、それは主記憶
装置内に記憶するためには費用がかかり過ぎる。
ータ構造200 についての問題点は、非常に高レベルのデ
ータ挿入を有するシステムにおいては、大きいインデッ
クスファイルがBトリー200 を通して無作為に分散され
た位置への多数の読取及び書込動作によって、極端に多
数のディスク記憶デバイスを必要とし得ることである。
更にその上、主ランダムアクセス記憶装置108 内に全部
のインデックスを記憶することは実際的でない。例え
ば、6千万記録を記憶し且つ14バイトの記憶装置を必要
とするインデックス付ポインタを使用するシステムにお
いては、インデックスファイルの葉ノードは840 メガバ
イトの記憶装置を必要とするであろうし、それは主記憶
装置内に記憶するためには費用がかかり過ぎる。
【0035】インデックスファイルBトリーの葉でない
ノードは、葉ノードのための記憶空間の約1%を典型的
に使用するのみである。それ故に(約2.1 メガバイトの
記憶装置を必要とする)主記憶装置内に葉でないポイン
タの、言うならば10%、あるいは25%でさえものコピー
を維持するのが非常に実際的である。
ノードは、葉ノードのための記憶空間の約1%を典型的
に使用するのみである。それ故に(約2.1 メガバイトの
記憶装置を必要とする)主記憶装置内に葉でないポイン
タの、言うならば10%、あるいは25%でさえものコピー
を維持するのが非常に実際的である。
【0036】図3及び図4を参照して、データベース管
理プログラム146 は次のように動作する。いつでも新し
いデータ記録が受信された場合には、その新しいデータ
記録は、逐次編成データファイル130 内に、補助記憶装
置内に記憶される(ステップ300)。新しい記録が、それ
らのインデックス値に関係なく、時間の順序でそのファ
イルの終端へ常に書き込まれるから、これは「逐次編
成」データファイルと呼ばれている。幾つかのシステム
においては、少数のそのような記録が、そのような記録
の1全ページ又は幾つかの全ページがすでに記憶されて
しまうまで、又はトランザクションがそこへ関係する全
部の記録が安全に記憶される要求を「コミット」するま
で、緩衝記憶装置250 内へ一時的に記憶されてもよい。
理プログラム146 は次のように動作する。いつでも新し
いデータ記録が受信された場合には、その新しいデータ
記録は、逐次編成データファイル130 内に、補助記憶装
置内に記憶される(ステップ300)。新しい記録が、それ
らのインデックス値に関係なく、時間の順序でそのファ
イルの終端へ常に書き込まれるから、これは「逐次編
成」データファイルと呼ばれている。幾つかのシステム
においては、少数のそのような記録が、そのような記録
の1全ページ又は幾つかの全ページがすでに記憶されて
しまうまで、又はトランザクションがそこへ関係する全
部の記録が安全に記憶される要求を「コミット」するま
で、緩衝記憶装置250 内へ一時的に記憶されてもよい。
【0037】幾つかの記録が補助記憶装置ファイル130
内に記憶された後に、これらの記録のブロックが読み取
られ、且つ相当するインデックス付ポインタが作り出さ
れ且つ一時的に、ここでは小Bトリー(SBT)148と呼ばれ
るインデックスファイル148内で、主記憶装置内へ記憶
される(ステップ302)。以下にもっと詳細に説明される
であろう理由のために、この好適な実施例は二つの小B
トリー、SBT-1 148 及びSBT-0 150 を使用している。さ
しあたっては、我々は第2の小Bトリー150 が小Bトリ
ーであるとだけ考えておこう。
内に記憶された後に、これらの記録のブロックが読み取
られ、且つ相当するインデックス付ポインタが作り出さ
れ且つ一時的に、ここでは小Bトリー(SBT)148と呼ばれ
るインデックスファイル148内で、主記憶装置内へ記憶
される(ステップ302)。以下にもっと詳細に説明される
であろう理由のために、この好適な実施例は二つの小B
トリー、SBT-1 148 及びSBT-0 150 を使用している。さ
しあたっては、我々は第2の小Bトリー150 が小Bトリ
ーであるとだけ考えておこう。
【0038】SBT 150 は、図2に示したBトリーとよく
似たBトリーである。新しい記録に対するインデックス
付ポインタは主記憶装置内に記憶されるので、そのよう
なインデックス付ポインタの発生と記憶とは非常に速
く、補助記憶装置の使用に関してなんらの費用もこうむ
らない。
似たBトリーである。新しい記録に対するインデックス
付ポインタは主記憶装置内に記憶されるので、そのよう
なインデックス付ポインタの発生と記憶とは非常に速
く、補助記憶装置の使用に関してなんらの費用もこうむ
らない。
【0039】小BトリーSBT 150 内に一次的に記憶され
たインデックス付ポインタを除き、データベースファイ
ル130 内の記録に対するインデックス付ポインタ全部
が、ここでは大Bトリー(LBT) と呼ばれる、主インデッ
クスファイル132 内に記憶される。大BトリーLBT 132
の最も重要な特徴は、インデックス付ポインタがインデ
ックスを付けられた順序で補助記憶装置内に記憶され、
且つディスクスペースを有効に使うようにパックされる
ことである。「インデックスを付けられた順序で………
記憶される」なる語はここでは補助記憶装置がアドレス
順に読み取られた場合に、大BトリーLBT 132 内のイン
デックス付ポインタのインデックス値が、「循環」(こ
れは以下に説明する)を除いて単調に増大又は減少する
ことを意味すると定義される。
たインデックス付ポインタを除き、データベースファイ
ル130 内の記録に対するインデックス付ポインタ全部
が、ここでは大Bトリー(LBT) と呼ばれる、主インデッ
クスファイル132 内に記憶される。大BトリーLBT 132
の最も重要な特徴は、インデックス付ポインタがインデ
ックスを付けられた順序で補助記憶装置内に記憶され、
且つディスクスペースを有効に使うようにパックされる
ことである。「インデックスを付けられた順序で………
記憶される」なる語はここでは補助記憶装置がアドレス
順に読み取られた場合に、大BトリーLBT 132 内のイン
デックス付ポインタのインデックス値が、「循環」(こ
れは以下に説明する)を除いて単調に増大又は減少する
ことを意味すると定義される。
【0040】小BトリーSBT 150 の目的は、インデック
ス付ポインタを一時的に記憶し、且つ十分多数のこれら
のポインタを回転する組み合わせ形の手順を用いて、補
助記憶装置内のこれらのインデックス付ポインタの十分
な記憶装置を可能にするように記憶することである。説
明の目的のために、我々は記録挿入の約200 秒を表現し
ている(記録は平均で秒当たり100 記録で挿入されると
想定して)どの一度にも約20,000個のインデックス付ポ
インタをこのSBT 150 が保持すると想定する。各ノード
に記憶された100 項目を有する3レベルトリーを用い
て、このSBT 150は百万個のインデックス付ポインタま
で記憶できる。約20,000個だけを記憶するのだから、第
2レベルの葉でないノードは非常にまばらに送り込まれ
るだけである。それに反して、記録挿入の一時的サージ
がある場合、又は(例えば、補助記憶装置のテープバッ
クアップを作るために)補助記憶装置内のディスクが10
分間利用できない場合には、十分な主記憶装置が利用で
きるかぎり、3レベル小Bトリーが非常に多数のインデ
ックス付ポインタを容易に吸収できる。
ス付ポインタを一時的に記憶し、且つ十分多数のこれら
のポインタを回転する組み合わせ形の手順を用いて、補
助記憶装置内のこれらのインデックス付ポインタの十分
な記憶装置を可能にするように記憶することである。説
明の目的のために、我々は記録挿入の約200 秒を表現し
ている(記録は平均で秒当たり100 記録で挿入されると
想定して)どの一度にも約20,000個のインデックス付ポ
インタをこのSBT 150 が保持すると想定する。各ノード
に記憶された100 項目を有する3レベルトリーを用い
て、このSBT 150は百万個のインデックス付ポインタま
で記憶できる。約20,000個だけを記憶するのだから、第
2レベルの葉でないノードは非常にまばらに送り込まれ
るだけである。それに反して、記録挿入の一時的サージ
がある場合、又は(例えば、補助記憶装置のテープバッ
クアップを作るために)補助記憶装置内のディスクが10
分間利用できない場合には、十分な主記憶装置が利用で
きるかぎり、3レベル小Bトリーが非常に多数のインデ
ックス付ポインタを容易に吸収できる。
【0041】図3中に二つの小BトリーSBT がある意味
は新しく作り出されたインデックス付ポインタが一方の
小BトリーSBT 150 に記憶され、一方他方の小Bトリー
SBT148 は大BトリーLBT 132 内へ組み合わされてい
る。周期的にSBT-1 148 がLBT132 内へ完全に組み合わ
されてしまい、且つ、SBT-1 の内容が削除された後に、
SBT-0 とSBT-1 との定義が交換される (ステップ304)。
この交換の後に、全部の続いて作り出されたインデック
ス付ポインタが(交換の後に空の権利である)SBT-0 内
に記憶されて、且つデータベース管理システムプログラ
ム146 がSBT-1 の内容をLBT 132 内に組み合わせること
を準備する。
は新しく作り出されたインデックス付ポインタが一方の
小BトリーSBT 150 に記憶され、一方他方の小Bトリー
SBT148 は大BトリーLBT 132 内へ組み合わされてい
る。周期的にSBT-1 148 がLBT132 内へ完全に組み合わ
されてしまい、且つ、SBT-1 の内容が削除された後に、
SBT-0 とSBT-1 との定義が交換される (ステップ304)。
この交換の後に、全部の続いて作り出されたインデック
ス付ポインタが(交換の後に空の権利である)SBT-0 内
に記憶されて、且つデータベース管理システムプログラ
ム146 がSBT-1 の内容をLBT 132 内に組み合わせること
を準備する。
【0042】SBT-1 をLBT 内へ組み合わせる前に、ディ
スクポインタがそのLBT ファイルの始まりと末尾とへ設
定される。二つのポインタPTR A とPTR C とが、組み合
わせを実行する前のLBT へ始まりと端末とを示す。これ
らの二つのポインタが組み合わせ動作を通して保持され
るので、この組み合わせ過程の中間にコンピュータシス
テムが崩壊した場合に、インデックス記憶処理中にこの
よく定義された点へバックアップすることが可能であ
り、且つそれで順次編成データファイル130 内に記憶さ
れた記録を用いて全部の続いて発生されたインデックス
付ポインタを再生する。
スクポインタがそのLBT ファイルの始まりと末尾とへ設
定される。二つのポインタPTR A とPTR C とが、組み合
わせを実行する前のLBT へ始まりと端末とを示す。これ
らの二つのポインタが組み合わせ動作を通して保持され
るので、この組み合わせ過程の中間にコンピュータシス
テムが崩壊した場合に、インデックス記憶処理中にこの
よく定義された点へバックアップすることが可能であ
り、且つそれで順次編成データファイル130 内に記憶さ
れた記録を用いて全部の続いて発生されたインデックス
付ポインタを再生する。
【0043】SBT 148 をLBT 内へ組み合わせる処理は多
数回反復されるステップ 306〜316を有する段において
なされる。例えば、各2秒毎にこのシステムはSBT 148
内のインデックス付ポインタの1%をLBT 132 内へ組み
合わせることができる。これをなすために、データベー
ス管理システムプログラム146 がインデックス値の範囲
I1〜I2を選択して、その範囲内のSBT 内のインデックス
付ポインタ全部を(主記憶装置内の丁度一つのアレイで
ある)BUFFER Aと呼ばれる緩衝記憶装置252 内へコピー
する。ポインタSTがBUFFER Aへ未だコピーされていない
最低のインデックス値のトラックを維持する (ステップ
306)。SBT 148 内の全部のインデックス付ポインタがこ
の時保持されるので、これらの項目の何れに対する探索
でもLBT132 へのSBT 148 の組み合わせを完了する前に
実行され得る。
数回反復されるステップ 306〜316を有する段において
なされる。例えば、各2秒毎にこのシステムはSBT 148
内のインデックス付ポインタの1%をLBT 132 内へ組み
合わせることができる。これをなすために、データベー
ス管理システムプログラム146 がインデックス値の範囲
I1〜I2を選択して、その範囲内のSBT 内のインデックス
付ポインタ全部を(主記憶装置内の丁度一つのアレイで
ある)BUFFER Aと呼ばれる緩衝記憶装置252 内へコピー
する。ポインタSTがBUFFER Aへ未だコピーされていない
最低のインデックス値のトラックを維持する (ステップ
306)。SBT 148 内の全部のインデックス付ポインタがこ
の時保持されるので、これらの項目の何れに対する探索
でもLBT132 へのSBT 148 の組み合わせを完了する前に
実行され得る。
【0044】次に、ステップ308 において、インデック
ス値のこの同範囲に対するLBT 132内の補助記憶装置内
の全部のインデックス付ポインタが、ここではBUFFER B
と呼ばれるもう一つの緩衝記憶装置254 内へコピーされ
る。効率のために、インデックス付ポインタが、ポイン
タPTR B により示されるページによりスタートするペー
ジのユニットでBUFFER B内へコピーされる。このコピー
するステップの後に、PTR B がLBT 132 の最初にまだコ
ピーされていないページを示すように進められる。
ス値のこの同範囲に対するLBT 132内の補助記憶装置内
の全部のインデックス付ポインタが、ここではBUFFER B
と呼ばれるもう一つの緩衝記憶装置254 内へコピーされ
る。効率のために、インデックス付ポインタが、ポイン
タPTR B により示されるページによりスタートするペー
ジのユニットでBUFFER B内へコピーされる。このコピー
するステップの後に、PTR B がLBT 132 の最初にまだコ
ピーされていないページを示すように進められる。
【0045】ステップ310 において、BUFFER AとBUFFER
Bとの内容が組み合わされ、且つ組み合わされたポイン
タがインデックスを付けられた順序でBUFFER C 256内へ
記憶される。インデックス値I2より大きいインデックス
値を有するBUFFER B内のあらゆるポインタが、次の組み
合わせ動作の間(すなわち、次のステップ 306〜316通
過の間)使用するためにBUFFER B内に残されていること
は注目されたい。さしあたって、我々はステップ310 も
ポインタがインデックスファイルから削除されるステッ
プであると言う事実を知らないでもよい。
Bとの内容が組み合わされ、且つ組み合わされたポイン
タがインデックスを付けられた順序でBUFFER C 256内へ
記憶される。インデックス値I2より大きいインデックス
値を有するBUFFER B内のあらゆるポインタが、次の組み
合わせ動作の間(すなわち、次のステップ 306〜316通
過の間)使用するためにBUFFER B内に残されていること
は注目されたい。さしあたって、我々はステップ310 も
ポインタがインデックスファイルから削除されるステッ
プであると言う事実を知らないでもよい。
【0046】LBT ファイル132 の葉でないノードの幾つ
かのコピーが、主記憶装置緩衝記憶装置260 内に維持さ
れている。緩衝記憶装置260 内に記憶された葉でないノ
ードの部分は設計的な選択事項であるが、典型的には補
助記憶装置へ葉でないノードをコピーすることを許容
し、且つN回の組み合わせサイクル毎に(例えば、10組
み合わせサイクル毎に1回)葉でないノードの新しい部
分集合を読むことを許容するのに十分大きい。かくし
て、SBT 148 の1%がステップ 306〜316 を通る各ルー
プの間に組み合わされる場合には、多分LBT の葉でない
ノードの15〜20%があらゆる1回において緩衝記憶装置
260 内に保持されるであろう。
かのコピーが、主記憶装置緩衝記憶装置260 内に維持さ
れている。緩衝記憶装置260 内に記憶された葉でないノ
ードの部分は設計的な選択事項であるが、典型的には補
助記憶装置へ葉でないノードをコピーすることを許容
し、且つN回の組み合わせサイクル毎に(例えば、10組
み合わせサイクル毎に1回)葉でないノードの新しい部
分集合を読むことを許容するのに十分大きい。かくし
て、SBT 148 の1%がステップ 306〜316 を通る各ルー
プの間に組み合わされる場合には、多分LBT の葉でない
ノードの15〜20%があらゆる1回において緩衝記憶装置
260 内に保持されるであろう。
【0047】ステップ310 の間に、SBT 148 からの項目
がLBT 132 からの項目と組み合わされるので、緩衝記憶
装置260 内のLBT の葉でないポインタは、補助記憶装置
内のPTR C の位置に記憶されるはずの組み合わされたデ
ータを反映するために更新される。
がLBT 132 からの項目と組み合わされるので、緩衝記憶
装置260 内のLBT の葉でないポインタは、補助記憶装置
内のPTR C の位置に記憶されるはずの組み合わされたデ
ータを反映するために更新される。
【0048】ステップ312 において、BUFFER C内の全部
一杯のページが、PTR D により示されるLBT ファイル13
2 の終端において補助記憶装置内へコピーされる。BUFF
ER C内に残っているあらゆるインデックス付ポインタが
その緩衝記憶装置の始まりへ動かされる。これらのポイ
ンタは次の組み合わせ動作の間LBT 132 内に記憶され
て、その間別のポインタがBUFFER Cへ加えられる。BUFE
R C の全ページが補助記憶装置へコピーされた後に、PT
R D がLBT ファイル132 の新しい終端を示すために更新
される。
一杯のページが、PTR D により示されるLBT ファイル13
2 の終端において補助記憶装置内へコピーされる。BUFF
ER C内に残っているあらゆるインデックス付ポインタが
その緩衝記憶装置の始まりへ動かされる。これらのポイ
ンタは次の組み合わせ動作の間LBT 132 内に記憶され
て、その間別のポインタがBUFFER Cへ加えられる。BUFE
R C の全ページが補助記憶装置へコピーされた後に、PT
R D がLBT ファイル132 の新しい終端を示すために更新
される。
【0049】組み合わせ過程の間にシステム障害がある
場合には、新しく組み合わされたデータが補助記憶装置
内に確かに記憶されるまで、PTR A とPTR B との間のデ
ータが解放されないので、補助記憶装置内のデータはな
んらも失われない。
場合には、新しく組み合わされたデータが補助記憶装置
内に確かに記憶されるまで、PTR A とPTR B との間のデ
ータが解放されないので、補助記憶装置内のデータはな
んらも失われない。
【0050】ステップ314 において、組み合わせ動作の
少しの通過毎に1回、緩衝記憶装置260 内の変形された
葉でないノードが補助記憶装置へコピーされ、且つ次の
少しの組み合わせ動作に対して必要なその他の葉でない
ノードが緩衝記憶装置260 内へコピーされる。
少しの通過毎に1回、緩衝記憶装置260 内の変形された
葉でないノードが補助記憶装置へコピーされ、且つ次の
少しの組み合わせ動作に対して必要なその他の葉でない
ノードが緩衝記憶装置260 内へコピーされる。
【0051】SBT 148 の全部が、まだLBT 132 内へ組み
合わされてしまっていない場合には(ステップ316)、組
み合わせ過程を通る次のループが、ステップ306 におい
て再スタートする。全部のSBT 148 がLBT ファイル132
内へ組み合わされてしまうまで組み合わされるインデッ
クス値の範囲がこのループの各通過の間進められる。そ
れから、ステップ318 において、BUFFER B及びBUFFER C
内のLBT からのあらゆる残っている項目は、(ページが
部分的にのみ満たされる場合でさえも)LBT ファイル13
2 の終端においてディスクへコピーされる。SBT 148 内
のあらゆるものがLBT ファイル132 内へ今やコピーされ
てしまったので、SBT 148 内の全部のエントリが削除さ
れる。PTR A とPTR B との間のディスク空間が解放さ
れ、且つポインタPTR A とPTR C とがLBT ファイル132
の始まりと末尾とを示すためにリセットされる。
合わされてしまっていない場合には(ステップ316)、組
み合わせ過程を通る次のループが、ステップ306 におい
て再スタートする。全部のSBT 148 がLBT ファイル132
内へ組み合わされてしまうまで組み合わされるインデッ
クス値の範囲がこのループの各通過の間進められる。そ
れから、ステップ318 において、BUFFER B及びBUFFER C
内のLBT からのあらゆる残っている項目は、(ページが
部分的にのみ満たされる場合でさえも)LBT ファイル13
2 の終端においてディスクへコピーされる。SBT 148 内
のあらゆるものがLBT ファイル132 内へ今やコピーされ
てしまったので、SBT 148 内の全部のエントリが削除さ
れる。PTR A とPTR B との間のディスク空間が解放さ
れ、且つポインタPTR A とPTR C とがLBT ファイル132
の始まりと末尾とを示すためにリセットされる。
【0052】第1SBT 148 をLBT 132 内へ組み合わせる
処理の間に、多くの新しいインデックス付ポインタが発
生され且つ第2SBT 150 内へ記憶される。一旦この組み
合わせ処理が完成されると、二つの小BトリーSBT の定
義の交換によって、ステップ304 において全体の処理が
再スタートする。
処理の間に、多くの新しいインデックス付ポインタが発
生され且つ第2SBT 150 内へ記憶される。一旦この組み
合わせ処理が完成されると、二つの小BトリーSBT の定
義の交換によって、ステップ304 において全体の処理が
再スタートする。
【0053】代わりの一実施例においては、二つの小B
トリー 148と150 とを用いる代わりに、このシステムは
0かあるいは1のいずれかに等しい特殊マーカを有する
インデックス付ポインタ毎にマーキングすることによ
り、単一のSBT を用いることもできる。第1組み合わせ
通路の間に、0のマークを付けられたインデックス付ポ
インタはLBT 132 内へ組み合わされ、且つSBT 148 内に
記憶された全部の新しいインデックス付ポインタは1の
マークを付けられる。最初の組み合わせが完成された後
に、1のマークを付けられた項目はLBT 132 内へ組み合
わされて、且つ、SBT 148 内に記憶された新しいインデ
ックス付ポインタは0のマークを付けられる。各次の組
み合わせの間には、0と1とのマークを付けられたポイ
ンタの役割が交換される。
トリー 148と150 とを用いる代わりに、このシステムは
0かあるいは1のいずれかに等しい特殊マーカを有する
インデックス付ポインタ毎にマーキングすることによ
り、単一のSBT を用いることもできる。第1組み合わせ
通路の間に、0のマークを付けられたインデックス付ポ
インタはLBT 132 内へ組み合わされ、且つSBT 148 内に
記憶された全部の新しいインデックス付ポインタは1の
マークを付けられる。最初の組み合わせが完成された後
に、1のマークを付けられた項目はLBT 132 内へ組み合
わされて、且つ、SBT 148 内に記憶された新しいインデ
ックス付ポインタは0のマークを付けられる。各次の組
み合わせの間には、0と1とのマークを付けられたポイ
ンタの役割が交換される。
【0054】データベースからのデータの削除 好適な実施例は、データベース及びインデックスファイ
ル130, 132から記録を削除するための二つの機構を与え
ている。最初に、ユーザが削除されるべき特定の記録を
指定できる。この場合には、「削除注釈エントリ(DN)」
270 が、指定された記録のインデックス値に相当するSB
T 148 内の位置において、SBT 内に記憶される。この削
除注釈エントリはその項目内に特殊削除ビットフラグが
設定される以外は、新しい記録に対するインデックス付
ポインタと正確に同じように見える。
ル130, 132から記録を削除するための二つの機構を与え
ている。最初に、ユーザが削除されるべき特定の記録を
指定できる。この場合には、「削除注釈エントリ(DN)」
270 が、指定された記録のインデックス値に相当するSB
T 148 内の位置において、SBT 内に記憶される。この削
除注釈エントリはその項目内に特殊削除ビットフラグが
設定される以外は、新しい記録に対するインデックス付
ポインタと正確に同じように見える。
【0055】削除注釈エントリを含んでいるSBT 葉ノー
ドがLBT 132 内へ組み合わされる場合には、同じインデ
ックス値を有する削除注釈エントリとインデックス付ポ
インタとが、「相互に相殺」し、且つ整合インデックス
付ポインタは削除される (ステップ308 参照) 。相当す
る記録も、順次編成データファイル130 から削除され
る。しかしながら、データ記録の削除は削除フィルタ指
定が維持されるかぎり延期され得る。
ドがLBT 132 内へ組み合わされる場合には、同じインデ
ックス値を有する削除注釈エントリとインデックス付ポ
インタとが、「相互に相殺」し、且つ整合インデックス
付ポインタは削除される (ステップ308 参照) 。相当す
る記録も、順次編成データファイル130 から削除され
る。しかしながら、データ記録の削除は削除フィルタ指
定が維持されるかぎり延期され得る。
【0056】第2に、ユーザ(又は応用プログラム)は
データベースから除去されるべきである項目の1個以上
のフィルタ範囲を指定できる。例えば、応用プログラム
が30日以上古いトランザクション日付を有する全部の記
録が削除されるべきであることを指定できる。この指定
されたフィルタ範囲は、削除フィルタリスト272 内に記
憶される。SBT とLBT とからの記録が組み合わされる時
はいつでも、フィルタ274 が各インデックス付ポインタ
をリスト272 内のフィルタ範囲と比較し、且つあらゆる
削除フィルタ範囲内に落ち込む項目を削除する。相当す
る記録も順次編成データファイル130 から削除されても
よい(ステップ310 参照)。
データベースから除去されるべきである項目の1個以上
のフィルタ範囲を指定できる。例えば、応用プログラム
が30日以上古いトランザクション日付を有する全部の記
録が削除されるべきであることを指定できる。この指定
されたフィルタ範囲は、削除フィルタリスト272 内に記
憶される。SBT とLBT とからの記録が組み合わされる時
はいつでも、フィルタ274 が各インデックス付ポインタ
をリスト272 内のフィルタ範囲と比較し、且つあらゆる
削除フィルタ範囲内に落ち込む項目を削除する。相当す
る記録も順次編成データファイル130 から削除されても
よい(ステップ310 参照)。
【0057】関係事項 図3において、本発明により実行される回転する組み合
わせが、LBT ファイル132 の終端における空間を使用
し、且つLBT ファイル132 の始まりにおける空間を解放
することは注意されたい。最後には利用できるディスク
記憶装置の終端に到達して、その場合にはこのファイル
はディスクのアドレス空間の始まりにおけるメモリの捨
てられたブロックを再利用するように循環する。結果と
して、LBTファイル132 は完全には隣接していない。し
かしながら、最も古く記憶された組み合わされたページ
から次の順次のインデックス値までの飛び越しが常にあ
るから、このファイルは実際に決して完全に論理的に隣
接しないことは注意されねばならない。「循環」アドレ
シングの使用は、コンピュータプログラミングの技術に
熟達した人々には周知であり、且つそのシステムのユー
ザに対して「透過」であると一般に考えられる。かくし
て、最大アドレスの後の「次の」論理的アドレスが最低
アドレスであるから、LBT ファイル132 はインデックス
を付けられた順序で記憶されるべきとまだ考えられる。
わせが、LBT ファイル132 の終端における空間を使用
し、且つLBT ファイル132 の始まりにおける空間を解放
することは注意されたい。最後には利用できるディスク
記憶装置の終端に到達して、その場合にはこのファイル
はディスクのアドレス空間の始まりにおけるメモリの捨
てられたブロックを再利用するように循環する。結果と
して、LBTファイル132 は完全には隣接していない。し
かしながら、最も古く記憶された組み合わされたページ
から次の順次のインデックス値までの飛び越しが常にあ
るから、このファイルは実際に決して完全に論理的に隣
接しないことは注意されねばならない。「循環」アドレ
シングの使用は、コンピュータプログラミングの技術に
熟達した人々には周知であり、且つそのシステムのユー
ザに対して「透過」であると一般に考えられる。かくし
て、最大アドレスの後の「次の」論理的アドレスが最低
アドレスであるから、LBT ファイル132 はインデックス
を付けられた順序で記憶されるべきとまだ考えられる。
【0058】メモリ常駐SBT 148 内のノードはあらゆる
大きさのノードを有することができる。このトリーは決
してディスク上に駐在しないから、ページサイズのノー
ドに固執する必要はない。それ故にSBT 内のノードは
(例えば、2又は3レベルのみを有するトリーを用い
て)典型的にはトリーの深さを最小化することにより、
中央処理ユニット効率を最大化するように寸法決められ
る。
大きさのノードを有することができる。このトリーは決
してディスク上に駐在しないから、ページサイズのノー
ドに固執する必要はない。それ故にSBT 内のノードは
(例えば、2又は3レベルのみを有するトリーを用い
て)典型的にはトリーの深さを最小化することにより、
中央処理ユニット効率を最大化するように寸法決められ
る。
【0059】あらゆる種類の整合動作がデータベース上
で実行される時はいつでも、典型的には記録の指定され
た集合を読み取るために、このシステムはSBT 148(及び
二つのSBT が使用されている場合はSBT 150)とLBT 132
との両方の整合範囲探索を実行しなくてはならない。こ
れは正常なBトリーの場合を越えるわずかな中央処理ユ
ニットオーバーヘッドを意味する。インデックスが発生
される方法により独特なインデックス値が補償されるか
ら、SBT 148 内に所望の値を置かれた場合にインデック
ス付探索は完成される。最も頻繁な探索が近頃に挿入さ
れた記録に対してである場合には、これはメモリ常駐B
トリーSBT 148 が貴重な緩衝機能を満たすことを意味す
る。
で実行される時はいつでも、典型的には記録の指定され
た集合を読み取るために、このシステムはSBT 148(及び
二つのSBT が使用されている場合はSBT 150)とLBT 132
との両方の整合範囲探索を実行しなくてはならない。こ
れは正常なBトリーの場合を越えるわずかな中央処理ユ
ニットオーバーヘッドを意味する。インデックスが発生
される方法により独特なインデックス値が補償されるか
ら、SBT 148 内に所望の値を置かれた場合にインデック
ス付探索は完成される。最も頻繁な探索が近頃に挿入さ
れた記録に対してである場合には、これはメモリ常駐B
トリーSBT 148 が貴重な緩衝機能を満たすことを意味す
る。
【0060】本発明の多重要素Bトリーは、インデック
ス値への独特値制約条件を維持するための適当なデータ
構造ではなく、そこで挿入は重複がないことを保証する
ために探索動作により先立たれねばならないことは注意
されたい。探索動作は挿入動作よりも効率がよくないの
で、そのような要求が多重要素Bトリーを使用する価値
を大きく害する。
ス値への独特値制約条件を維持するための適当なデータ
構造ではなく、そこで挿入は重複がないことを保証する
ために探索動作により先立たれねばならないことは注意
されたい。探索動作は挿入動作よりも効率がよくないの
で、そのような要求が多重要素Bトリーを使用する価値
を大きく害する。
【0061】キー値を変形できるデータベースにおける
記録へなされることを必要とするあらゆる変形は、挿入
により引き継がれる削除動作により取り扱われ得る。
記録へなされることを必要とするあらゆる変形は、挿入
により引き継がれる削除動作により取り扱われ得る。
【0062】組み合わせ手順を通る通路を作るための、
図4内のステップ302 における標準は、実際には、SBT
148 内のインデックス付ポインタエントリの数のモニタ
リングすることによって、及びSBT 内のインデックス付
ポインタの数が指定された数を越える時はいつでも組み
合わせをトリガすることにより、典型的にトリガされる
であろう。この種類の標準がディスクアクセスを最小化
し、且つ(一般に利用できる主記憶装置108 の量に基づ
いて)前もって選択された最良の大きさに近いSBT 148
を維持するように組み合わせが実行される速度にも歩調
を合わせる。
図4内のステップ302 における標準は、実際には、SBT
148 内のインデックス付ポインタエントリの数のモニタ
リングすることによって、及びSBT 内のインデックス付
ポインタの数が指定された数を越える時はいつでも組み
合わせをトリガすることにより、典型的にトリガされる
であろう。この種類の標準がディスクアクセスを最小化
し、且つ(一般に利用できる主記憶装置108 の量に基づ
いて)前もって選択された最良の大きさに近いSBT 148
を維持するように組み合わせが実行される速度にも歩調
を合わせる。
【0063】補助記憶装置内に記憶された大Bトリー13
2 は、100 %充満した葉ノード、及び効果的なディスク
アーム使用のための連続な多重ページブロック内に一緒
にパックされたトリーの各レベル上のノードのキー順序
系列により、順次のディスクアクセスに対して最良化さ
れる。新しいインデックス付ポインタの補助記憶装置内
の大Bトリー内への挿入は、メガバイト範囲で典型的で
ある多重ページブロック書込によって、非常に効果的に
実行される。
2 は、100 %充満した葉ノード、及び効果的なディスク
アーム使用のための連続な多重ページブロック内に一緒
にパックされたトリーの各レベル上のノードのキー順序
系列により、順次のディスクアクセスに対して最良化さ
れる。新しいインデックス付ポインタの補助記憶装置内
の大Bトリー内への挿入は、メガバイト範囲で典型的で
ある多重ページブロック書込によって、非常に効果的に
実行される。
【0064】本発明の背景において論じた銀行業務シス
テム例を参照し直して、12バイトの記憶装置を必要とす
る各インデックス付ポインタを有する、秒当たり100 個
のインデックス付ポインタ挿入を取り扱うために、本発
明により要求されるディスク使用速度を考えよう。1200
バイトの新しいインデックス付ポインタデータが秒当た
りに発生される。我々はこのシステムが4096バイトのペ
ージサイズを有するディスクを使用すること、及び組み
合わせ動作は1%だけインデックス値のあらゆる選択さ
れた範囲内に記憶されたデータの量を典型的に増加させ
ることを想定する。これは各組み合わせ動作中にディス
クへ書き込まれるデータの99%が古いデータであること
を意味する。組み合わせ動作が2秒毎に1回行われる場
合には、大Bトリーへ2400バイトのデータを加えること
は、平均して、ディスクから58又は59ページのブロック
を読み取ること、及びそれから59ページのブロックをデ
ィスクへ書き込み返すことを必要とする。しかしなが
ら、二つのブロックの各々は各組み合わせが二つだけの
入出力動作(ディスクアーム運動)を必要とするであろ
うことを意味する隣接するディスク位置内に記憶され
る。かくして、この例においては、秒当たり100 個の新
しいインデックス付ポインタを挿入することは、平均で
秒当たり1ディスク入出力動作のみの必要とする。標準
の従来技術Bトリーを用いて要求される秒当たり200 デ
ィスク入出力動作と比較した場合に、本発明の利点は極
めて明らかである。
テム例を参照し直して、12バイトの記憶装置を必要とす
る各インデックス付ポインタを有する、秒当たり100 個
のインデックス付ポインタ挿入を取り扱うために、本発
明により要求されるディスク使用速度を考えよう。1200
バイトの新しいインデックス付ポインタデータが秒当た
りに発生される。我々はこのシステムが4096バイトのペ
ージサイズを有するディスクを使用すること、及び組み
合わせ動作は1%だけインデックス値のあらゆる選択さ
れた範囲内に記憶されたデータの量を典型的に増加させ
ることを想定する。これは各組み合わせ動作中にディス
クへ書き込まれるデータの99%が古いデータであること
を意味する。組み合わせ動作が2秒毎に1回行われる場
合には、大Bトリーへ2400バイトのデータを加えること
は、平均して、ディスクから58又は59ページのブロック
を読み取ること、及びそれから59ページのブロックをデ
ィスクへ書き込み返すことを必要とする。しかしなが
ら、二つのブロックの各々は各組み合わせが二つだけの
入出力動作(ディスクアーム運動)を必要とするであろ
うことを意味する隣接するディスク位置内に記憶され
る。かくして、この例においては、秒当たり100 個の新
しいインデックス付ポインタを挿入することは、平均で
秒当たり1ディスク入出力動作のみの必要とする。標準
の従来技術Bトリーを用いて要求される秒当たり200 デ
ィスク入出力動作と比較した場合に、本発明の利点は極
めて明らかである。
【0065】ディスク記憶デバイスは秒当たり25入出力
動作まで典型的に取り扱えるので、ディスク入出力動作
について少なくとも8個のディスク記憶デバイスを必要
とする従来技術システムとは似ない、単一の、非常に大
きいディスク記憶デバイスが大きいBトリーを記憶する
ために使われ得る。従来技術システムと本発明との両方
において、インデックスファイル132 は、幾分かはデー
タベースファイルの大きい寸法の故に、及び幾分かはデ
ータがデータベースへ挿入される且つデータベースから
検索される速度を最大化するために、ディスクすなわち
順次編成データファイル130 を記憶するために使用され
るディスクと異なるディスク記憶デバイス上へ典型的に
記憶される。
動作まで典型的に取り扱えるので、ディスク入出力動作
について少なくとも8個のディスク記憶デバイスを必要
とする従来技術システムとは似ない、単一の、非常に大
きいディスク記憶デバイスが大きいBトリーを記憶する
ために使われ得る。従来技術システムと本発明との両方
において、インデックスファイル132 は、幾分かはデー
タベースファイルの大きい寸法の故に、及び幾分かはデ
ータがデータベースへ挿入される且つデータベースから
検索される速度を最大化するために、ディスクすなわち
順次編成データファイル130 を記憶するために使用され
るディスクと異なるディスク記憶デバイス上へ典型的に
記憶される。
【0066】銀行業務システム例に本発明を使用する
と、新しい項目挿入は単一ディスク記憶デバイスの入出
力能力の約4%だけを占有し、ディスクデバイスはなお
探索動作及び同様のものに対して残された十分な量の入
出力能力を有していることを意味する。更にその上、自
動日付されたデータベースエントリの削除は、あらゆる
付加的なディスク入出力動作を要求することなく本発明
により自動的に取り扱われ、従来技術の標準Bトリー解
決法と比較した場合に、補助記憶装置資源の本発明の使
用法において本発明をまさにもっと効率的にする。
と、新しい項目挿入は単一ディスク記憶デバイスの入出
力能力の約4%だけを占有し、ディスクデバイスはなお
探索動作及び同様のものに対して残された十分な量の入
出力能力を有していることを意味する。更にその上、自
動日付されたデータベースエントリの削除は、あらゆる
付加的なディスク入出力動作を要求することなく本発明
により自動的に取り扱われ、従来技術の標準Bトリー解
決法と比較した場合に、補助記憶装置資源の本発明の使
用法において本発明をまさにもっと効率的にする。
【0067】その他の態様 図5を参照して、二つ以上のBトリーを使用することも
可能である。例えば、これもディスク上に記憶された中
間Bトリー (intermediate B-tree; IBT) 350が、メモ
リ常駐小BトリーSBT 148 と大Bトリー132 との間に挿
入され得る。この多重レベル機構を用いて、小Bトリー
SBT 148 からのデータがローリングベースで中間Bトリ
ーIBT 350 内へ組み合わされ得て、且つ中間BトリーIB
T 350 からのデータはもっと遅いローリングベースで大
BトリーLBT 132 内へ個別に組み合わされ得る。3レベ
ル構造の利点は、大Bトリーのページが読み取られるこ
とを必要とし且つ新しい記録と組み合わされた後にディ
スクへ再び書き込まれることを必要とする速度が実質的
に低減され得ることである。あらゆる一回においてデー
タベース内に保持される十分10億を越えるエントリを有
する高挿入速度データベースに対しては、多分これだけ
が正当化されるであろうし、その場合には、非常に多数
のページが挿入されるべき新しいデータの各ページに対
して、読み取られ且つディスクへ再び書き込まれること
を必要とするであろう。この多重レベル構造の欠点は、
データベース内の項目を見出し且つ読み取ることが、多
くのあるいはほとんどの探索のために3個のBトリーを
アクセスする必要により、非効率的となることである。
可能である。例えば、これもディスク上に記憶された中
間Bトリー (intermediate B-tree; IBT) 350が、メモ
リ常駐小BトリーSBT 148 と大Bトリー132 との間に挿
入され得る。この多重レベル機構を用いて、小Bトリー
SBT 148 からのデータがローリングベースで中間Bトリ
ーIBT 350 内へ組み合わされ得て、且つ中間BトリーIB
T 350 からのデータはもっと遅いローリングベースで大
BトリーLBT 132 内へ個別に組み合わされ得る。3レベ
ル構造の利点は、大Bトリーのページが読み取られるこ
とを必要とし且つ新しい記録と組み合わされた後にディ
スクへ再び書き込まれることを必要とする速度が実質的
に低減され得ることである。あらゆる一回においてデー
タベース内に保持される十分10億を越えるエントリを有
する高挿入速度データベースに対しては、多分これだけ
が正当化されるであろうし、その場合には、非常に多数
のページが挿入されるべき新しいデータの各ページに対
して、読み取られ且つディスクへ再び書き込まれること
を必要とするであろう。この多重レベル構造の欠点は、
データベース内の項目を見出し且つ読み取ることが、多
くのあるいはほとんどの探索のために3個のBトリーを
アクセスする必要により、非効率的となることである。
【0068】十分大きいデータベースに対しては、4個
あるいはそれ以上のレベルのBトリーが使用され得て、
各レベルが連続するローリングベースで次のレベルでの
Bトリー内へ組み合わされる。
あるいはそれ以上のレベルのBトリーが使用され得て、
各レベルが連続するローリングベースで次のレベルでの
Bトリー内へ組み合わされる。
【0069】本発明は少しの特定の態様を参照して説明
されてきたが、それらの記載は本発明を図解するもので
あり且つ本発明を制限するように解釈されるべきではな
い。添付の特許請求の範囲により定義されたような本発
明の真の精神と範囲とから離れることなく、この技術に
熟達した人々には種々の変形が生じるであろう。
されてきたが、それらの記載は本発明を図解するもので
あり且つ本発明を制限するように解釈されるべきではな
い。添付の特許請求の範囲により定義されたような本発
明の真の精神と範囲とから離れることなく、この技術に
熟達した人々には種々の変形が生じるであろう。
【0070】特に、好適な実施例において用いられたB
トリー構造は、置換データ構造が主データベース内の記
録を参照するために記憶された順序を定義するかぎり、
その他のデータ構造により置き換えられることができ
る。例えば、ハッシュテーブルがインデックス付ポイン
タを記憶するための好適な実施例のBトリーの場所に用
いられ得る。このハッシュテーブル内のエントリはイン
デックスを付けられた順序の代わりにハッシュインデッ
クス順序で記憶される。小さいメモリ常駐ハッシュテー
ブルは、ハッシュ指標順序で進行する組み合わせ手順に
より、補助記憶装置内に記憶されたより大きいハッシュ
テーブル内へ周期的に組み合わされる。
トリー構造は、置換データ構造が主データベース内の記
録を参照するために記憶された順序を定義するかぎり、
その他のデータ構造により置き換えられることができ
る。例えば、ハッシュテーブルがインデックス付ポイン
タを記憶するための好適な実施例のBトリーの場所に用
いられ得る。このハッシュテーブル内のエントリはイン
デックスを付けられた順序の代わりにハッシュインデッ
クス順序で記憶される。小さいメモリ常駐ハッシュテー
ブルは、ハッシュ指標順序で進行する組み合わせ手順に
より、補助記憶装置内に記憶されたより大きいハッシュ
テーブル内へ周期的に組み合わされる。
【図1】本発明の好適な実施例によるコンピュータシス
テムのブロック線図である。
テムのブロック線図である。
【図2】Bトリーデータ構造のブロック線図である。
【図3】大きいデータベースへインデックス付ポインタ
を記憶するために好適な実施例に用いられた過程の概念
的ブロック線図である。
を記憶するために好適な実施例に用いられた過程の概念
的ブロック線図である。
【図4】インデックス付ポインタを記憶するために好適
な実施例に用いられた過程のフローチャートである。
な実施例に用いられた過程のフローチャートである。
【図5】本発明に統合されるインデックス緩衝計画の3
レベル版に対する概念的ブロック線図である。
レベル版に対する概念的ブロック線図である。
100 コンピュータシステム 102 中央処理ユニット 104 システムバス 106 補助記憶装置 108 主記憶装置 110 仮想記憶装置 112 ユーザインタフェース 114, 116 他のコンピュータ 118 構内通信網又は広域ネットワークバス 120 ネットワークインタフェース 122, 124, 126 ディスク記憶デバイス 130 順次編成データファイル 132 「主インデックス」ファイルすなわち大Bトリー 142 応用プログラム 144 オペレーティングシステムソフトウエア 146 アクティビティ記録データベース管理プログラム 148 一時的インデックスファイルすなわち小Bトリー
SBT-1 150 小BトリーSBT-0 200 通常のBトリーデータ構造 202 根ノード 204-001 〜204-100 100 のキー値 206, 208 葉ノード 210, 212, 220 中間ノード 250 緩衝記憶装置 252 緩衝記憶装置A 254 緩衝記憶装置B 256 緩衝記憶装置C 260 主記憶装置緩衝記憶装置 270 削除注釈エントリDN 272 削除フィルタリスト 274 フィルタ 300 〜318 ステップ 350 中間Bトリー(IBT)
SBT-1 150 小BトリーSBT-0 200 通常のBトリーデータ構造 202 根ノード 204-001 〜204-100 100 のキー値 206, 208 葉ノード 210, 212, 220 中間ノード 250 緩衝記憶装置 252 緩衝記憶装置A 254 緩衝記憶装置B 256 緩衝記憶装置C 260 主記憶装置緩衝記憶装置 270 削除注釈エントリDN 272 削除フィルタリスト 274 フィルタ 300 〜318 ステップ 350 中間Bトリー(IBT)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 パトリック イー オニール アメリカ合衆国 マサチューセッツ州 02173 レキシントン ホイッティアー ロード 7 (56)参考文献 特開 昭59−119460(JP,A)
Claims (17)
- 【請求項1】主ランダムアクセス記憶装置と補助記憶装
置とを有するコンピュータシステム内にエントリするデ
ータベースを記憶し且つ維持する方法であって、前記コ
ンピュータシステムにより実行される方法のステップ
は、 要求に際して、データベースファイル内に新しい記録を
記憶するステップ、 主記憶装置内に記憶されている第1トリーデータ構造内
へ前記新しい記録へのインデックス付ポインタを記憶す
るステップ、 補助記憶装置内に第2トリーデータ構造を記憶し、前記
第2トリーデータ構造はインデックス付ポインタが前記
第1トリーデータ構造内に記憶される記録以外の全部の
前記データベースファイル内の記録へのインデックス付
ポインタを含んでおり、そこで前記第2トリーデータ構
造内の前記インデックス付ポインタは前記補助記憶装置
内に予定された順序で記憶されるステップ、 前記第1トリーデータ構造の一部を前記第2トリーデー
タ構造内へ、(1A)前記第1トリーデータ構造内のインデ
ックス付ポインタの一部を選択し、(1B)前記第2トリー
データ構造内の前記インデックス付ポインタの相当する
一部を前記補助記憶装置から検索し、(1C)前記第1トリ
ーデータ構造内のインデックス付ポインタの前記選択さ
れた部分を前記第2トリーデータ構造から検索された前
記インデックス付ポインタへ組み合わせ、(1D)前記予定
された順序で前記補助記憶装置内へこの組み合わされた
インデックスポインタを記憶し、且つ(1E)前記第2トリ
ーデータ構造からのインデックス付ポインタと組み合わ
されたインデックス付ポインタを前記第1トリーデータ
構造から除去することにより、周期的に組み合わせるス
テップ、 を具えており、 それにより付加されたデータベース記録に対するインデ
ックス付ポインタはバッチで補助記憶装置へ書き込ま
れ、それによって前記補助記憶装置を効率よくアクセス
する、 ことを特徴とするコンピュータシステム内にエントリす
るデータベースを記憶し且つ維持する方法。 - 【請求項2】前記周期的に組み合わせるステップが、ス
テップ(1A)〜(1E)を実行する前に、 (1F)前記第1トリーデータ構造内のインデックス付ポイ
ンタの前記選択された部分を周期的に変更するステップ
を含んでいるので、前記第1トリーデータ構造内に記憶
された全部のインデックス付ポインタが前記第2トリー
データ構造内へ組み合わされる、 ことを特徴とする請求項1記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項3】指定されたインデックス値を有する前記デ
ータベースファイル内の指定された記録を、(2A)前記指
定された記録へのインデックス付ポインタに対する前記
第一トリーデータ構造を探索し、(2B)前記インデックス
付ポインタが前記第1トリーデータ構造内に見出された
場合には、前記データファイルから前記指定された記録
を削除し且つ前記第1トリーデータ構造から前記インデ
ックス付ポインタを削除し、且つ(2C)さもなければ前記
指定されたインデックス値を示す削除注釈エントリを主
記憶装置内に記憶することにより、削除する各要求に応
答するステップを更に具え、 前記周期的に組み合わせるステップが、ステップ(1C)を
実行する間に、(1G)前記削除注釈エントリの一つにより
指定されたインデックス値に整合するインデックス値を
有する前記第2トリーデータ構造内の各検索されたイン
デックス付ポインタを削除し、且つ前記削除されたイン
デックス付ポインタに相当する前記データベースファイ
ル内の記録を削除するステップを含んでいる、 ことを特徴とする請求項1記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項4】前記ステップ(2C)が、前記削除注釈エント
リを具えているデータを、前記指定されたインデックス
値に従って、前記第1トリーデータ構造内に記憶するス
テップを含んでおり、且つ 前記ステップ(1G)が、前記第1トリーデータ構造からの
インデックス付ポインタを前記検索されたインデックス
付ポインタに組み合わせる場合に、前記第1トリーデー
タ構造内で削除注釈エントリにより指定されたインデッ
クス値と整合するインデックス値を有する各検索された
インデックス付ポインタを削除し、且つ前記削除される
インデックス付ポインタに相当する前記データベースフ
ァイル内の記録を削除するステップを含んでいる、 ことを特徴とする請求項3記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項5】主ランダムアクセス記憶装置と補助記憶装
置とを有するコンピュータシステム内にエントリするデ
ータベースを記憶し且つ維持する方法であって、前記コ
ンピュータシステムにより実行される方法は、 要求に際して、データベースファイル内に新しい記録を
記憶するステップ、 主記憶装置内に記憶されている第1トリーデータ構造内
へ前記新しい記録へのインデックス付ポインタを記憶す
るステップ、 補助記憶装置内に第2トリーデータ構造を記憶し、前記
第2トリーデータ構造はインデックス付ポインタが前記
第1トリーデータ構造内に記憶される記録以外の全部の
前記データベースファイル内の記録へのインデックス付
ポインタを含んでおり、そこで前記第2トリーデータ構
造内の前記インデックス付ポインタは前記補助記憶装置
内にインデックスを付けられた順序で記憶されるステッ
プ、 前記第1トリーデータ構造の一部を前記第2トリーデー
タ構造内へ、(1A)インデックス値の範囲を選択し、(1B)
インデックス値の前記選択された範囲内で前記第2トリ
ーデータ構造内の全部のインデックス付ポインタを前記
補助記憶装置から検索し、(1C)インデックス値の前記選
択された範囲と整合する前記第1トリーデータ構造内の
インデックス付ポインタを前記検索されたインデックス
付ポインタへ組み合わせ、(1D)インデックスを付けられ
た順序で前記補助記憶装置内へ前記組み合わされたイン
デックスポインタを記憶し、且つ(1E)前記第2トリーデ
ータ構造からのインデックス付ポインタと組み合わされ
たインデックス付ポインタを前記第1トリーデータ構造
から除去することにより、周期的に組み合わせるステッ
プ、 を具えており、 それにより付加されたデータベース記録に対するインデ
ックス付ポインタは選択されたインデックス値範囲内で
バッチで補助記憶装置へ書き込まれ、それによって前記
補助記憶装置を効率よくアクセスする、 ことを特徴とするコンピュータシステム内にエントリす
るデータベースを記憶し且つ維持する方法。 - 【請求項6】前記周期的に組み合わせるステップが、ス
テップ(1A)〜(1E)を実行する前に、 (1F)インデックス値の前記選択された範囲を周期的に変
更するステップを含んでいるので、前記第1トリーデー
タ構造内に記憶された全部のインデックス付ポインタが
前記第2トリーデータ構造内へ組み合わされ、更に、 指定されたインデックス値を有する前記データベースフ
ァイル内の指定された記録を、(2A)前記指定された記録
へのインデックス付ポインタに対する前記第一トリーデ
ータ構造を探索し、(2B)前記インデックス付ポインタが
前記第1トリーデータ構造内に見出された場合には、前
記データファイルから前記指定された記録を削除し且つ
前記第1トリーデータ構造から前記インデックス付ポイ
ンタを削除し、且つ(2C)さもなければ前記指定されたイ
ンデックス値を示す削除注釈エントリを主記憶装置内に
記憶することにより、削除する各要求に応答するステッ
プを具え、 前記周期的に組み合わせるステップが、ステップ(1C)を
実行する間に、(1G)前記削除注釈エントリの一つにより
指定されたインデックス値に整合するインデックス値を
有する前記第2トリーデータ構造内の各検索されたイン
デックス付ポインタを削除し、且つ前記削除されたイン
デックス付ポインタに相当する前記データベースファイ
ル内の記録を削除するステップを含んでいる、 ことを特徴とする請求項5記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項7】前記ステップ(2C)が、前記削除注釈エント
リを具えているデータを、前記指定されたインデックス
値に従って、前記第1トリーデータ構造内に記憶するス
テップを含んでおり、且つ 前記ステップ(1G)が、前記第1トリーデータ構造からの
インデックス付ポインタを前記検索されたインデックス
付ポインタに組み合わせる場合に、前記第1トリーデー
タ構造内で削除注釈エントリにより指定されたインデッ
クス値と整合するインデックス値を有する各検索された
インデックス付ポインタを削除し、且つ前記削除される
インデックス付ポインタに相当する前記データベースフ
ァイル内の記録を削除するステップを含んでいる、 ことを特徴とする請求項6記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項8】主ランダムアクセス記憶装置と補助記憶装
置とを有するコンピュータシステム内にエントリするデ
ータベースを記憶し且つ維持する方法であって、前記コ
ンピュータシステムにより実行される方法は、 前記補助記憶装置内へデータベースファイル内の記録の
集合を記憶し、前記ファイル内の各記録はフィールドの
集合を含んでおり、そこで前記フィールドの指定された
集合が前記記録のインデックス値であると指定されるス
テップと、 前記ファイル内の前記記録の第1部分集合へのインデッ
クス付ポインタを表現する第1トリーデータ構造を主ラ
ンダムアクセス記憶装置内に記憶し、前記第1トリーデ
ータ構造は各々が前記ファイル内の記録への多様なイン
デックス付ポインタを含んでいる多様な葉ノードを含ん
でいるステップと、 前記記録の第2部分集合へのインデックス付ポインタを
表現している第2トリーデータ構造を補助記憶装置内に
記憶し、前記記録の前記第2部分集合は前記記録の前記
第1部分集合内に含まれない前記ファイル内の記録を具
えており、前記第2トリーデータ構造は多様な葉ノード
を含んでおり、前記第2トリーデータ構造内の前記葉ノ
ードはインデックス値の重複しない集合を有するインデ
ックス付ポインタを含んでおり、そこで前記葉ノードが
インデックスを付けられた順序で前記補助記憶装置内へ
記憶されるステップと、 各新しい記録を前記ファイル内へ記憶し且つ前記新しい
記録へのインデックス付ポインタを前記第1トリーデー
タ構造内へ記憶することにより、新しい記録を前記記録
のインデックス値に従って主ランダムアクセス記憶装置
内へ記憶する要求に応答するステップと、及び 前記第1トリーデータ構造の一部を前記第2トリーデー
タ構造内へ、(1A)インデックス値の範囲を選択し、(1B)
インデックス値の前記選択された範囲内の全部のインデ
クス付ポインタを前記補助記憶装置内の前記第2トリー
データ構造から検索し、(1C)インデクス値の前記選択さ
れた範囲と整合する前記第1トリーデータ構造内のイン
デクス付ポインタを前記検索されたインデクス付ポイン
タ内へ組み合わせ、(1D)インデクスを付けられた順序で
葉ノード内に前記補助記憶装置内の前記組み合わされた
インデクスポインタを記憶し、且つ(1E)前記第2トリー
データ構造からのインデクス付ポインタと組み合わされ
たインデクス付ポインタを前記第1トリーデータ構造か
ら除去することにより、周期的に組み合わせるステップ
と、 を具えており、 それにより付加されたデータベース記録に対するインデ
クス付ポインタは選択されたインデクス値範囲内でバッ
チで補助記憶装置へ書き込まれ、それによって前記補助
記憶装置を効率よくアクセスする、 ことを特徴とするコンピュータシステム内にエントリす
るデータベースを記憶し且つ維持する方法。 - 【請求項9】指定されたインデクス値を有する前記デー
タベースファイル内の指定された記録を、(2A)前記指定
された記録へのインデクス付ポインタに対する前記第一
トリーデータ構造を探索し、(2B)前記インデクス付ポイ
ンタが前記第1トリーデータ構造内に見出された場合に
は、前記データファイルから前記指定された記録を削除
し且つ前記第1トリーデータ構造から前記インデクス付
ポインタを削除し、且つ(2C)さもなければ前記指定され
たインデクス値を示す削除注釈エントリを主記憶装置内
に記憶することによって、削除する各要求に応答するス
テップを更に具え、 前記周期的に組み合わせるステップが、ステップ(1C)を
実行する間に、(1G)前記削除注釈エントリの一つにより
指定されたインデクス値に整合するインデクス値を有す
る前記第2トリーデータ構造内の各検索されたインデク
ス付ポインタを削除し、且つ前記削除されたインデクス
付ポインタに相当する前記データベースファイル内の記
録を削除するステップを更に含んでいる、 ことを特徴とする請求項8記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項10】前記ステップ(2C)が、前記削除注釈エン
トリを具えているデータを、前記指定されたインデクス
値に従って、前記第1トリーデータ構造内に記憶するス
テップを含んでおり、且つ 前記ステップ(1G)が、前記第1トリーデータ構造からの
インデクス付ポインタを前記検索されたインデクス付ポ
インタに組み合わせる場合に、前記第1トリーデータ構
造内で削除注釈エントリにより指定されたインデクス値
と整合するインデクス値を有する各検索されたインデク
ス付ポインタを削除し、且つ前記削除されるインデクス
付ポインタに相当する前記データベースファイル内の記
録を削除するステップを含んでいる、 ことを特徴とする請求項9記載のコンピュータシステム
内にエントリするデータベースを記憶し且つ維持する方
法。 - 【請求項11】主ランダムアクセス記憶装置と、補助記
憶装置、及び前記主記憶装置と第2の補助記憶装置とへ
結合された中央処理ユニットを有するデータベース管理
システムであって、該データベース管理システムは、 補助記憶装置内へ少なくとも部分的に記憶される多数の
記録を含んでいるデータベースファイルと、 前記データベースファイル内の前記記録に対するインデ
クスであって、 主記憶装置内に記憶される第1トリーデータ構造であっ
て、前記データベースファイル内の記録の部分集合への
インデクス付ポインタを含んでいる第1トリーデータ構
造、及び 補助記憶装置内に記憶される第2トリーデータ構造であ
って、インデクス付ポインタが前記第1トリーデータ構
造内に記憶されている記録以外の前記データベースファ
イル内の全部の記録へのインデクス付ポインタを含んで
おり、そこで前記第2トリーデータ構造内の前記インデ
クス付ポインタが補助記憶装置内へ予定された順序で記
憶される、第2トリーデータ構造、 を具えている前記データベースファイル内の前記記録に
対するインデクスと、及び 前記中央処理ユニットによって実行されるデータベース
処理プログラムであって、 新しい記録を前記データベースファイル内に記憶し、且
つ前記新しい記録へのインデクス付ポインタを前記第1
トリーデータ構造内へ記憶するための新記録記憶手段
と、及び 前記第1トリーデータ構造の一部分を前記第2トリーデ
ータ構造内へ、(1A)インデクス値の範囲を選択し、(1B)
前記第2トリーデータ構造内の前記インデクス付ポイン
タの相当する部分を前記補助記憶装置から検索し、(1C)
前記第2トリーデータ構造から検索された前記インデク
ス付ポインタ内へ前記第1トリーデータ構造内の指標付
ポインタの前記選択された部分を組み合わせ、(1D)前記
予定された順序で前記補助記憶装置内へ前記組み合わさ
れたインデクスポインタを記憶し、且つ(1E)前記第2ト
リーデータ構造からのインデクス付ポインタと組み合わ
されたインデクス付ポインタを前記第1トリーデータ構
造から除去することにより、周期的に組み合わせるため
のトリー組合せ手段、 を含んでいるデータベース管理プログラム、 を具えており、 それによって、付加されるデータベース記録に対するイ
ンデクス付ポインタがバッチで補助記憶装置へ書き込ま
れ、それにより補助記憶装置を効率よくアクセスするこ
とを特徴とするデータベース管理システム。 - 【請求項12】前記第1トリーデータ構造からのインデ
クス付ポインタを前記第2トリーデータ構造内に組み合
せる前に、前記第1トリーデータ構造内のインデクス付
ポインタの前記選択された部分を周期的に変えるための
手段を前記トリー組合せ手段が含んでいるので、前記第
1トリーデータ構造内に記憶される全部のインデクス付
ポインタが前記第2トリーデータ構造内へ組み合わさ
れ、前記システムは更に、指定されたインデクス値を有
する前記データベースファイル内の指定された記録を削
除する要求に応答し、(2A)前記指定された記録へのイン
デクス付ポインタに対する前記第1トリーデータ構造を
探索し、(2B)前記インデクス付ポインタが前記第1トリ
ーデータ構造内に見出された場合には、前記データファ
イルから前記指定された記録を削除し、且つ前記第1ト
リーデータ構造から前記インデクス付ポインタを削除
し、且つ(2C)さもなければ、前記指定されたインデクス
値を示す削除注釈エントリを主記憶装置内に記憶する削
除手段を含んでおり、 前記トリー組合せ手段は前記削除注釈エントリの一つに
より指定されたインデクス値と整合するインデクス値を
有する前記第2トリーデータ構造内の各検索されたイン
デクス付ポインタを削除し、且つ前記削除されたインデ
クス付ポインタに相当する前記データベースファイル内
の記録を削除する削除フィルタ手段を含んでいる、 ことを特徴とする請求項11記載のデータベース管理シス
テム。 - 【請求項13】前記削除注釈エントリを具えているデー
タを、前記の指定されたインデクス値に従って、前記第
1トリーデータ構造内へ記憶するための手段を前記削除
手段が含んでおり、且つ 前記削除フィルタ手段が前記第1トリーデータ構造内の
削除注釈エントリにより指定されるインデクス値と整合
するインデクス値を有する各検索されたインデクス付ポ
インタを削除し、且つ前記削除されるインデクス付ポイ
ンタに相当する前記データベースフィルタ内の記録を削
除する手段を含んでいる、 ことを特徴とする請求項12記載のデータベース管理シス
テム。 - 【請求項14】主ランダムアクセス記憶装置と、補助記
憶装置、及び前記主記憶装置と第2の補助記憶装置とへ
結合された中央処理ユニットを有するデータベース管理
システムであって、該データベース管理システムは、 補助記憶装置内へ少なくとも部分的に記憶される多数の
記録を含んでいるデータベースフィルタと、 前記データベースファイル内の前記記録に対するインデ
クスであって、 主記憶装置内に記憶される第1トリーデータ構造であっ
て、前記データベースファイル内の記録の部分集合への
インデクス付ポインタを含んでいる第1トリーデータ構
造、及び、 補助記憶装置内に記憶された第2トリーデータ構造であ
って、インデクス付ポインタが前記第1トリーデータ構
造内に記憶されている記録以外の前記データベースファ
イル内の全部の記録へのインデクス付ポインタを含んで
おり、そこで前記第2トリーデータ構造内の前記インデ
クス付ポインタは補助記憶装置内にインデクスを付けら
れ た順序で記憶れれる前記第2トリーデータ構造、を
含む前記記録に対するインデクスと、及び 前記中央処理ユニットによって実行されるデータベース
管理プログラムであって、 新しい記録を前記データベースファイル内に記憶し、且
つ前記新しい記録へのインデクス付ポインタを前記第1
トリーデータ構造内に記憶するための新記録記憶手段、
及び 前記第1トリーデータ構造の一部分を前記第2トリーデ
ータ構造内へ、(1A)インデクス値の範囲を選択し、(1B)
インデクス値の前記選択された範囲内の前記第2トリー
データ構造内の全部のインデクス付ポインタを補助記憶
装置から検索し、(1C)インデクス値の前記選択された範
囲と整合する前記第1トリーデータ構造内のインデクス
付ポインタを前記検索されたインデクス付ポインタ内へ
組合せ、(1D)前記補助記憶装置内へインデックスを付け
られた順序で前記組み合わされたインデックスポインタ
を記憶し、且つ(1E)前記第2トリーデータ構造からのイ
ンデックス付ポインタと組み合わされたインデックス付
ポインタを前記第1トリーデータ構造から除去すること
により、周期的に組み合わせるためのトリー組合せ手
段、 を含んでいるデータベース管理プログラムと、 を具えており、 それによって、付加されるデータベース記録に対するイ
ンデックス付ポインタがバッチで補助記憶装置内へ書き
込まれ、それにより補助記憶装置を効率よくアクセスす
ることを特徴とするデータベース管理システム。 - 【請求項15】前記第1トリーデータ構造からのインデ
ックス付ポインタを前記第2トリーデータ構造内へ組み
合わせる前に、インデックス値の前記選択された範囲を
周期的に変えるための手段を前記トリー組み合わせ手段
が含んでいるので、前記第1トリーデータ構造内に記憶
される全部のインデックス付ポインタが前記第2トリー
データ構造内へ組み合わされ、前記データベース管理プ
ログラムは更に、 指定されたインデックス値を有する前記データベースフ
ァイル内の指定された記録を削除する要求に応答し、(2
A)前記指定された記録へのインデックス付ポインタに対
する前記第1トリーデータ構造を探索し、(2B)前記イン
デックス付ポインタが前記第1トリーデータ構造内に見
出された場合には、前記データファイルから前記指定さ
れた記録を削除し、且つ前記第1トリーデータ構造から
前記インデックス付ポインタを削除し、且つ、(2C)さも
なければ、前記指定されたインデックス値を示す削除注
釈エントリを主記憶装置内に記憶する削除手段を含んで
おり、 前記トリー組合せ手段は前記削除注釈エントリの一つに
より指定されたインデックス値と整合するインデックス
値を有する前記第2トリーデータ構造内の各検索された
インデックス付ポインタを削除し、且つ前記削除された
インデックス付ポインタに相当する前記データベースフ
ァイル内の記録を削除する削除フィルタ手段を含んでい
る、 ことを特徴とする請求項14記載のデータベース管理シス
テム。 - 【請求項16】前記削除注釈エントリを具えているデー
タを、前記の指定されたインデックス値に従って、前記
第1トリーデータ構造内へ記憶するための手段を前記削
除手段が含んでおり、且つ 前記削除フィルタ手段が前記第1トリーデータ構造内の
削除注釈エントリにより指定されたインデックス値に整
合するインデックス値を有する各検索されたインデック
ス付ポインタを削除し、且つ、前記削除されるインデッ
クス付ポインタに相当する前記データベースフィルタ内
の記録を削除するための手段を含んでいる、 ことを特徴とする請求項15記載のデータベース管理シス
テム。 - 【請求項17】主ランダムアクセス記憶装置と、補助記
憶装置、及び前記主記憶装置と第2の補助記憶装置とへ
結合された中央処理ユニットを有するデータベース管理
システムであって、該データベース管理システムは、 補助記憶装置内へ少なくとも部分的に記憶される多数の
記録を含んでいるデータベースファイルと、 前記データベースファイル内の前記記録に対するインデ
ックスであって、 主記憶装置内に記憶される第1データ構造であって、前
記データベースファイル内の記録の部分集合へのインデ
ックス付ポインタを含んでいる第1データ構造、及び、 補助記憶装置内に記憶された第2データ構造であって、
インデックス付ポインタが前記第1データ構造内に記憶
されている記録以外の前記データベースファイル内の全
部の記録へのインデックス付ポインタを含んでおり、そ
こで前記第2データ構造内の前記インデックス付ポイン
タは補助記憶装置内に予定された順序で記憶れれる前記
第2データ構造、 を含む前記記録に対するインデックスと、及び 前記中央処理ユニットによって実行されるデータベース
管理プログラムであって、 新しい記録を前記データベースファイル内に記憶し、且
つ前記新しい記録へのインデックス付ポインタを前記第
1データ構造内に記憶するための新記録記憶手段、及び 前記第1データ構造の一部分を前記第2データ構造内
へ、(1A)インデックス値の範囲を選択し、(1B)前記第2
データ構造内の前記インデックス付ポインタの相当する
部分を前記補助記憶装置から検索し、(1C)前記第1デー
タ構造内のインデクス付ポインタの前記選択された部分
を前記第2データ構造から検索された前記インデックス
付ポインタ内へ組合せ、(1D)前記補助記憶装置内へ前記
予定された順序で前記組み合わされたインデックスポイ
ンタを記憶し、且つ、 (1E)前記第2データ構造からのインデックス付ポインタ
と組み合わされたインデックス付ポインタを前記第1デ
ータ構造から除去することにより、周期的に組み合わせ
るための組み合わせ手段、 を含んでいるデータベース管理プログラムと、 を具えており、 それによって、付加されるデータベース記録に対するイ
ンデックス付ポインタがバッチで補助記憶装置内へ書き
込まれ、それにより補助記憶装置を効率よくアクセスす
ることを特徴とするデータベース管理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/722007 | 1991-06-27 | ||
US07/722,007 US5204958A (en) | 1991-06-27 | 1991-06-27 | System and method for efficiently indexing and storing a large database with high data insertion frequency |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0628231A JPH0628231A (ja) | 1994-02-04 |
JP2515950B2 true JP2515950B2 (ja) | 1996-07-10 |
Family
ID=24900156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4167824A Expired - Lifetime JP2515950B2 (ja) | 1991-06-27 | 1992-06-25 | コンピュ―タシステム内にエントリするデ―タベ―スを記憶し且つ維持する方法及びデ―タベ―ス管理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5204958A (ja) |
EP (1) | EP0522363A3 (ja) |
JP (1) | JP2515950B2 (ja) |
Families Citing this family (168)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430869A (en) * | 1991-05-29 | 1995-07-04 | Hewlett-Packard Company | System and method for restructuring a B-Tree |
US5764877A (en) * | 1991-06-25 | 1998-06-09 | Digital Equipment Corporation | Media recovery with time-split B-trees |
US7299240B1 (en) | 1992-04-10 | 2007-11-20 | Intellisync Corporation | Method for translating computer data from one record structure to another |
EP0567668A1 (en) * | 1992-04-27 | 1993-11-03 | International Business Machines Corporation | A computer system for retrieval of information |
US5727196A (en) * | 1992-05-21 | 1998-03-10 | Borland International, Inc. | Optimized query interface for database management systems |
US5517641A (en) * | 1992-05-27 | 1996-05-14 | Cdb Software, Inc. | Restartable method to reorganize DB2 tablespace records by determining new physical positions for the records prior to moving using a non sorting technic |
US5408654A (en) * | 1992-05-27 | 1995-04-18 | Cdb Software, Inc. | Method to reorganize an index file without sorting by changing the physical order of pages to match the logical order determined from the index structure |
US5508502A (en) * | 1992-05-29 | 1996-04-16 | Olympus Optical Co., Ltd. | Information recording/regenerating method and information management system capable of managing a plurality of items of information efficiently |
US5446881A (en) * | 1992-09-25 | 1995-08-29 | At&T Corp. | Database storage and retrieval method using a declining stage size and repetitive searches |
JP2865500B2 (ja) * | 1992-09-30 | 1999-03-08 | 富士通株式会社 | ファイル格納管理方法 |
US5685003A (en) * | 1992-12-23 | 1997-11-04 | Microsoft Corporation | Method and system for automatically indexing data in a document using a fresh index table |
US5418947A (en) * | 1992-12-23 | 1995-05-23 | At&T Corp. | Locating information in an unsorted database utilizing a B-tree |
US5613105A (en) * | 1993-06-30 | 1997-03-18 | Microsoft Corporation | Efficient storage of objects in a file system |
US5560007A (en) * | 1993-06-30 | 1996-09-24 | Borland International, Inc. | B-tree key-range bit map index optimization of database queries |
US5446887A (en) * | 1993-09-17 | 1995-08-29 | Microsoft Corporation | Optimal reorganization of a B-tree |
EP0646882B1 (en) * | 1993-10-04 | 2002-03-20 | Siemens Aktiengesellschaft | Method and apparatus for fast accessing of data items from a sorted list and data base carrier for use with such method and/or apparatus |
GB2283591B (en) * | 1993-11-04 | 1998-04-15 | Northern Telecom Ltd | Database management |
EP0733235B1 (en) * | 1993-12-10 | 1999-05-12 | Cheyenne Advanced Technology Limited | Incremental backup system |
US5499360A (en) * | 1994-02-28 | 1996-03-12 | Panasonic Technolgies, Inc. | Method for proximity searching with range testing and range adjustment |
JP3441807B2 (ja) * | 1994-09-19 | 2003-09-02 | 株式会社日立製作所 | B木インデクスの管理方法およびシステム |
JP3401010B2 (ja) | 1994-10-14 | 2003-04-28 | ユナイテッド パーセル サービス オブ アメリカ,インコーポレイテッド | 多段階荷物追跡システム |
US5684990A (en) * | 1995-01-11 | 1997-11-04 | Puma Technology, Inc. | Synchronization of disparate databases |
US5794242A (en) * | 1995-02-07 | 1998-08-11 | Digital Equipment Corporation | Temporally and spatially organized database |
WO1996032685A1 (en) | 1995-04-11 | 1996-10-17 | Kinetech, Inc. | Identifying data in a data processing system |
US6493762B1 (en) * | 1995-05-08 | 2002-12-10 | International Business Machines Corporation | Index allocation for data broadcasting |
US5701469A (en) * | 1995-06-07 | 1997-12-23 | Microsoft Corporation | Method and system for generating accurate search results using a content-index |
JPH0916607A (ja) * | 1995-06-26 | 1997-01-17 | Hitachi Ltd | データベース管理システムにおけるインデクス管理方法 |
US5644763A (en) * | 1995-06-28 | 1997-07-01 | Sybase, Inc. | Database system with improved methods for B-tree maintenance |
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 |
US5809494A (en) * | 1995-11-16 | 1998-09-15 | Applied Language Technologies, Inc. | Method for rapidly and efficiently hashing records of large databases |
US5918234A (en) * | 1995-11-22 | 1999-06-29 | F.M.E. Corporation | Method and apparatus for redundant postage accounting data files |
US5802219A (en) * | 1995-11-27 | 1998-09-01 | Sun Microsystems, Inc. | Methods and apparatus for table lookup transformation of digital images |
US6427147B1 (en) * | 1995-12-01 | 2002-07-30 | Sand Technology Systems International | Deletion of ordered sets of keys in a compact O-complete tree |
US5758353A (en) * | 1995-12-01 | 1998-05-26 | Sand Technology Systems International, Inc. | Storage and retrieval of ordered sets of keys in a compact 0-complete tree |
US5974455A (en) * | 1995-12-13 | 1999-10-26 | Digital Equipment Corporation | System for adding new entry to web page table upon receiving web page including link to another web page not having corresponding entry in web page table |
GB2311392B (en) * | 1996-03-22 | 1998-03-04 | Digital Equipment Corp | A method of maintaining information in a memory of a computer system |
US5842196A (en) * | 1996-04-03 | 1998-11-24 | Sybase, Inc. | Database system with improved methods for updating records |
US5893088A (en) * | 1996-04-10 | 1999-04-06 | Altera Corporation | System and method for performing database query using a marker table |
US6006227A (en) * | 1996-06-28 | 1999-12-21 | Yale University | Document stream operating system |
US5832484A (en) * | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
EP0850455A2 (en) * | 1996-07-08 | 1998-07-01 | Koninklijke Philips Electronics N.V. | Method for executing an iterative search |
US5787435A (en) * | 1996-08-09 | 1998-07-28 | Digital Equipment Corporation | Method for mapping an index of a database into an array of files |
US6374232B1 (en) * | 1996-08-29 | 2002-04-16 | Oracle Corp. | Method and mechanism for retrieving values from a database |
US6212529B1 (en) * | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
US6044381A (en) * | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
US5943676A (en) | 1996-11-13 | 1999-08-24 | Puma Technology, Inc. | Synchronization of recurring records in incompatible databases |
US5937401A (en) * | 1996-11-27 | 1999-08-10 | Sybase, Inc. | Database system with improved methods for filtering duplicates from a tuple stream |
US5848405A (en) * | 1997-04-21 | 1998-12-08 | Oracle Corporation | Method and apparatus for identifying new data by address ranges |
US6286011B1 (en) * | 1997-04-30 | 2001-09-04 | Bellsouth Corporation | System and method for recording transactions using a chronological list superimposed on an indexed list |
US6006027A (en) * | 1997-08-20 | 1999-12-21 | Synopsys, Inc. | Method and apparatus for event simulation |
US6122645A (en) * | 1997-08-25 | 2000-09-19 | Lucent Technologies, Inc. | System and method for physically versioning data in a main memory database |
WO1999023583A1 (en) * | 1997-11-03 | 1999-05-14 | Top Info Outsourcing Services (Proprietary) Limited | Data storage and retrieval using unique identifiers |
US6792432B1 (en) | 1998-03-31 | 2004-09-14 | Sybase, Inc. | Database system with methods providing high-concurrency access in B-Tree structures |
US6272486B1 (en) * | 1998-04-16 | 2001-08-07 | International Business Machines Corporation | Determining the optimal number of tasks for building a database index |
US6314421B1 (en) | 1998-05-12 | 2001-11-06 | David M. Sharnoff | Method and apparatus for indexing documents for message filtering |
US6112209A (en) | 1998-06-17 | 2000-08-29 | Gusack; Mark David | Associative database model for electronic-based informational assemblies |
US6067548A (en) * | 1998-07-16 | 2000-05-23 | E Guanxi, Inc. | Dynamic organization model and management computing system and method therefor |
CA2244626A1 (en) * | 1998-07-31 | 2000-01-31 | Kom Inc. | A hardware and software system |
JP3581831B2 (ja) * | 1998-08-11 | 2004-10-27 | 晋二 古庄 | 表形式データの検索・集計・ソート方法及び装置 |
US6606626B1 (en) | 1998-10-20 | 2003-08-12 | Sybase, Inc. | Database system with lock manager enhancement for improving concurrency |
US6363387B1 (en) | 1998-10-20 | 2002-03-26 | Sybase, Inc. | Database system providing methodology for enhancing concurrency using row update bit and deferred locking |
US6631366B1 (en) | 1998-10-20 | 2003-10-07 | Sybase, Inc. | Database system providing methodology for optimizing latching/copying costs in index scans on data-only locked tables |
US6591269B1 (en) * | 1999-05-19 | 2003-07-08 | Sybase, Inc. | Database system with methodology for online index rebuild |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7395282B1 (en) * | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
US20040225865A1 (en) * | 1999-09-03 | 2004-11-11 | Cox Richard D. | Integrated database indexing system |
US6829695B1 (en) | 1999-09-03 | 2004-12-07 | Nexql, L.L.C. | Enhanced boolean processor with parallel input |
US6334123B1 (en) | 1999-09-03 | 2001-12-25 | Whamtech, Inc. | Index relational processor |
US6532476B1 (en) * | 1999-11-13 | 2003-03-11 | Precision Solutions, Inc. | Software based methodology for the storage and retrieval of diverse information |
US6772141B1 (en) | 1999-12-14 | 2004-08-03 | Novell, Inc. | Method and apparatus for organizing and using indexes utilizing a search decision table |
US7155481B2 (en) | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
US6721767B2 (en) * | 2000-01-31 | 2004-04-13 | Commvault Systems, Inc. | Application specific rollback in a computer system |
US7003641B2 (en) * | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US6658436B2 (en) * | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US6490578B1 (en) | 2000-04-05 | 2002-12-03 | Sybase, Inc. | Database system with methodology for high-performance date |
US6678692B1 (en) * | 2000-07-10 | 2004-01-13 | Northrop Grumman Corporation | Hierarchy statistical analysis system and method |
GB2372598A (en) | 2001-02-26 | 2002-08-28 | Coppereye Ltd | Organising data in a database |
US7359920B1 (en) | 2001-04-18 | 2008-04-15 | Intellisync Corporation | Communication protocol for synchronization of personal information management databases |
US6778977B1 (en) * | 2001-04-19 | 2004-08-17 | Microsoft Corporation | Method and system for creating a database table index using multiple processors |
US6859808B1 (en) * | 2001-05-31 | 2005-02-22 | Oracle International Corporation | Mapping logical row identifiers for primary B+tree-like structures to physical row identifiers |
US20030028506A1 (en) * | 2001-06-29 | 2003-02-06 | Lin Yu | Deferred index building systems, methods and computer program products for storing temporally spaced apart bursts of data records in a database |
US6751627B2 (en) * | 2001-07-23 | 2004-06-15 | Networks Associates Technology, Inc. | Method and apparatus to facilitate accessing data in network management protocol tables |
US6763347B1 (en) * | 2001-10-19 | 2004-07-13 | Nick Zhang | Indexing management for hierarchical main memory |
JP2003141158A (ja) * | 2001-11-06 | 2003-05-16 | Fujitsu Ltd | 順序を考慮したパターンを用いた検索装置および方法 |
US7249118B2 (en) * | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
US7647354B2 (en) * | 2002-05-24 | 2010-01-12 | Oracle International Corporation | High-performance change capture for data warehousing |
US7454569B2 (en) | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
US7730222B2 (en) * | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7827362B2 (en) * | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US7991748B2 (en) * | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
US7631120B2 (en) | 2004-08-24 | 2009-12-08 | Symantec Operating Corporation | Methods and apparatus for optimally selecting a storage buffer for the storage of data |
US7904428B2 (en) * | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
US7287133B2 (en) | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
US7577807B2 (en) * | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
US7577806B2 (en) * | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7725760B2 (en) * | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
WO2005050381A2 (en) * | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
JP4444677B2 (ja) * | 2004-01-20 | 2010-03-31 | クラリオン株式会社 | 検索データの更新方法および更新システム |
WO2005086003A1 (ja) * | 2004-03-08 | 2005-09-15 | Annex Systems Incorporated | データベース・システム |
US7483906B2 (en) * | 2004-04-14 | 2009-01-27 | Microsoft Corporation | Method and system for renaming consecutive keys in a B-tree |
US7689633B1 (en) | 2004-09-15 | 2010-03-30 | Data Domain, Inc. | Network file system-based data storage system |
US7792839B2 (en) * | 2005-01-13 | 2010-09-07 | International Business Machines Corporation | Incremental indexing of a database table in a database |
EP1681641A3 (en) * | 2005-01-13 | 2007-04-04 | International Business Machines Corporation | Incremental indexing |
US20070022148A1 (en) * | 2005-07-20 | 2007-01-25 | Akers David G | Reserving an area of a storage medium for a file |
US20070091926A1 (en) * | 2005-10-21 | 2007-04-26 | Apostolopoulos John G | Method for optimizing portions of data from a plurality of data streams at a transcoding node |
US20070118547A1 (en) * | 2005-11-22 | 2007-05-24 | Monish Gupta | Efficient index versioning in multi-version databases |
US20070214139A1 (en) * | 2006-03-10 | 2007-09-13 | Roach James A | System and method for mapping data in a multi-valued data structure |
US8185576B2 (en) | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
US8108355B2 (en) * | 2006-10-27 | 2012-01-31 | Hewlett-Packard Development Company, L.P. | Providing a partially sorted index |
KR100878142B1 (ko) * | 2006-12-19 | 2009-01-13 | 연세대학교 산학협력단 | 플래시 메모리 상에서의 효율적인 동작을 위한 수정된b-트리 인덱스 구성 방법 |
US8719809B2 (en) * | 2006-12-22 | 2014-05-06 | Commvault Systems, Inc. | Point in time rollback and un-installation of software |
US20080201290A1 (en) * | 2007-02-16 | 2008-08-21 | International Business Machines Corporation | Computer-implemented methods, systems, and computer program products for enhanced batch mode processing of a relational database |
US9449047B2 (en) | 2007-06-19 | 2016-09-20 | Sybase, Inc. | Dynamic modification of schemas in streaming databases |
US8745012B2 (en) | 2007-08-10 | 2014-06-03 | Sybase, Inc. | Log-structured store for streaming data |
KR100911413B1 (ko) | 2007-11-08 | 2009-08-11 | 한국과학기술정보연구원 | 데이터베이스와 정보검색 통합을 위한 문서단위 동적색인관리 특성을 갖는 정보검색 시스템 및 그 방법 |
US9112886B2 (en) * | 2007-12-27 | 2015-08-18 | Verizon Patent And Licensing Inc. | Method and system for providing centralized data field encryption, and distributed storage and retrieval |
US20090254594A1 (en) * | 2008-04-02 | 2009-10-08 | Microsoft Corporation | Techniques to enhance database performance |
US20090259617A1 (en) * | 2008-04-15 | 2009-10-15 | Richard Charles Cownie | Method And System For Data Management |
US20090276470A1 (en) * | 2008-05-05 | 2009-11-05 | Vijayarajan Rajesh | Data Processing System And Method |
US20100146003A1 (en) * | 2008-12-10 | 2010-06-10 | Unisys Corporation | Method and system for building a B-tree |
US20100257175A1 (en) * | 2009-04-02 | 2010-10-07 | Yahoo!, Inc., a Delaware corporation | Method, system, or apparatus for joining one or more events |
US8180763B2 (en) * | 2009-05-29 | 2012-05-15 | Microsoft Corporation | Cache-friendly B-tree accelerator |
US8412688B1 (en) | 2009-06-29 | 2013-04-02 | Emc Corporation | Delegated reference count base file versioning |
US8200633B2 (en) | 2009-08-07 | 2012-06-12 | International Business Machines Corporation | Database backup and restore with integrated index reorganization |
US10564944B2 (en) * | 2010-01-07 | 2020-02-18 | Microsoft Technology Licensing, Llc | Efficient immutable syntax representation with incremental change |
US8996563B2 (en) | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US8375012B1 (en) | 2011-08-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | Computer indexes with multiple representations |
US9171031B2 (en) * | 2012-03-02 | 2015-10-27 | Cleversafe, Inc. | Merging index nodes of a hierarchical dispersed storage index |
US11010415B2 (en) | 2012-04-30 | 2021-05-18 | Sap Se | Fixed string dictionary |
US9465829B2 (en) * | 2012-04-30 | 2016-10-11 | Sap Se | Partial merge |
US9465844B2 (en) | 2012-04-30 | 2016-10-11 | Sap Se | Unified table query processing |
US9165010B2 (en) | 2012-04-30 | 2015-10-20 | Sap Se | Logless atomic data movement |
US9171020B2 (en) | 2012-04-30 | 2015-10-27 | Sap Se | Deleting records in a multi-level storage architecture |
US10162766B2 (en) | 2012-04-30 | 2018-12-25 | Sap Se | Deleting records in a multi-level storage architecture without record locks |
US8930374B2 (en) * | 2012-06-29 | 2015-01-06 | Nokia Corporation | Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure |
US9218411B2 (en) | 2012-08-07 | 2015-12-22 | International Business Machines Corporation | Incremental dynamic document index generation |
US20140181438A1 (en) * | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Filtered reference copy of secondary storage data in a data storage system |
US9760609B2 (en) * | 2013-11-22 | 2017-09-12 | Here Global B.V. | Graph-based recommendations service systems and methods |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US10705907B1 (en) | 2016-03-24 | 2020-07-07 | EMC IP Holding Company LLC | Data protection in a heterogeneous random access storage array |
US10324782B1 (en) | 2016-03-24 | 2019-06-18 | Emc Corporation | Hiccup management in a storage array |
US10101934B1 (en) | 2016-03-24 | 2018-10-16 | Emc Corporation | Memory allocation balancing for storage systems |
US9857990B1 (en) | 2016-03-24 | 2018-01-02 | EMC IP Holding Company LLC | Fast startup for modular storage systems |
EP3516540B1 (en) * | 2016-09-22 | 2024-07-17 | Visa International Service Association | Techniques for in-memory data searching |
US10255172B1 (en) | 2016-09-30 | 2019-04-09 | EMC IP Holding Company LLC | Controlled testing using code error injection |
US10152371B1 (en) | 2016-09-30 | 2018-12-11 | EMC IP Holding Company LLC | End-to-end data protection for distributed storage |
US10223008B1 (en) | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Storage array sizing for compressed applications |
US10452312B2 (en) * | 2016-12-30 | 2019-10-22 | Intel Corporation | Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory |
US10725988B2 (en) * | 2017-02-09 | 2020-07-28 | Micron Technology, Inc. | KVS tree |
US10706105B2 (en) | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree garbage metrics |
US10706106B2 (en) | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree modifications for maintenance operations |
US10719495B2 (en) | 2017-02-09 | 2020-07-21 | Micron Technology, Inc. | Stream selection for multi-stream storage devices |
US10783186B2 (en) | 2017-08-31 | 2020-09-22 | Micron Technology, Inc. | Heterogenous key-value sets in tree database |
US10915546B2 (en) | 2018-10-10 | 2021-02-09 | Micron Technology, Inc. | Counter-based compaction of key-value store tree data block |
US11100071B2 (en) | 2018-10-10 | 2021-08-24 | Micron Technology, Inc. | Key-value store tree data block spill with compaction |
US10852978B2 (en) | 2018-12-14 | 2020-12-01 | Micron Technology, Inc. | Key-value store using journaling with selective data storage format |
US11048755B2 (en) | 2018-12-14 | 2021-06-29 | Micron Technology, Inc. | Key-value store tree with selective use of key portion |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
KR102128037B1 (ko) * | 2019-03-18 | 2020-06-29 | 주식회사 로그프레소 | 다계층 메모리 구조에 최적화된 데이터 인덱스 방법 및 그 방법에 의해 인덱스된 데이터의 검색 방법 |
US11487731B2 (en) * | 2019-07-24 | 2022-11-01 | Vmware, Inc. | Read iterator for pre-fetching nodes of a B-tree into memory |
CN113297432B (zh) * | 2021-06-01 | 2023-11-07 | 阿里巴巴新加坡控股有限公司 | 用于分区拆分与合并的方法、处理器可读介质和系统 |
US11954345B2 (en) | 2021-12-03 | 2024-04-09 | Samsung Electronics Co., Ltd. | Two-level indexing for key-value persistent storage device |
CN114296655B (zh) * | 2021-12-30 | 2024-02-02 | 杭州海康威视系统技术有限公司 | 一种针对分布式存储系统的数据存储方法及装置 |
CN114791913B (zh) * | 2022-04-26 | 2024-09-13 | 北京人大金仓信息技术股份有限公司 | 数据库的共享内存缓冲池处理方法、存储介质与设备 |
CN115017842B (zh) * | 2022-08-09 | 2022-12-02 | 北京星途探索科技有限公司 | 气动数据的插值方法及装置、电子设备、存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4611272A (en) * | 1983-02-03 | 1986-09-09 | International Business Machines Corporation | Key-accessed file organization |
US4677550A (en) * | 1983-09-30 | 1987-06-30 | Amalgamated Software Of North America, Inc. | Method of compacting and searching a data index |
US4945475A (en) * | 1986-10-30 | 1990-07-31 | Apple Computer, Inc. | Hierarchical file system to provide cataloging and retrieval of data |
JPH0198020A (ja) * | 1987-10-09 | 1989-04-17 | Nec Corp | 索引管理方式 |
JPH01282635A (ja) * | 1988-05-10 | 1989-11-14 | Nec Corp | 索引保守方式 |
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 |
IT1229678B (it) * | 1989-04-27 | 1991-09-06 | Sgs Thomson Microelectronics | Generatore di corrente variabile indipendente dalla temperatura. |
-
1991
- 1991-06-27 US US07/722,007 patent/US5204958A/en not_active Expired - Lifetime
-
1992
- 1992-06-25 JP JP4167824A patent/JP2515950B2/ja not_active Expired - Lifetime
- 1992-06-26 EP EP19920110758 patent/EP0522363A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH0628231A (ja) | 1994-02-04 |
EP0522363A3 (en) | 1993-12-01 |
EP0522363A2 (en) | 1993-01-13 |
US5204958A (en) | 1993-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2515950B2 (ja) | コンピュ―タシステム内にエントリするデ―タベ―スを記憶し且つ維持する方法及びデ―タベ―ス管理システム | |
CA2941074C (en) | Managing storage of individually accessible data units | |
JP5922716B2 (ja) | 個別にアクセス可能なデータユニットの記憶の取り扱い方法 | |
US8667274B2 (en) | System and method for WORM data storage | |
US5640561A (en) | Computerized method and system for replicating a database using log records | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US6772177B2 (en) | System and method for parallelizing file archival and retrieval | |
CN103714090B (zh) | 多索引数据库事务处理方法及数据库 | |
EP0351387A2 (en) | Minimizing locking and reading in a segmented storage space | |
US6654868B2 (en) | Information storage and retrieval system | |
US20030135783A1 (en) | Data management appliance | |
WO2004081711A2 (en) | System and method for storing and accessing data in an interlocking trees datastore | |
KR100577518B1 (ko) | 어드레스인덱스를 이용한 파일 백업 및 검색 방법 | |
Verma et al. | A new approach to version management for databases | |
JPH0877205A (ja) | リレーショナルデータベース管理システム | |
JPH1196058A (ja) | T木インデックス構築方法及び装置及びt木インデックス構築プログラムを格納した記憶媒体 | |
Gorman | Managing the Very Large Database |