JPH07129450A - 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム - Google Patents
区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステムInfo
- Publication number
- JPH07129450A JPH07129450A JP5316885A JP31688593A JPH07129450A JP H07129450 A JPH07129450 A JP H07129450A JP 5316885 A JP5316885 A JP 5316885A JP 31688593 A JP31688593 A JP 31688593A JP H07129450 A JPH07129450 A JP H07129450A
- Authority
- JP
- Japan
- Prior art keywords
- index
- entry
- key value
- partition
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000003780 insertion Methods 0.000 claims abstract description 23
- 230000037431 insertion Effects 0.000 claims abstract description 23
- 238000012217 deletion Methods 0.000 claims abstract description 15
- 230000037430 deletion Effects 0.000 claims abstract description 15
- 238000005192 partition Methods 0.000 claims description 137
- 230000008569 process Effects 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 15
- 238000003860 storage Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 12
- 238000011156 evaluation Methods 0.000 description 12
- 238000001824 photoionisation detection Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008450 motivation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 241001161843 Chandra Species 0.000 description 1
- 235000007129 Cuminum cyminum Nutrition 0.000 description 1
- 244000304337 Cuminum cyminum Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- OYFJQPXVCSSHAI-QFPUQLAESA-N enalapril maleate Chemical compound OC(=O)\C=C/C(O)=O.C([C@@H](C(=O)OCC)N[C@@H](C)C(=O)N1[C@@H](CCC1)C(O)=O)CC1=CC=CC=C1 OYFJQPXVCSSHAI-QFPUQLAESA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 並列又は分散データベースシステム内の区分
されたテーブルの多層索引方法を提供する。 【構成】 テーブルの区画毎に局所索引が生成・維持さ
れ且つ概略大域索引が生成・維持される。概略大域索引
は区分識別子により索引付き区画を識別し且つ個々の索
引キー値をそれらの目標区画と関連づけ、索引キーの高
度の区分選択探索属性を有するアクセス要求が容易に目
標区画に指向され処理できるようにする。索引エントリ
の挿入及び削除を処理し、且つ異なるトランザクション
による同時索引アクセス中の局所索引エントリと概略大
域索引エントリの間の一貫性を保証する索引維持ロッキ
ングプロトコルも開示される。ロッキングプロトコルは
挿入又は削除されたキーを含む場合に且つ挿入又は削除
されたキーに続くキー及びたぶんそれらに先行するキー
に対してのみロッキングを最小化し、同時に起きる読取
り者、挿入者及び削除者の動作の間の高い同時性を可能
にする。
されたテーブルの多層索引方法を提供する。 【構成】 テーブルの区画毎に局所索引が生成・維持さ
れ且つ概略大域索引が生成・維持される。概略大域索引
は区分識別子により索引付き区画を識別し且つ個々の索
引キー値をそれらの目標区画と関連づけ、索引キーの高
度の区分選択探索属性を有するアクセス要求が容易に目
標区画に指向され処理できるようにする。索引エントリ
の挿入及び削除を処理し、且つ異なるトランザクション
による同時索引アクセス中の局所索引エントリと概略大
域索引エントリの間の一貫性を保証する索引維持ロッキ
ングプロトコルも開示される。ロッキングプロトコルは
挿入又は削除されたキーを含む場合に且つ挿入又は削除
されたキーに続くキー及びたぶんそれらに先行するキー
に対してのみロッキングを最小化し、同時に起きる読取
り者、挿入者及び削除者の動作の間の高い同時性を可能
にする。
Description
【0001】
【産業上の利用分野】本発明は一般にデータベース管理
システムにおける索引機構、特に区分データの多層索引
方法に関する。
システムにおける索引機構、特に区分データの多層索引
方法に関する。
【0002】
【従来の技術】データベースシステムに頻繁に記憶させ
たい情報量が増大するにつれて、データ即ち完全なレコ
ードが2以上のデータベース記憶サイトにしばしば記憶
される。データベースプログラムの1つの重要な側面は
個々のデータベースにあるレコードに迅速かつ効率的に
アクセスできる能力である。データの配置及び検索を適
切に扱うために、データ処理システムはしばしばデータ
ベース管理プログラムを含む。これらのプログラムは多
くのノード又はサイトに記憶された複数のレコードから
成ることがある各データベース情報に対するアクセスを
容易にする。リレーショナルデータベース管理プログラ
ムはこの能力を提供する。
たい情報量が増大するにつれて、データ即ち完全なレコ
ードが2以上のデータベース記憶サイトにしばしば記憶
される。データベースプログラムの1つの重要な側面は
個々のデータベースにあるレコードに迅速かつ効率的に
アクセスできる能力である。データの配置及び検索を適
切に扱うために、データ処理システムはしばしばデータ
ベース管理プログラムを含む。これらのプログラムは多
くのノード又はサイトに記憶された複数のレコードから
成ることがある各データベース情報に対するアクセスを
容易にする。リレーショナルデータベース管理プログラ
ムはこの能力を提供する。
【0003】1つの一般的なデータベースの構成はテー
ブル毎に行及び列の情報を含む種々のテーブルから成る
構成である。テーブル内の1つの行を横切って記憶され
た情報は1つのレコードを構成し、該レコードのフィー
ルドは該テーブル内の列を構成する。すなわち、テーブ
ルは個々のレコードの行及びレコードフィールドの列を
含む。1つのレコードは2以上のフィールドの情報を含
みうるので、フィールドの情報はデータベーステーブル
の列を構成する。技術的には他のデータベース構成も存
在する。データベース管理プログラムは複数のユーザを
支援し、各ユーザが同時に同じテーブルをアクセスする
ことを可能にする。
ブル毎に行及び列の情報を含む種々のテーブルから成る
構成である。テーブル内の1つの行を横切って記憶され
た情報は1つのレコードを構成し、該レコードのフィー
ルドは該テーブル内の列を構成する。すなわち、テーブ
ルは個々のレコードの行及びレコードフィールドの列を
含む。1つのレコードは2以上のフィールドの情報を含
みうるので、フィールドの情報はデータベーステーブル
の列を構成する。技術的には他のデータベース構成も存
在する。データベース管理プログラムは複数のユーザを
支援し、各ユーザが同時に同じテーブルをアクセスする
ことを可能にする。
【0004】関連するテーブルのレコードの迅速且つ効
率的なアクセスを可能にするために一般にデータベース
管理プログラムにより索引ファイルが用いられる。一般
にこれらの索引ファイルはB木構造で構成される。B木
構造は多くのレベルのノードが分岐する根ノードを含
む。これらのノードに含まれた情報は、木の次のレベル
にあるノードを指すポインタを含むか、又はデータベー
ス内に記憶された2以上のレコードを指すポインタを含
むことができる。これらのポインタはデータベース内に
記憶されたレコードを参照することができる追加のキー
レコード情報を含む。レコードキーは木の種々の分岐点
にノードを通じて配列された形式で記憶される。例え
ば、従業員名のアルファベット順リストの索引木が存在
しうる。根ノードは該木内の次のレベルのノードにより
間接又は直接に参照できる個々のレコード情報に関連す
る参照キーデータを含む。参照キーは索引フィールドに
関する情報、例えば従業員名のアルファベットのスペリ
ングを含む。よって、根ノード内の配列されたキーはノ
ードの連続する次のレベルを指す。すなわち、連続する
次のノードはA、B及びCで始まる全ての従業員名を間
接又は直接に参照する。連続する最初のノードと並行す
る、連続する次のノードは姓が文字D〜Mで始まる従業
員レコードを含むことがある。このレベルの連続する最
後のノードはN〜Zで始まる姓を有する従業員のレコー
ドを参照する。索引木による探索が開始されると、最後
には下部のノードに達する。下部のノードの内容は記憶
装置内の個々のレコードを指すレコードキー情報を含む
か又は木のなかの分岐ノードの1つを再指定できる。
率的なアクセスを可能にするために一般にデータベース
管理プログラムにより索引ファイルが用いられる。一般
にこれらの索引ファイルはB木構造で構成される。B木
構造は多くのレベルのノードが分岐する根ノードを含
む。これらのノードに含まれた情報は、木の次のレベル
にあるノードを指すポインタを含むか、又はデータベー
ス内に記憶された2以上のレコードを指すポインタを含
むことができる。これらのポインタはデータベース内に
記憶されたレコードを参照することができる追加のキー
レコード情報を含む。レコードキーは木の種々の分岐点
にノードを通じて配列された形式で記憶される。例え
ば、従業員名のアルファベット順リストの索引木が存在
しうる。根ノードは該木内の次のレベルのノードにより
間接又は直接に参照できる個々のレコード情報に関連す
る参照キーデータを含む。参照キーは索引フィールドに
関する情報、例えば従業員名のアルファベットのスペリ
ングを含む。よって、根ノード内の配列されたキーはノ
ードの連続する次のレベルを指す。すなわち、連続する
次のノードはA、B及びCで始まる全ての従業員名を間
接又は直接に参照する。連続する最初のノードと並行す
る、連続する次のノードは姓が文字D〜Mで始まる従業
員レコードを含むことがある。このレベルの連続する最
後のノードはN〜Zで始まる姓を有する従業員のレコー
ドを参照する。索引木による探索が開始されると、最後
には下部のノードに達する。下部のノードの内容は記憶
装置内の個々のレコードを指すレコードキー情報を含む
か又は木のなかの分岐ノードの1つを再指定できる。
【0005】並列データベース又は分散データベースシ
ステムでは、複数の記憶サイトにわたって区分されたテ
ーブルをアクセスする問題はより複雑になる。1つのサ
イトは少なくとも1つの区分テーブルを記憶できる。各
区分テーブルは一般に物理記憶装置のグループと関連づ
けられる。一般に区分(又は区画)はテーブルのレコー
ドの水平部分である。データベースオブジェクトを水平
に区分する動機はユーザ照会の並列処理を容易にし又は
それ自身の局所的に記憶されたレコードの効率的なアク
セスを各ノードが保持しうるように複数の記憶サイトの
間で非常に大きいテーブルの情報、例えば大会社の全従
業員の情報を区分することかも知れない。別の動機は物
理的な記憶容量のより良好な管理を容易にするように複
数の管理サイトにわたる大きなデータベーステーブルを
区分することかも知れない。
ステムでは、複数の記憶サイトにわたって区分されたテ
ーブルをアクセスする問題はより複雑になる。1つのサ
イトは少なくとも1つの区分テーブルを記憶できる。各
区分テーブルは一般に物理記憶装置のグループと関連づ
けられる。一般に区分(又は区画)はテーブルのレコー
ドの水平部分である。データベースオブジェクトを水平
に区分する動機はユーザ照会の並列処理を容易にし又は
それ自身の局所的に記憶されたレコードの効率的なアク
セスを各ノードが保持しうるように複数の記憶サイトの
間で非常に大きいテーブルの情報、例えば大会社の全従
業員の情報を区分することかも知れない。別の動機は物
理的な記憶容量のより良好な管理を容易にするように複
数の管理サイトにわたる大きなデータベーステーブルを
区分することかも知れない。
【0006】データベースオブジェクトはそのレコード
及びフィールドの内容により水平又は垂直に区分され
る。水平区分はテーブルの一定の行を1つの記憶サイト
に記憶するが該テーブルの他の行は別の記憶サイトに記
憶することを意味する。垂直区分はテーブルの一定の列
即ちフィールドを1つの記憶サイトに記憶するが他のフ
ィールドは別のサイトに記憶することを意味する。各区
分に別々の索引木を構築できる。1つの木は従業員A〜
Jの氏名及び住所を含むが別の木は従業員K〜Lの氏名
及び住所を含むことがある。以下、同様である。このよ
うに、記憶された情報のタイプ及びアプリケーションに
より、極めて大量のレコード情報をテーブル区分方法に
より複数の記憶サイトにわたり記憶することができる。
及びフィールドの内容により水平又は垂直に区分され
る。水平区分はテーブルの一定の行を1つの記憶サイト
に記憶するが該テーブルの他の行は別の記憶サイトに記
憶することを意味する。垂直区分はテーブルの一定の列
即ちフィールドを1つの記憶サイトに記憶するが他のフ
ィールドは別のサイトに記憶することを意味する。各区
分に別々の索引木を構築できる。1つの木は従業員A〜
Jの氏名及び住所を含むが別の木は従業員K〜Lの氏名
及び住所を含むことがある。以下、同様である。このよ
うに、記憶された情報のタイプ及びアプリケーションに
より、極めて大量のレコード情報をテーブル区分方法に
より複数の記憶サイトにわたり記憶することができる。
【0007】複数の区分又はノードに分散されているデ
ータ情報を管理するためにリレーショナルデータベース
管理システム(RDBMS) を用いることができる。データベ
ーステーブルをそのレコードの内容で区分する場合、特
定のテーブルレコードの少なくとも1つのフィールドを
当該個々のレコードの区分キーとして指定できる。ある
場合には、当該従業員のレコードの区分キーとして従業
員一連番号を指定し一定の値の範囲内の一連番号を含む
レコードのセットを各区分に記憶することがある。異な
る区分基準がそれらのレコードをそれらの区分キー値
(従業員の仕事場所のようなレコードに含まれた他の情
報の1つでもよい)により直ちにグループ化し、仕事場
フィールドの値でハッシュすることにより区分を決定す
ることがある。他方、従業員のレコードに含まれた情報
とは無関係なテーブル間の関係、というよりはむしろ挿
入記憶サイト又はノードのような内容に基づかない基準
を用いて、データベーステーブルが区分されることもあ
る。
ータ情報を管理するためにリレーショナルデータベース
管理システム(RDBMS) を用いることができる。データベ
ーステーブルをそのレコードの内容で区分する場合、特
定のテーブルレコードの少なくとも1つのフィールドを
当該個々のレコードの区分キーとして指定できる。ある
場合には、当該従業員のレコードの区分キーとして従業
員一連番号を指定し一定の値の範囲内の一連番号を含む
レコードのセットを各区分に記憶することがある。異な
る区分基準がそれらのレコードをそれらの区分キー値
(従業員の仕事場所のようなレコードに含まれた他の情
報の1つでもよい)により直ちにグループ化し、仕事場
フィールドの値でハッシュすることにより区分を決定す
ることがある。他方、従業員のレコードに含まれた情報
とは無関係なテーブル間の関係、というよりはむしろ挿
入記憶サイト又はノードのような内容に基づかない基準
を用いて、データベーステーブルが区分されることもあ
る。
【0008】従来技術の1つの問題として、関連する探
索の効率的な支援に関するものがある。関連探索の効率
性を高めるために、探索フィールド又は記憶されたデー
タのフィールドにしばしば索引が維持される。
索の効率的な支援に関するものがある。関連探索の効率
性を高めるために、探索フィールド又は記憶されたデー
タのフィールドにしばしば索引が維持される。
【0009】一般に索引は別個のテーブル、即ち(索引
キー、レコードポインタの)形式を有するエントリのリ
ストを含む。この索引テーブルは一般にレコード情報の
ある特定の部分かも知れない索引キー値により配置さ
れ、そして一般に前述のようなB木構造に構築される。
索引キー値は従業員の一連番号又はある他のレコード情
報かも知れない。索引キーエントリの値による索引テー
ブルの配置は候補レコードのリストを制限し探索を容易
にするので、ユーザが必要とするレコードのアクセス時
間を短縮する。レコードポインタはもう1つの索引テー
ブルエントリであり、レコード識別子(RID) と呼ばれる
システム割当てトークンのような固定長の1つの情報か
も知れない。あるデータベース構成では、レコードポイ
ンタをユーザが与えることがある。いずれの場合も、レ
コードポインタはデータレコードを一意的に識別する。
キー、レコードポインタの)形式を有するエントリのリ
ストを含む。この索引テーブルは一般にレコード情報の
ある特定の部分かも知れない索引キー値により配置さ
れ、そして一般に前述のようなB木構造に構築される。
索引キー値は従業員の一連番号又はある他のレコード情
報かも知れない。索引キーエントリの値による索引テー
ブルの配置は候補レコードのリストを制限し探索を容易
にするので、ユーザが必要とするレコードのアクセス時
間を短縮する。レコードポインタはもう1つの索引テー
ブルエントリであり、レコード識別子(RID) と呼ばれる
システム割当てトークンのような固定長の1つの情報か
も知れない。あるデータベース構成では、レコードポイ
ンタをユーザが与えることがある。いずれの場合も、レ
コードポインタはデータレコードを一意的に識別する。
【0010】区分データの場合、個々のテーブル区分毎
に別個に局所索引と呼ばれる索引が維持されることがあ
る。複数の区分にあるデータを参照する索引が1つも維
持されない場合、これは関連アクセス効率問題に対する
局所索引単独解法として知られている。局所索引単独解
法は区分されたデータの索引機能を提供する簡単な方法
である。この解法では、局所索引は前述の索引テーブル
に類似のテーブル又はリストでもよい。
に別個に局所索引と呼ばれる索引が維持されることがあ
る。複数の区分にあるデータを参照する索引が1つも維
持されない場合、これは関連アクセス効率問題に対する
局所索引単独解法として知られている。局所索引単独解
法は区分されたデータの索引機能を提供する簡単な方法
である。この解法では、局所索引は前述の索引テーブル
に類似のテーブル又はリストでもよい。
【0011】局所索引単独解法の簡明さは非常に大きい
データベースで使用禁止されている厳しい性能ペナルテ
ィが付随している。各区分サイトには局所索引のみが存
在するから、大抵のアクセス要求は処理のため全ての区
分に同報通信される。各ノードはそのテーブルを検査し
所望のレコード情報が当該ノードに存在するかどうかを
調べなければならない。局所索引単独解法も大部分のア
クセス要求を正しく評価するためにテーブルの全区分が
使用できることを必要とする。複数のノードを有するシ
ステムにわたり、貴重な処理資源が無用な活動により消
費されることがある。
データベースで使用禁止されている厳しい性能ペナルテ
ィが付随している。各区分サイトには局所索引のみが存
在するから、大抵のアクセス要求は処理のため全ての区
分に同報通信される。各ノードはそのテーブルを検査し
所望のレコード情報が当該ノードに存在するかどうかを
調べなければならない。局所索引単独解法も大部分のア
クセス要求を正しく評価するためにテーブルの全区分が
使用できることを必要とする。複数のノードを有するシ
ステムにわたり、貴重な処理資源が無用な活動により消
費されることがある。
【0012】処理資源を消費するのはユーザだけではな
い。各サイトに送られたアクセス要求は必ずしもユーザ
が明白に指定したものだけとは限らない。高いレベルの
ユーザ要求を処理し評価する際にデータベース管理シス
テムにより生成された低いレベルの要求があるかも知れ
ない。複数の記憶サイトにわたる参照の完全性を維持す
る一定のデータベース拘束を強制するシステム要求もあ
るかも知れない。加えて、アクセス要求はキーの一意性
を強制する特定のキー値の存在の検査のような全オブジ
ェクトに関する一定の情報を得る必要があるかも知れな
い。更に、次の命令セットに着手する前に全ての局所ノ
ードがそれらのそれぞれの動作を終了するまで待つ時間
のために照会応答時間が延長される。複数の区画にわた
る多くの情報がアクセスされる照会時間の延長はかなり
の性能低下をもたらす。性能の影響はテーブルを構成す
る区画の数とともに急速に増すことがある。その結果、
データベースワークロードがかなり増加するのでシステ
ム効率スループットが低下し、このようなシステムはユ
ーザには動作が鈍いものに見える。
い。各サイトに送られたアクセス要求は必ずしもユーザ
が明白に指定したものだけとは限らない。高いレベルの
ユーザ要求を処理し評価する際にデータベース管理シス
テムにより生成された低いレベルの要求があるかも知れ
ない。複数の記憶サイトにわたる参照の完全性を維持す
る一定のデータベース拘束を強制するシステム要求もあ
るかも知れない。加えて、アクセス要求はキーの一意性
を強制する特定のキー値の存在の検査のような全オブジ
ェクトに関する一定の情報を得る必要があるかも知れな
い。更に、次の命令セットに着手する前に全ての局所ノ
ードがそれらのそれぞれの動作を終了するまで待つ時間
のために照会応答時間が延長される。複数の区画にわた
る多くの情報がアクセスされる照会時間の延長はかなり
の性能低下をもたらす。性能の影響はテーブルを構成す
る区画の数とともに急速に増すことがある。その結果、
データベースワークロードがかなり増加するのでシステ
ム効率スループットが低下し、このようなシステムはユ
ーザには動作が鈍いものに見える。
【0013】無用な活動のために、局所索引単独解法は
関連探索には評価できる解法ではない。すなわち、テー
ブルの区画の数が急激に増加し始めると局所索引単独解
法の良好な実行は続かない。
関連探索には評価できる解法ではない。すなわち、テー
ブルの区画の数が急激に増加し始めると局所索引単独解
法の良好な実行は続かない。
【0014】区分されたデータに更に効率的な索引支援
を提供するために、索引されるテーブルの全ての区画を
カバーする索引である完全大域索引が利用できる。完全
大域索引はテーブル内の関連するオブジェクト毎に少な
くとも1つのエントリを含むので、全テーブル内の関連
する全てのオブジェクトと1対1の関係を有する。大域
索引の1つの方法は一次キー方法と呼ばれる。ここで、
大域索引は形式 (索引キー、一次キー) を有するエント
リのリストとして維持され、一次キーは区分キーであ
る。この場合、各データレコードはユーザ提供の一次キ
ー値により全ての区画にわたり一意的に識別される。目
標区画の区分識別子(PID) は区分基準に関連した一次キ
ー値を用いて決定できる。レコードは一次キーのみを用
いてそれらを検索できるように記憶されなければならな
いので、これは一次キーに集合する局所索引が維持さ
れ、一次キーを集合キー値とするデータベース設計につ
ながる。1つの方法は索引の木にレコード自身を記憶
し、できればレコードをアクセスする余分な入出力動作
を避けることである。
を提供するために、索引されるテーブルの全ての区画を
カバーする索引である完全大域索引が利用できる。完全
大域索引はテーブル内の関連するオブジェクト毎に少な
くとも1つのエントリを含むので、全テーブル内の関連
する全てのオブジェクトと1対1の関係を有する。大域
索引の1つの方法は一次キー方法と呼ばれる。ここで、
大域索引は形式 (索引キー、一次キー) を有するエント
リのリストとして維持され、一次キーは区分キーであ
る。この場合、各データレコードはユーザ提供の一次キ
ー値により全ての区画にわたり一意的に識別される。目
標区画の区分識別子(PID) は区分基準に関連した一次キ
ー値を用いて決定できる。レコードは一次キーのみを用
いてそれらを検索できるように記憶されなければならな
いので、これは一次キーに集合する局所索引が維持さ
れ、一次キーを集合キー値とするデータベース設計につ
ながる。1つの方法は索引の木にレコード自身を記憶
し、できればレコードをアクセスする余分な入出力動作
を避けることである。
【0015】一次キー方法の代替方法として、大域索引
エントリが (索引キー、区分キー)の形式をとる区分キ
ー方法がある。区分キーは一次キーではない。さもなけ
れば、この方法は前述の一次キー方法と同じである。区
分キーは一意的でなければならない。さもなければ、正
しいデータ検索を保証するために、索引キーに付加され
た選択属性が、検索されたレコードに再付加されなけれ
ばならない。これは区分キーに集合する局所索引が維持
され且つ区分キー値を集合キー値とするデータベース設
計にしばしばつながる。大域索引は関連する区画にのみ
アクセス要求を再指向することを可能にし且つ大域的に
使用できる索引キー情報を迅速に供給することによりユ
ーザの照会を評価する効率を改善する。しかしながら、
大域索引は、特に各区画が別個のデータベース記憶サイ
トに記憶される構成で、索引テーブルとデータレコード
の間の一貫性を保証するデータベース管理システムの費
用である索引管理費用を増す欠点を有する。
エントリが (索引キー、区分キー)の形式をとる区分キ
ー方法がある。区分キーは一次キーではない。さもなけ
れば、この方法は前述の一次キー方法と同じである。区
分キーは一意的でなければならない。さもなければ、正
しいデータ検索を保証するために、索引キーに付加され
た選択属性が、検索されたレコードに再付加されなけれ
ばならない。これは区分キーに集合する局所索引が維持
され且つ区分キー値を集合キー値とするデータベース設
計にしばしばつながる。大域索引は関連する区画にのみ
アクセス要求を再指向することを可能にし且つ大域的に
使用できる索引キー情報を迅速に供給することによりユ
ーザの照会を評価する効率を改善する。しかしながら、
大域索引は、特に各区画が別個のデータベース記憶サイ
トに記憶される構成で、索引テーブルとデータレコード
の間の一貫性を保証するデータベース管理システムの費
用である索引管理費用を増す欠点を有する。
【0016】本発明の背景の理解に適切と思われる他の
論文として下記のものがある。
論文として下記のものがある。
【0017】Levine et al., "Method For Concurrent
Record Access, Inspection, Deletion and Alteration
Using An Index Tree", US Patent No. 4,914,569, (A
pril 3, 1990): 索引木を通じたキーレコードの少なく
とも一部分により、レコードキーのグループ内のキーレ
コードデータを取出し、異なるトランザクションにより
レコードキーの同時アクセスを可能にする方法が開示さ
れている。
Record Access, Inspection, Deletion and Alteration
Using An Index Tree", US Patent No. 4,914,569, (A
pril 3, 1990): 索引木を通じたキーレコードの少なく
とも一部分により、レコードキーのグループ内のキーレ
コードデータを取出し、異なるトランザクションにより
レコードキーの同時アクセスを可能にする方法が開示さ
れている。
【0018】Mohan, "ARIES/KVL: A Key-Value Locking
Method for Concurrency Control ofMultiaction Tran
sactions Operating on B-Tree Indexes", Proceedings
of VLDB, August 1990: 索引キー値ロッキングと次の
キーロッキングを介したロック状態反復とが論述されて
いる。
Method for Concurrency Control ofMultiaction Tran
sactions Operating on B-Tree Indexes", Proceedings
of VLDB, August 1990: 索引キー値ロッキングと次の
キーロッキングを介したロック状態反復とが論述されて
いる。
【0019】Mohan and levine, "ARIES/IM: An Effici
ent and High Concurrent Index Management Method Us
ing Write-Ahead Logging", Proceedings SIGMOD Confe
rence,June 1992: コミットされない最初のインスタン
スの索引エントリロッキング及び左側伝播が論述されて
いる。
ent and High Concurrent Index Management Method Us
ing Write-Ahead Logging", Proceedings SIGMOD Confe
rence,June 1992: コミットされない最初のインスタン
スの索引エントリロッキング及び左側伝播が論述されて
いる。
【0020】Mohan, "COMMIT_LSN: A Novel and Simple
Method for Reducing Locking and Latching in Trans
action Processing Systems", Proceedings of VLDB, A
ugust1990: COMMIT_LSNの着想が論述されている。
Method for Reducing Locking and Latching in Trans
action Processing Systems", Proceedings of VLDB, A
ugust1990: COMMIT_LSNの着想が論述されている。
【0021】Mohan, Haderle, Wang, and Cheng, "Sing
le Table Access Using Multiple Indexes: Optimizati
on, Execution and Concurrency Control Techniques",
Proceedings 2nd International Conference on Exten
ding Database Technology, Italy, March 1990: 索引
論理積/論理和及び属性の再評価が論述されている。
le Table Access Using Multiple Indexes: Optimizati
on, Execution and Concurrency Control Techniques",
Proceedings 2nd International Conference on Exten
ding Database Technology, Italy, March 1990: 索引
論理積/論理和及び属性の再評価が論述されている。
【0022】
【発明が解決しようとする課題】本発明の第1の目的
は、複雑な照会評価及び索引維持を高めるために局所索
引エントリが同じノードにある対応する区画と同じ場所
に配置された場合に各区画の概略大域索引及び局所索引
を有する区分データの多層索引方法を提供することにあ
る。
は、複雑な照会評価及び索引維持を高めるために局所索
引エントリが同じノードにある対応する区画と同じ場所
に配置された場合に各区画の概略大域索引及び局所索引
を有する区分データの多層索引方法を提供することにあ
る。
【0023】本発明の第2の目的は、異なるトランザク
ションによる同時索引アクセスが最大化されるように局
所索引と概略大域索引の間の一貫性を保証する索引管理
の方法を提供することにある。
ションによる同時索引アクセスが最大化されるように局
所索引と概略大域索引の間の一貫性を保証する索引管理
の方法を提供することにある。
【0024】本発明の第3の目的は、挿入又は削除され
たキー及びたぶん前記挿入又は削除されたキーに先行す
るキーの場合にのみロッキングを最小化する一意的及び
非一意的の局所索引方式のロッキングプロトコルを有す
る索引管理方法を提供し、同時に存在する読取装置、挿
入装置及び削除装置の間に非常に高い同時性を可能にす
ることにある。
たキー及びたぶん前記挿入又は削除されたキーに先行す
るキーの場合にのみロッキングを最小化する一意的及び
非一意的の局所索引方式のロッキングプロトコルを有す
る索引管理方法を提供し、同時に存在する読取装置、挿
入装置及び削除装置の間に非常に高い同時性を可能にす
ることにある。
【0025】本発明の第4の目的は、索引キーの高度の
区分選択探索属性を有するアクセス要求を迅速且つ容易
に目標区画に指向し処理できるように、個々の索引キー
値をそれらの目標区画と関連づける概略大域索引を提供
することにある。
区分選択探索属性を有するアクセス要求を迅速且つ容易
に目標区画に指向し処理できるように、個々の索引キー
値をそれらの目標区画と関連づける概略大域索引を提供
することにある。
【0026】
【課題を解決するための手段】本発明の実施例に従って
前記目的を達成するために、区分データの分散データベ
ース多層索引方式はテーブルの区画毎に局所索引を生成
・維持し、更に概略大域索引が任意に生成・維持され
る。概略大域索引は区分識別子(PID) により索引区画を
識別する。索引維持アルゴリズムは、索引の挿入及び削
除を簡単かつ効率的に扱うロッキングプロトコルによ
り、異なるトランザクションによる同時索引アクセス中
の局所索引エントリ及び概略大域索引エントリの間の一
貫性を保証する。実際に概略大域索引更新動作が必要か
どうかを正しく判定するために対応する局所索引動作の
実行に必要な全てのロックが終了した後にのみ、概略大
域索引で実行する必要がある挿入及び削除動作を開始す
ることができる。
前記目的を達成するために、区分データの分散データベ
ース多層索引方式はテーブルの区画毎に局所索引を生成
・維持し、更に概略大域索引が任意に生成・維持され
る。概略大域索引は区分識別子(PID) により索引区画を
識別する。索引維持アルゴリズムは、索引の挿入及び削
除を簡単かつ効率的に扱うロッキングプロトコルによ
り、異なるトランザクションによる同時索引アクセス中
の局所索引エントリ及び概略大域索引エントリの間の一
貫性を保証する。実際に概略大域索引更新動作が必要か
どうかを正しく判定するために対応する局所索引動作の
実行に必要な全てのロックが終了した後にのみ、概略大
域索引で実行する必要がある挿入及び削除動作を開始す
ることができる。
【0027】本発明により提供される区分データの多層
索引の第1の利点は、各区画をそれ自身のアクセス方法
を含む別個のデータモジュールとしてパッケージできる
ように個々の区画の局所索引を維持することにより除去
/移動可能なデータベース装置を提供し、そして、デー
タベースネットワーク故障の場合にも局所索引が使用で
きるのでデータベースのオブジェクト区画が局所照会の
評価にも使用でき、全局所データの使用可能度を増すこ
とである。
索引の第1の利点は、各区画をそれ自身のアクセス方法
を含む別個のデータモジュールとしてパッケージできる
ように個々の区画の局所索引を維持することにより除去
/移動可能なデータベース装置を提供し、そして、デー
タベースネットワーク故障の場合にも局所索引が使用で
きるのでデータベースのオブジェクト区画が局所照会の
評価にも使用でき、全局所データの使用可能度を増すこ
とである。
【0028】本発明により提供される区分データの多層
索引の第2の利点は、データベースシステムでレコード
の全ての索引エントリをそのレコードと同じノードに保
持することによりデータ集中検索を行うのでプロセッサ
間通信を少なくすると同時にデータページの非同期前取
出し及び局所索引動作を可能にし、局所ノードがより確
実に処理を実行し、並行動作を最大化するとともにノー
ド不均一及び自主性に適応し促進することである。
索引の第2の利点は、データベースシステムでレコード
の全ての索引エントリをそのレコードと同じノードに保
持することによりデータ集中検索を行うのでプロセッサ
間通信を少なくすると同時にデータページの非同期前取
出し及び局所索引動作を可能にし、局所ノードがより確
実に処理を実行し、並行動作を最大化するとともにノー
ド不均一及び自主性に適応し促進することである。
【0029】本発明の第3の利点は、もし特定の索引キ
ーが区分選択でなければ、概略大域索引なしに局所索引
のみを用いるオプションをデータベース設計者に提供す
るので当該特定のキーに関する情報の維持が不要とな
り、データベース設計の柔軟性を高め且つデータベース
最適化の機会を増すことである。
ーが区分選択でなければ、概略大域索引なしに局所索引
のみを用いるオプションをデータベース設計者に提供す
るので当該特定のキーに関する情報の維持が不要とな
り、データベース設計の柔軟性を高め且つデータベース
最適化の機会を増すことである。
【0030】本発明により提供される区分データの多層
索引の第4の利点は、複数のアクセス方法を有するデー
タベースシステムに転送できるように、データが区分さ
れなかったかのように各区画内の各要求を迅速に評価す
ることである。
索引の第4の利点は、複数のアクセス方法を有するデー
タベースシステムに転送できるように、データが区分さ
れなかったかのように各区画内の各要求を迅速に評価す
ることである。
【0031】本発明により提供される区分データの多層
索引の第5の利点は、種々のデータ区分方式と互換性が
あり、種々の非キー反転局所アクセス方法、例えばハッ
シング、R木及び符号に容易に適応するので、厄介な制
約を付加されずに使用可能なアクセス方法のなかから照
会を処理する方法を最適化機能が自由に選択し、キーの
一意性を検査する大域索引単独アクセス、及び複数の大
域索引から得られたPID を組合わせる大域索引論理積/
論理和動作を含むように容易に拡張され、そして同じ場
所に配置されたオブジェクトについては、局所索引を使
用可能に維持し協同動作を容易にすることである。
索引の第5の利点は、種々のデータ区分方式と互換性が
あり、種々の非キー反転局所アクセス方法、例えばハッ
シング、R木及び符号に容易に適応するので、厄介な制
約を付加されずに使用可能なアクセス方法のなかから照
会を処理する方法を最適化機能が自由に選択し、キーの
一意性を検査する大域索引単独アクセス、及び複数の大
域索引から得られたPID を組合わせる大域索引論理積/
論理和動作を含むように容易に拡張され、そして同じ場
所に配置されたオブジェクトについては、局所索引を使
用可能に維持し協同動作を容易にすることである。
【0032】本発明の第6の利点は、大域索引サイトに
ホットスポットを生成する確率を減らすために概略大域
索引を用いて目標区画に直にアクセス要求を経路指定す
るので、全容量を増やして非一意的な索引の場合にアク
セスをより効率的にし且つ大域索引サイトに記憶された
情報の量をより最小化することである。
ホットスポットを生成する確率を減らすために概略大域
索引を用いて目標区画に直にアクセス要求を経路指定す
るので、全容量を増やして非一意的な索引の場合にアク
セスをより効率的にし且つ大域索引サイトに記憶された
情報の量をより最小化することである。
【0033】本発明の第7の利点は、区分の程度に比例
する効率的で動的な索引解法を提供することによりデー
タアクセス効率を高め且つ区分されたデータベースの比
例性を最終的にかなり改善することである。
する効率的で動的な索引解法を提供することによりデー
タアクセス効率を高め且つ区分されたデータベースの比
例性を最終的にかなり改善することである。
【0034】
【実施例】リレーショナルデータベース管理システム即
ちRDBMS により管理されるテーブルのようなデータベー
スオブジェクトは、オブジェクトの多くの区画の1つに
オブジェクトの各レコードが記憶されるように水平に区
分されることがある。一般にオブジェクトの各区画は他
の区画のものと共通の要素を持たず且つ別個のプロセッ
サにより管理されることもありされないこともある物理
的な記憶のグループに関連づけられる。区画は一意的な
区分識別子即ちPID を有する。データベースを水平に区
分する動機は、DBMS照会の並列処理を容易にするように
1つのDBMSシステム内の複数のノード又はプロセッサの
間でデータを区分し、各ノードが局所レコードのアクセ
ス効率を保持できるようにDBMSネットワーク内の複数の
ノード又はサイトの間に分散されたオブジェクトを支援
し、そして物理的な記憶容量の管理を容易にするように
複数の記憶グループにわたる大きなデータベースオブジ
ェクトを区分することにある。データベースオブジェク
トの各区画が別々の局所DBMSノードにより管理される前
記パラダイムは本発明の良好な実施例の場合に想定され
るが、本発明は他の形式の区分データにも等しく適用で
きる。
ちRDBMS により管理されるテーブルのようなデータベー
スオブジェクトは、オブジェクトの多くの区画の1つに
オブジェクトの各レコードが記憶されるように水平に区
分されることがある。一般にオブジェクトの各区画は他
の区画のものと共通の要素を持たず且つ別個のプロセッ
サにより管理されることもありされないこともある物理
的な記憶のグループに関連づけられる。区画は一意的な
区分識別子即ちPID を有する。データベースを水平に区
分する動機は、DBMS照会の並列処理を容易にするように
1つのDBMSシステム内の複数のノード又はプロセッサの
間でデータを区分し、各ノードが局所レコードのアクセ
ス効率を保持できるようにDBMSネットワーク内の複数の
ノード又はサイトの間に分散されたオブジェクトを支援
し、そして物理的な記憶容量の管理を容易にするように
複数の記憶グループにわたる大きなデータベースオブジ
ェクトを区分することにある。データベースオブジェク
トの各区画が別々の局所DBMSノードにより管理される前
記パラダイムは本発明の良好な実施例の場合に想定され
るが、本発明は他の形式の区分データにも等しく適用で
きる。
【0035】関連探索効率を支援するために、少なくと
も1つの探索フィールドにしばしば索引が維持される。
索引は探索フィールドの反転である。それは論理的には
エントリのリストである。本発明の大域索引テーブル
は、それがエントリのリストを含み、各エントリが索引
キー値及びPID のセットであるので、概略であることが
望ましい。索引キー値に関連したPID のリストは重複し
ないので、たとえ対応する局所索引テーブルが索引キー
の複数のインスタンスを含んでいても、特定のキー値が
存在する所与の区画の大域索引テーブルに1つのエント
リしかない利点がある。一意的な大域索引が決められる
と、大域索引エントリは効率のためにIDを区分するほか
レコード識別子(RID) を包含できる。
も1つの探索フィールドにしばしば索引が維持される。
索引は探索フィールドの反転である。それは論理的には
エントリのリストである。本発明の大域索引テーブル
は、それがエントリのリストを含み、各エントリが索引
キー値及びPID のセットであるので、概略であることが
望ましい。索引キー値に関連したPID のリストは重複し
ないので、たとえ対応する局所索引テーブルが索引キー
の複数のインスタンスを含んでいても、特定のキー値が
存在する所与の区画の大域索引テーブルに1つのエント
リしかない利点がある。一意的な大域索引が決められる
と、大域索引エントリは効率のためにIDを区分するほか
レコード識別子(RID) を包含できる。
【0036】RID を包含するための追加の索引維持費用
は少なく、RID を使用できることは局所索引アクセスを
省くので、一般に一意的なキーを用いて数レコードをア
クセスするトランザクション処理の性能を改善する。一
意的な大域索引に任意に記憶できるRID は、ノードの自
主性に対する影響及び通常は割高な通信費用のために、
分散データベースにとってはあまり魅力的ではない。デ
ータベースアプリケーションによっては、一意的な大域
索引テーブルにRID を記憶しないことが又はRID をそれ
らが使用できるときに用いずに局所索引テーブルをアク
セスすることが望ましいことがある。更に、大域索引テ
ーブルにRID を記憶することは一次キーが用いられない
限り分散データベースのノード自主性を低下させ、RID
を送りそして検索されたレコードを再認定する費用がデ
ータ集中照会に見合うものとなりうる。区画が認識され
ると、RID を含む一意的な大域索引だけが更新を必要と
するが他の全ての大域索引は影響を受けないことが利点
である。
は少なく、RID を使用できることは局所索引アクセスを
省くので、一般に一意的なキーを用いて数レコードをア
クセスするトランザクション処理の性能を改善する。一
意的な大域索引に任意に記憶できるRID は、ノードの自
主性に対する影響及び通常は割高な通信費用のために、
分散データベースにとってはあまり魅力的ではない。デ
ータベースアプリケーションによっては、一意的な大域
索引テーブルにRID を記憶しないことが又はRID をそれ
らが使用できるときに用いずに局所索引テーブルをアク
セスすることが望ましいことがある。更に、大域索引テ
ーブルにRID を記憶することは一次キーが用いられない
限り分散データベースのノード自主性を低下させ、RID
を送りそして検索されたレコードを再認定する費用がデ
ータ集中照会に見合うものとなりうる。区画が認識され
ると、RID を含む一意的な大域索引だけが更新を必要と
するが他の全ての大域索引は影響を受けないことが利点
である。
【0037】各区画内では、あたかもデータが区分され
ていなかったかのように通常の方法で要求が評価され
る。これは物理的なレコードの集合、非同期入出力及び
大きなバッファのような使用できる全てのアクセス方法
の利用を含む。DBMSノード間のデータアクセスインタフ
ェースはコンパクトであり従来のDBMS APIにより近いの
で、アクセス要求は高いレベルに留まる。
ていなかったかのように通常の方法で要求が評価され
る。これは物理的なレコードの集合、非同期入出力及び
大きなバッファのような使用できる全てのアクセス方法
の利用を含む。DBMSノード間のデータアクセスインタフ
ェースはコンパクトであり従来のDBMS APIにより近いの
で、アクセス要求は高いレベルに留まる。
【0038】大域索引を索引として生成すべきか又はド
ロップすべきかをユーザが指定できるように、DBMSのSQ
L DDL インタフェースは、例えば、索引生成、索引ドロ
ップ及び索引変更ステートメントに特別のキーワードを
含むように拡張できる。あるいは、明白な生成ステート
メント及びドロップステートメントが直に大域索引とし
て定義できる。他方、DBMSは予想されたシステムの必要
性に基づきそれ自身で大域索引を生成するように決定し
システム性能を高めることもできる。これはDDL 処理の
一部として実行するか又は照会コンパイル時間に最適化
機能により実行することができる。索引を用いる全ての
アクセス要求が大域索引単独でも区分選択でもない場
合、大域索引は無効である。この場合、局所索引単独解
法はこの索引について完全に適切であるので、大域索引
の維持費用及び記憶を完全に除去する。もし特定の索引
キーが区分選択ではなくかつそのキーに関する大域情報
を維持する必要がなければ、データベース設計者は概略
大域索引なしに局所索引だけを生成するオプションを有
する。本発明の索引方式はどちらの場合にも適用でき
る。
ロップすべきかをユーザが指定できるように、DBMSのSQ
L DDL インタフェースは、例えば、索引生成、索引ドロ
ップ及び索引変更ステートメントに特別のキーワードを
含むように拡張できる。あるいは、明白な生成ステート
メント及びドロップステートメントが直に大域索引とし
て定義できる。他方、DBMSは予想されたシステムの必要
性に基づきそれ自身で大域索引を生成するように決定し
システム性能を高めることもできる。これはDDL 処理の
一部として実行するか又は照会コンパイル時間に最適化
機能により実行することができる。索引を用いる全ての
アクセス要求が大域索引単独でも区分選択でもない場
合、大域索引は無効である。この場合、局所索引単独解
法はこの索引について完全に適切であるので、大域索引
の維持費用及び記憶を完全に除去する。もし特定の索引
キーが区分選択ではなくかつそのキーに関する大域情報
を維持する必要がなければ、データベース設計者は概略
大域索引なしに局所索引だけを生成するオプションを有
する。本発明の索引方式はどちらの場合にも適用でき
る。
【0039】本発明の概略大域索引の意図的な使用は、
索引キーの高度に区分選択的な探索属性によるアクセス
要求が処理のために目標区画に指向されるように、個々
の索引キーをそれらの目標区画と関連づけることであ
る。それは索引キーに関する大域情報の維持にも用いら
れ、該大域情報が、例えば、キー値の存在を検査し又は
異なるキー値の数をカウントするために、索引単独アク
セスにより検索できるようにする。
索引キーの高度に区分選択的な探索属性によるアクセス
要求が処理のために目標区画に指向されるように、個々
の索引キーをそれらの目標区画と関連づけることであ
る。それは索引キーに関する大域情報の維持にも用いら
れ、該大域情報が、例えば、キー値の存在を検査し又は
異なるキー値の数をカウントするために、索引単独アク
セスにより検索できるようにする。
【0040】本発明の索引方法の良好な実施例は区分さ
れたデータベースのオブジェクトの2層索引方法であ
る。この良好な方法は、データベースの各区画の局所索
引テーブルの生成、及び各局所索引テーブル内の異なる
局所索引キー毎に1つの一意的な大域索引エントリを含
む概略大域索引テーブルの生成を含む。局所索引テーブ
ルは該テーブルの対応する区画内の関連するオブジェク
ト毎に1つの局所索引エントリを含む。各局所索引エン
トリは、対応する区画内の関連するオブジェクトを識別
するオブジェクト識別子、例えばレコードポインタ、及
び識別された関連するオブジェクトに関する局所索引キ
ー値を含む。
れたデータベースのオブジェクトの2層索引方法であ
る。この良好な方法は、データベースの各区画の局所索
引テーブルの生成、及び各局所索引テーブル内の異なる
局所索引キー毎に1つの一意的な大域索引エントリを含
む概略大域索引テーブルの生成を含む。局所索引テーブ
ルは該テーブルの対応する区画内の関連するオブジェク
ト毎に1つの局所索引エントリを含む。各局所索引エン
トリは、対応する区画内の関連するオブジェクトを識別
するオブジェクト識別子、例えばレコードポインタ、及
び識別された関連するオブジェクトに関する局所索引キ
ー値を含む。
【0041】図1に示すように、オブジェクトの各区画
に局所索引が維持される。RID 又は一次キーはレコード
ポインタとして用いられる。区画を索引するがレコード
は維持しない概略大域索引が維持され、区画IDが少なく
とも1つの局所索引を参照し該局所索引はオブジェクト
区画内の索引レコードを参照する。
に局所索引が維持される。RID 又は一次キーはレコード
ポインタとして用いられる。区画を索引するがレコード
は維持しない概略大域索引が維持され、区画IDが少なく
とも1つの局所索引を参照し該局所索引はオブジェクト
区画内の索引レコードを参照する。
【0042】既存のオブジェクトに索引を生成するため
には、オブジェクトを走査し索引キー及び対応するレコ
ードポインタを捕捉する必要がある。局所索引を生成す
るために索引キー値及びレコードポインタが各区画に記
憶される。大域索引が用いられると仮定して、異なるキ
ー値の分類されたリストが大域索引ノードに送られる。
分類されたキー値のリストを組合せて各リストと関連し
たPID を付加することにより概略大域索引テーブルが生
成される。区画内の複数のレコードが同じ索引キー値を
有する場合、概略大域索引には1つのエントリだけがあ
る。よって、キー値の最初のインスタンスが局所索引テ
ーブルに挿入されるときにのみ、大域索引テーブルにエ
ントリが挿入されるべきである。同様に、キー値の最後
のインスタンスが局所索引から削除されるときにのみ、
大域索引テーブルからエントリが削除されるべきであ
る。これは索引維持費用を軽減する。
には、オブジェクトを走査し索引キー及び対応するレコ
ードポインタを捕捉する必要がある。局所索引を生成す
るために索引キー値及びレコードポインタが各区画に記
憶される。大域索引が用いられると仮定して、異なるキ
ー値の分類されたリストが大域索引ノードに送られる。
分類されたキー値のリストを組合せて各リストと関連し
たPID を付加することにより概略大域索引テーブルが生
成される。区画内の複数のレコードが同じ索引キー値を
有する場合、概略大域索引には1つのエントリだけがあ
る。よって、キー値の最初のインスタンスが局所索引テ
ーブルに挿入されるときにのみ、大域索引テーブルにエ
ントリが挿入されるべきである。同様に、キー値の最後
のインスタンスが局所索引から削除されるときにのみ、
大域索引テーブルからエントリが削除されるべきであ
る。これは索引維持費用を軽減する。
【0043】一意的な索引のために、大域索引テーブル
は局所索引テーブルアクセスのスキップを可能にするよ
うに索引されたレコードの識別子を含むこともある。概
略大域索引がレコードポインタを含む場合、アクセス要
求はそれに仮のRID= 又は一次キー=選択属性が付加さ
れた後、目標区画に送られる。付加された属性は目標レ
コードを取出す高速経路として使用できる。走査された
大域索引テーブルエントリがロックされない、反復でき
ない読取り動作のようなトランザクションでは、大域索
引に付加された選択属性は後に、即ち高速経路から検索
されたレコードが原始探索属性を用いて再認定されねば
ならないときに再検査されねばならない。他のデータベ
ースオブジェクトのように、概略大域索引テーブルは必
要ならそれ自身区分することができる。
は局所索引テーブルアクセスのスキップを可能にするよ
うに索引されたレコードの識別子を含むこともある。概
略大域索引がレコードポインタを含む場合、アクセス要
求はそれに仮のRID= 又は一次キー=選択属性が付加さ
れた後、目標区画に送られる。付加された属性は目標レ
コードを取出す高速経路として使用できる。走査された
大域索引テーブルエントリがロックされない、反復でき
ない読取り動作のようなトランザクションでは、大域索
引に付加された選択属性は後に、即ち高速経路から検索
されたレコードが原始探索属性を用いて再認定されねば
ならないときに再検査されねばならない。他のデータベ
ースオブジェクトのように、概略大域索引テーブルは必
要ならそれ自身区分することができる。
【0044】簡単なアクセス要求が適切な大域索引を用
いる区画のサブセットに探索範囲を縮小する探索キーの
みを含む場合、目標PID のリストを含むために大域探索
テーブルが正規の索引とほとんど同じに探索される。重
複するPID が除去された後、局所評価のためにこれらの
PID により識別された目標区画に同じアクセス要求が送
られる。適切な大域索引がない場合、評価のために全て
の区画に該要求が同報通信される。
いる区画のサブセットに探索範囲を縮小する探索キーの
みを含む場合、目標PID のリストを含むために大域探索
テーブルが正規の索引とほとんど同じに探索される。重
複するPID が除去された後、局所評価のためにこれらの
PID により識別された目標区画に同じアクセス要求が送
られる。適切な大域索引がない場合、評価のために全て
の区画に該要求が同報通信される。
【0045】本発明の大域及び局所索引テーブルの例と
して表1に示すデータベース内のテーブルは従業員名、
従業員番号及び各従業員の勤務地を含む。この情報は従
業員レコードのデータベースに何が含まれるかを表わ
す。表1の最初の列は関連した従業員レコードの各々の
レコード識別子を表わすRID の標識が付されている。例
えば、従業員Adams(アダムス) はRID=8を有し、この特
定の従業員レコードがこの区画で8により識別できるこ
とを意味する。PID=2は、このレコードが記憶されてい
る勤務地San Jose (サンノゼ) に対応するデータベース
区画である。このAdams のエントリの関連従業員番号は
1である。
して表1に示すデータベース内のテーブルは従業員名、
従業員番号及び各従業員の勤務地を含む。この情報は従
業員レコードのデータベースに何が含まれるかを表わ
す。表1の最初の列は関連した従業員レコードの各々の
レコード識別子を表わすRID の標識が付されている。例
えば、従業員Adams(アダムス) はRID=8を有し、この特
定の従業員レコードがこの区画で8により識別できるこ
とを意味する。PID=2は、このレコードが記憶されてい
る勤務地San Jose (サンノゼ) に対応するデータベース
区画である。このAdams のエントリの関連従業員番号は
1である。
【0046】
【表1】 RID 従業員名 従業員番号 勤務地 PID 8 ADAMS 1 SAN JOSE O2 17 ADAMS 3 WATSON 03 23 ANDREW 7 SAN JOSE O2 19 BAKER 4 ALMADEN 01 4 BLAIR 19 SAN JOSE O2 11 CUMMINGS 13 WATSON 03 15 ELLIOTT 2 WATSON 03 21 HOWARD 5 WATSON 03 37 HOWARD 11 SAN JOSE O2 12 HOWARD 8 SAN JOSE O2 18 JONES 8 ALMADEN 01 表1には、2つのAdams エントリがあることに注目され
たい。このデータベースは従業員の勤務地により区分さ
れているので、1つのAdams エントリは02のデータベー
ス区画にあり、もう1つのAdams エントリは03のデータ
ベース区画にある。また、3つのHowardエントリがあ
り、そのうちの2つはSan Jose区画に関連し、他の1つ
はWatson (ワトソン) 区画に関連する。
たい。このデータベースは従業員の勤務地により区分さ
れているので、1つのAdams エントリは02のデータベー
ス区画にあり、もう1つのAdams エントリは03のデータ
ベース区画にある。また、3つのHowardエントリがあ
り、そのうちの2つはSan Jose区画に関連し、他の1つ
はWatson (ワトソン) 区画に関連する。
【0047】図2は、本発明の局所索引テーブルの例と
して、テーブル毎に名前エントリ及び関連したRID を示
す。前述の本発明の方法の良好な実施例に従って、デー
タベース内の従業員名及び各従業員エントリのRID を含
む各区画の局所索引が生成される。この例では、生成さ
れる局所索引テーブルが3つある。1つの局所索引は勤
務地Almaden(アルマデン) に関連したデータベース区画
に関するものであり、Almaden で働くこれらの特定の従
業員のエントリのみを含む。従って、Almaden区画の局
所索引テーブルは、Baker(ベーカー) 及びJones(ジョー
ンズ) のエントリとそれらのレコード識別子 (この場
合、それぞれ18及び19) を含む。San Jose区画の局所索
引はその特定の勤務地に対応するエントリを含む。従っ
て、この局所索引テーブルはRID=8のAdams、RID=23の
Andrew(アンドリュー)、RID=4のBlair(ブレア)、RID=
37のHoward(ハワード)及びRID=12の別の Howardを含
む。良好な実施例に従って、局所索引テーブルはレコー
ド毎にその対応する区画に図示のような重複キー値を含
む1つのエントリを有する。
して、テーブル毎に名前エントリ及び関連したRID を示
す。前述の本発明の方法の良好な実施例に従って、デー
タベース内の従業員名及び各従業員エントリのRID を含
む各区画の局所索引が生成される。この例では、生成さ
れる局所索引テーブルが3つある。1つの局所索引は勤
務地Almaden(アルマデン) に関連したデータベース区画
に関するものであり、Almaden で働くこれらの特定の従
業員のエントリのみを含む。従って、Almaden区画の局
所索引テーブルは、Baker(ベーカー) 及びJones(ジョー
ンズ) のエントリとそれらのレコード識別子 (この場
合、それぞれ18及び19) を含む。San Jose区画の局所索
引はその特定の勤務地に対応するエントリを含む。従っ
て、この局所索引テーブルはRID=8のAdams、RID=23の
Andrew(アンドリュー)、RID=4のBlair(ブレア)、RID=
37のHoward(ハワード)及びRID=12の別の Howardを含
む。良好な実施例に従って、局所索引テーブルはレコー
ド毎にその対応する区画に図示のような重複キー値を含
む1つのエントリを有する。
【0048】Watson区画に関しては、局所索引テーブル
のエントリは RID=17の Adams、RID=11のCummings(カ
ミングス)、RID=15のElliott(エリオット)及び RID=2
1のもう一人のHowardである。三人の異なる従業員Howar
dがおり、そのうち二人のHowardは勤務地San Joseに配
置されているのでSan Jose区画に現われ、他の一人のHo
wardは勤務地Watsonに配置されているのでその区画の対
応する従業員エントリを有する局所索引テーブルに現わ
れる。同様に、二人の異なる従業員Adams がおり、その
一人は勤務地San Joseに配置され、他の一人は勤務地Wa
tsonに配置されている。従って、各従業員名は対応する
区画に生成された局所索引テーブルに現われる。
のエントリは RID=17の Adams、RID=11のCummings(カ
ミングス)、RID=15のElliott(エリオット)及び RID=2
1のもう一人のHowardである。三人の異なる従業員Howar
dがおり、そのうち二人のHowardは勤務地San Joseに配
置されているのでSan Jose区画に現われ、他の一人のHo
wardは勤務地Watsonに配置されているのでその区画の対
応する従業員エントリを有する局所索引テーブルに現わ
れる。同様に、二人の異なる従業員Adams がおり、その
一人は勤務地San Joseに配置され、他の一人は勤務地Wa
tsonに配置されている。従って、各従業員名は対応する
区画に生成された局所索引テーブルに現われる。
【0049】良好な実施例で説明したような概略大域索
引の生成の例として表2に示す大域索引テーブルは名前
エントリ及び関連したPID を含む。この例では、大域索
引はキー値及びPID を含む。このインスタンスでは、キ
ー値は従業員の名前である。表2の大域索引テーブル
は、区画01、即ち勤務地Almaden の局所索引に対応する
Baker の最初のエントリ及び PID=01を有する。大域索
引は一意的な局所索引エントリ毎に1つのエントリ (キ
ー値、PID)だけを含むので、区画01の局所索引のJones
エントリも列挙される。勤務地San Joseに指定された区
画 (即ち区画02)に関連した局所索引に関して、大域索
引はエントリ Adams 02、Andrew 02、Blair 02、及び1
つのエントリ Howard 02も含む。1つのエントリ Howar
d が含まれるのは、この索引方法によって大域索引が任
意の1つの局所索引テーブルに現われる任意の重複キー
値の1つのエントリだけを持ちうるためである。従っ
て、区画02の局所索引テーブルはHowardに関連した2つ
の同じキー値、即ち、Howard RID=37及びHoward RID=
12を有するから、大域索引は02の1つの区分識別子を有
するキー値"Howard"に対する一回の参照のみを含む。
引の生成の例として表2に示す大域索引テーブルは名前
エントリ及び関連したPID を含む。この例では、大域索
引はキー値及びPID を含む。このインスタンスでは、キ
ー値は従業員の名前である。表2の大域索引テーブル
は、区画01、即ち勤務地Almaden の局所索引に対応する
Baker の最初のエントリ及び PID=01を有する。大域索
引は一意的な局所索引エントリ毎に1つのエントリ (キ
ー値、PID)だけを含むので、区画01の局所索引のJones
エントリも列挙される。勤務地San Joseに指定された区
画 (即ち区画02)に関連した局所索引に関して、大域索
引はエントリ Adams 02、Andrew 02、Blair 02、及び1
つのエントリ Howard 02も含む。1つのエントリ Howar
d が含まれるのは、この索引方法によって大域索引が任
意の1つの局所索引テーブルに現われる任意の重複キー
値の1つのエントリだけを持ちうるためである。従っ
て、区画02の局所索引テーブルはHowardに関連した2つ
の同じキー値、即ち、Howard RID=37及びHoward RID=
12を有するから、大域索引は02の1つの区分識別子を有
するキー値"Howard"に対する一回の参照のみを含む。
【0050】
【表2】 大域索引 名前 PID ADAMS O2 ADAMS 03 ANDREW O2 BAKER 01 BLAIR O2 CUMMINGS 03 ELLIOTT 03 HOWARD 02 HOWARD O3 JONES 01 続いて、大域索引テーブルはエントリAdams 03、Cummin
gs 03、Elliot 03及びHoward 03 を有する。大域索引は
同じキー値、即ちAdams 又はHowardのキー値を持つエン
トリをそれぞれ2つ有する。しかし、これらのエントリ
の各々は異なる区画に関連し、従って異なる局所索引に
現われるので、大域索引ではこれらのエントリが重複し
て現われるが、どれか1つの局所索引に関連して重複し
て現われることはない。
gs 03、Elliot 03及びHoward 03 を有する。大域索引は
同じキー値、即ちAdams 又はHowardのキー値を持つエン
トリをそれぞれ2つ有する。しかし、これらのエントリ
の各々は異なる区画に関連し、従って異なる局所索引に
現われるので、大域索引ではこれらのエントリが重複し
て現われるが、どれか1つの局所索引に関連して重複し
て現われることはない。
【0051】図1、図2及び表1、表2に示された2層
索引方式の構成で分かるように、概略大域索引は仕事を
局所ノードに分散する傾向がある。更新トランザクショ
ンの場合、概略大域索引はレコード変更に対する反応が
ずっと低くなる。照会処理の際の典型的なデータ集中検
索の場合、本発明は索引されたレコードと同じノードに
全ての局所索引エントリを維持するので、通信費用を少
なくし、データページの非同期の事前取出し及び並行局
所索引動作を可能にする。索引ページの編集及び書込を
含む、局所索引及び大域索引の物理的な構成の費用は、
本発明の2層索引方法に局所索引の並行構成の利点を与
える索引の全サイズに比例する。
索引方式の構成で分かるように、概略大域索引は仕事を
局所ノードに分散する傾向がある。更新トランザクショ
ンの場合、概略大域索引はレコード変更に対する反応が
ずっと低くなる。照会処理の際の典型的なデータ集中検
索の場合、本発明は索引されたレコードと同じノードに
全ての局所索引エントリを維持するので、通信費用を少
なくし、データページの非同期の事前取出し及び並行局
所索引動作を可能にする。索引ページの編集及び書込を
含む、局所索引及び大域索引の物理的な構成の費用は、
本発明の2層索引方法に局所索引の並行構成の利点を与
える索引の全サイズに比例する。
【0052】概略大域索引は、単に照会結果を列挙する
代わりに、処理する目標区画にアクセス要求を経路指定
するのに主として用いられる。概略大域索引は (例え
ば、所与のキー値の存在を証明し、キーの一意性を保証
し、又は関連制約又はキー濃度をサポートする) 索引キ
ーに関する大域情報を得るために用いられることもあ
る。その結果、索引されたオブジェクトのサイズととも
に区画の数が増すとき、区画当りのワークロード及び全
経過時間は割合に安定している。従って、概略大域索引
はデータアクセス効率を高め且つ資源消費を少なくす
る。更に、区分の柔軟性が成長を有効に扱う能力に寄与
する。従って、概略大域索引方法は区分されたデータベ
ースの伸縮性(スケイラビリティ)をかなり改善する。
代わりに、処理する目標区画にアクセス要求を経路指定
するのに主として用いられる。概略大域索引は (例え
ば、所与のキー値の存在を証明し、キーの一意性を保証
し、又は関連制約又はキー濃度をサポートする) 索引キ
ーに関する大域情報を得るために用いられることもあ
る。その結果、索引されたオブジェクトのサイズととも
に区画の数が増すとき、区画当りのワークロード及び全
経過時間は割合に安定している。従って、概略大域索引
はデータアクセス効率を高め且つ資源消費を少なくす
る。更に、区分の柔軟性が成長を有効に扱う能力に寄与
する。従って、概略大域索引方法は区分されたデータベ
ースの伸縮性(スケイラビリティ)をかなり改善する。
【0053】下記の動作は選択されたレコードをオブジ
ェクトから検索する本発明の索引方法の実現を容易にす
る。
ェクトから検索する本発明の索引方法の実現を容易にす
る。
【0054】もしPID として評価できる区分キーに関す
る選択属性があれば、その属性を評価する。もし適切に
選択できる概略大域索引が使用可能であれば、資格のあ
るPID をその概略大域索引から取得する。PID を分類
し、重複を除去し、そして、区分キーに基づいたPID が
あれば、それらと組合わせる。一意的な索引のレコード
識別子を取得する。追加の概略大域索引がそれらから取
得されたPID の論理積/論理和の演算により用いられる
こともある。もしPID リストがあまりに長くなれば、即
ち、それがもはや選択的ではなくなれば、DBMSは大域索
引の使用を停止し、保持されているSロックをもしあれ
ば解放し、そして代わりに照会の同報通信を開始する。
もし照会が区分選択でなければ、PID は論理的に全区画
のリストにされる。識別された各区画に照会を送り評価
する。任意の使用可能な局所アクセス方法、例えば局所
索引等を利用する。どの局所索引を使用するかの選択は
使用された大域索引と異なることがある。任意の適切な
局所評価手法、例えば、索引論理積/論理和、リスト分
類又は非同期I/O を用いる。各ノードは、そのデータベ
ース統計、レコード集合方式及び使用可能なアクセス方
法により異なる照会評価計画を用いてもよい。走査され
た大域索引エントリがロックされない反復不可能な読取
りトランザクションでは、一意的な大域索引から得られ
たレコード識別子を用いて検索されるレコードは再認定
されるべきである。最後に、複数のノードで照会が評価
された場合、それらの結果を組合わせる。
る選択属性があれば、その属性を評価する。もし適切に
選択できる概略大域索引が使用可能であれば、資格のあ
るPID をその概略大域索引から取得する。PID を分類
し、重複を除去し、そして、区分キーに基づいたPID が
あれば、それらと組合わせる。一意的な索引のレコード
識別子を取得する。追加の概略大域索引がそれらから取
得されたPID の論理積/論理和の演算により用いられる
こともある。もしPID リストがあまりに長くなれば、即
ち、それがもはや選択的ではなくなれば、DBMSは大域索
引の使用を停止し、保持されているSロックをもしあれ
ば解放し、そして代わりに照会の同報通信を開始する。
もし照会が区分選択でなければ、PID は論理的に全区画
のリストにされる。識別された各区画に照会を送り評価
する。任意の使用可能な局所アクセス方法、例えば局所
索引等を利用する。どの局所索引を使用するかの選択は
使用された大域索引と異なることがある。任意の適切な
局所評価手法、例えば、索引論理積/論理和、リスト分
類又は非同期I/O を用いる。各ノードは、そのデータベ
ース統計、レコード集合方式及び使用可能なアクセス方
法により異なる照会評価計画を用いてもよい。走査され
た大域索引エントリがロックされない反復不可能な読取
りトランザクションでは、一意的な大域索引から得られ
たレコード識別子を用いて検索されるレコードは再認定
されるべきである。最後に、複数のノードで照会が評価
された場合、それらの結果を組合わせる。
【0055】良好な実施例の2層索引方法の場合、非一
意的な索引の大域索引は必ずしも用いられるとは限ら
ず、又は実施例によっては維持すらされない。局所索引
は索引されたデータレコードを識別する実索引である。
データ検索の場合、非一意的な大域索引は主として目標
区画選択に用いられる。次にこれらの目標区画から得ら
れた局所結果が組合わされて実際の結果を形成する。内
部ポインタ(RID) は公開されないので、保全性公開即ち
保全違反の危険を少なくする。もし大域索引が同報通信
により又は大域索引論理積により照会のための区分選択
をかなり改善する見込みがなければ、それは使用されな
い。すなわち、局所処理を省くために大域索引のみが使
用される。他方、もし大域索引が使用されれば、その対
応する局所索引は必ずしも使用されない。例えば、大域
索引を索引単独アクセスに使用し、局所索引を使用しな
いことがある。なぜなら、局所索引は照会のために集合
されないか又は低いレコード選択を有するためである。
意的な索引の大域索引は必ずしも用いられるとは限ら
ず、又は実施例によっては維持すらされない。局所索引
は索引されたデータレコードを識別する実索引である。
データ検索の場合、非一意的な大域索引は主として目標
区画選択に用いられる。次にこれらの目標区画から得ら
れた局所結果が組合わされて実際の結果を形成する。内
部ポインタ(RID) は公開されないので、保全性公開即ち
保全違反の危険を少なくする。もし大域索引が同報通信
により又は大域索引論理積により照会のための区分選択
をかなり改善する見込みがなければ、それは使用されな
い。すなわち、局所処理を省くために大域索引のみが使
用される。他方、もし大域索引が使用されれば、その対
応する局所索引は必ずしも使用されない。例えば、大域
索引を索引単独アクセスに使用し、局所索引を使用しな
いことがある。なぜなら、局所索引は照会のために集合
されないか又は低いレコード選択を有するためである。
【0056】レコード選択性に関しては、もし局所索引
内のキー値の索引エントリの数の平均がnならば、局所
索引更新動作が新たなキー値を挿入するか又はキー値の
インスタンスを削除するので、大域索引挿入又は削除は
通常は1/nよりも少なくされる。例えば、従業員テー
ブルの部門フィールドに関する索引の場合、社員の入
社、所属部門の移動又は退社の度に、索引が更新され
る。しかしながら、新たな部門に加わる最初の社員、及
び部門を(例えば、部門が解散されるとき)去る最後の
社員を除き、1つの勤務地での全ての他の社員の移動
は、部門の平均サイズにかかわらず大域索引更新を生じ
ない。
内のキー値の索引エントリの数の平均がnならば、局所
索引更新動作が新たなキー値を挿入するか又はキー値の
インスタンスを削除するので、大域索引挿入又は削除は
通常は1/nよりも少なくされる。例えば、従業員テー
ブルの部門フィールドに関する索引の場合、社員の入
社、所属部門の移動又は退社の度に、索引が更新され
る。しかしながら、新たな部門に加わる最初の社員、及
び部門を(例えば、部門が解散されるとき)去る最後の
社員を除き、1つの勤務地での全ての他の社員の移動
は、部門の平均サイズにかかわらず大域索引更新を生じ
ない。
【0057】更に、局所照会プロセッサは、局所索引が
概略大域索引から得られたキー統計、例えば区画に関す
る資格のあるキー値の数に基づいて用いられるべきかど
うかを動的に判定する。前記走行時間局所最適化がデー
タスキューを処理するのに非常に役立つ。
概略大域索引から得られたキー統計、例えば区画に関す
る資格のあるキー値の数に基づいて用いられるべきかど
うかを動的に判定する。前記走行時間局所最適化がデー
タスキューを処理するのに非常に役立つ。
【0058】この2層索引方法は区分されたデータを現
にサポートしない多くの既存のDBMS、即ち区分されたデ
ータの索引に用いる仮の局所索引単独解法のみを有する
DBMSと互換性がある利点がある。なぜなら、この方法は
一次アクセス方法として局所索引を用い続けるが大域索
引は任意選択とみなされるからである。既存のDBMSロジ
ック関連コードの大部分は再使用可能である、即ちこの
2層索引方法を組込むように容易に変更される。既存の
未区分のデータベースは性能低下の危険なしに同じロジ
ックによりサポートされる。よって、DBMS開発費用は低
くなる。
にサポートしない多くの既存のDBMS、即ち区分されたデ
ータの索引に用いる仮の局所索引単独解法のみを有する
DBMSと互換性がある利点がある。なぜなら、この方法は
一次アクセス方法として局所索引を用い続けるが大域索
引は任意選択とみなされるからである。既存のDBMSロジ
ック関連コードの大部分は再使用可能である、即ちこの
2層索引方法を組込むように容易に変更される。既存の
未区分のデータベースは性能低下の危険なしに同じロジ
ックによりサポートされる。よって、DBMS開発費用は低
くなる。
【0059】既存の最適化機能が先ず拡張され、簡単な
方法で大域索引を利用する、例えば、キーの一意性を検
査し且つ望ましい選択属性を用いて目標区画を選択する
ことがある。例えば、テーブルを結合する時間にわた
り、大域索引がより多く利用されるので、その実現は同
期して行うこともできる。
方法で大域索引を利用する、例えば、キーの一意性を検
査し且つ望ましい選択属性を用いて目標区画を選択する
ことがある。例えば、テーブルを結合する時間にわた
り、大域索引がより多く利用されるので、その実現は同
期して行うこともできる。
【0060】局所索引は個々の区画について維持される
から、各区画はそれ自身のアクセス方法を含む別々のデ
ータモジュールとしてパッケージできる。このような組
み込みのデータモジュールは、例えば大規模な分散デー
タベースシステムで、移動式データベース装置として用
いることができる。データモジュールが取付けられた
後、大域索引を更新するための局所索引は高速かつ容易
に走査される。データレコードが挿入、削除又は更新さ
れるとき、少なくとも1つの索引を更新せねばならない
こともある。大域索引の更新は、もしそれがプロセッサ
空間を横切るならば、局所索引の更新よりも費用が高
い。大域索引は任意選択である。それは新たなキー値が
局所索引に挿入されるとき又はキー値の最後のインスタ
ンスが局所索引から削除されるときにのみ更新される。
よって、非一意的な索引の概略大域索引更新費用が低く
なる利点がある。
から、各区画はそれ自身のアクセス方法を含む別々のデ
ータモジュールとしてパッケージできる。このような組
み込みのデータモジュールは、例えば大規模な分散デー
タベースシステムで、移動式データベース装置として用
いることができる。データモジュールが取付けられた
後、大域索引を更新するための局所索引は高速かつ容易
に走査される。データレコードが挿入、削除又は更新さ
れるとき、少なくとも1つの索引を更新せねばならない
こともある。大域索引の更新は、もしそれがプロセッサ
空間を横切るならば、局所索引の更新よりも費用が高
い。大域索引は任意選択である。それは新たなキー値が
局所索引に挿入されるとき又はキー値の最後のインスタ
ンスが局所索引から削除されるときにのみ更新される。
よって、非一意的な索引の概略大域索引更新費用が低く
なる利点がある。
【0061】一意的な索引の場合、この方法は大域索引
に加えて局所索引を維持する必要がある。局所索引は冗
長性がありかつそれらの維持費用及び記憶空間を節減す
るように除去できるけれども、この節減は、ある場合に
は、一意的な索引及び非一意的な索引、例えば、索引管
理ロジック、照会処理ロジック、ユーティリティ、使用
可能度及びノード自主性の間に結果として生じる非均一
性により生成された影響に及ぼす価値がないかも知れな
い。他方、一意的なキーに関する探索要求が区分選択で
はないために大域索引が用いられないとき、局所索引を
照会評価のために用いることができる。更に、局所索引
は局所照会の評価に使用でき、かつキーが大域索引アク
セスを最小化するように挿入されるときキー値の局所存
在に使用できる。
に加えて局所索引を維持する必要がある。局所索引は冗
長性がありかつそれらの維持費用及び記憶空間を節減す
るように除去できるけれども、この節減は、ある場合に
は、一意的な索引及び非一意的な索引、例えば、索引管
理ロジック、照会処理ロジック、ユーティリティ、使用
可能度及びノード自主性の間に結果として生じる非均一
性により生成された影響に及ぼす価値がないかも知れな
い。他方、一意的なキーに関する探索要求が区分選択で
はないために大域索引が用いられないとき、局所索引を
照会評価のために用いることができる。更に、局所索引
は局所照会の評価に使用でき、かつキーが大域索引アク
セスを最小化するように挿入されるときキー値の局所存
在に使用できる。
【0062】ノード不均一性及びノード自主性は分散デ
ータベースにとって重要である。不均一性は局所アクセ
ス方法、レコードポインタの形式、集合方法、ハードウ
ェア及び環境の相違、ならびに実現された最適化アルゴ
リズムを含む。この方法は大域索引内の各区画の最低量
の情報を保持しかつ処理の大部分の実行を局所ノードに
依存する。よって、ノード不均一性及び自主性を最もよ
く適応させることができる。区分されない局所オブジェ
クトをアクセスする既存のアプリケーションはたとえそ
のオブジェクトが分散オブジェクトの区画になっても機
能し続けるであろう。
ータベースにとって重要である。不均一性は局所アクセ
ス方法、レコードポインタの形式、集合方法、ハードウ
ェア及び環境の相違、ならびに実現された最適化アルゴ
リズムを含む。この方法は大域索引内の各区画の最低量
の情報を保持しかつ処理の大部分の実行を局所ノードに
依存する。よって、ノード不均一性及び自主性を最もよ
く適応させることができる。区分されない局所オブジェ
クトをアクセスする既存のアプリケーションはたとえそ
のオブジェクトが分散オブジェクトの区画になっても機
能し続けるであろう。
【0063】本発明の2層索引方法が実現される分散デ
ータベースのオブジェクト区画は、DBMSネットワークが
故障してもなお局所照会の評価に使用できる。なぜな
ら、局所索引は依然として容易に使用可能であり、局所
データのアクセス可能性を高めるからである。探索範囲
を縮小する区分キーならびにレコードを見つける索引を
用いる照会評価計画は使用できるノードの数がより少な
くて済むようにすることができる。なぜならば、索引は
目標データにとって局所的であるからである。同様に、
更新動作のデータベースの使用可能度も高くなる。なぜ
ならば、新しいキー値が局所索引に挿入されないか又は
キー値の最後のインスタンスが局所索引テーブルから削
除されない限り大域索引はアクセスされないからであ
る。
ータベースのオブジェクト区画は、DBMSネットワークが
故障してもなお局所照会の評価に使用できる。なぜな
ら、局所索引は依然として容易に使用可能であり、局所
データのアクセス可能性を高めるからである。探索範囲
を縮小する区分キーならびにレコードを見つける索引を
用いる照会評価計画は使用できるノードの数がより少な
くて済むようにすることができる。なぜならば、索引は
目標データにとって局所的であるからである。同様に、
更新動作のデータベースの使用可能度も高くなる。なぜ
ならば、新しいキー値が局所索引に挿入されないか又は
キー値の最後のインスタンスが局所索引テーブルから削
除されない限り大域索引はアクセスされないからであ
る。
【0064】更に、本発明の索引方法は物理的なデータ
ベース設計を最適化するアクセスパターンに適合するデ
ータ集合代替方法の完全な利用を可能にする。一例とし
て、テーブル間集合は関係及び複雑なオブジェクトをよ
り効率的にサポートするのに使用できる。あらゆるレコ
ード及びその局所索引エントリは常に同じノードで同時
に発見されるので、複雑な照会評価及び索引維持の効率
が高められる。
ベース設計を最適化するアクセスパターンに適合するデ
ータ集合代替方法の完全な利用を可能にする。一例とし
て、テーブル間集合は関係及び複雑なオブジェクトをよ
り効率的にサポートするのに使用できる。あらゆるレコ
ード及びその局所索引エントリは常に同じノードで同時
に発見されるので、複雑な照会評価及び索引維持の効率
が高められる。
【0065】本発明は新たな最適化の機会を提供する。
より多くのアクセス経路選択のため、より効率的なアク
セス計画が可能になり得る。サイン、R木及びハッシン
グのような、キー変換(索引)のほかの他のタイプのア
クセス方法が実現できる。大域索引は全ワークロードを
少なくする区分選択照会に使用できるのに対し、同報通
信は大域索引アクセスの費用を回避するためにより少な
い区分選択照会に使用できる。使用する大域索引の最適
選択は使用された局所索引の最適選択と異なることがあ
る。なぜならば、大域レベルで使用できる索引ならびに
アクセス目標は局所レベルでのものと異なることがある
からである。
より多くのアクセス経路選択のため、より効率的なアク
セス計画が可能になり得る。サイン、R木及びハッシン
グのような、キー変換(索引)のほかの他のタイプのア
クセス方法が実現できる。大域索引は全ワークロードを
少なくする区分選択照会に使用できるのに対し、同報通
信は大域索引アクセスの費用を回避するためにより少な
い区分選択照会に使用できる。使用する大域索引の最適
選択は使用された局所索引の最適選択と異なることがあ
る。なぜならば、大域レベルで使用できる索引ならびに
アクセス目標は局所レベルでのものと異なることがある
からである。
【0066】データスキュー、ワークロード又は非均一
性のため局所アクセス計画は互いに異なることがあるの
に対し、索引が使用されることになっている場合、従来
技術の方法が提供する代替方法は殆どない。例えば、各
大域索引から得られた長いリストのレコードポインタは
区分基準により分類する必要がある。そして分類された
サブリストは目標区画に配分される。区分キー方法及び
一次キー方法はより長い可変長のポインタの処理を必要
とすることがあり、実現された区分方式により、それら
が区分基準をあらゆるポインタに個々に適用する必要が
あり得るのに対し、本発明の2層索引方法は、大域索引
が概略であるために、より短いポインタ(PID) リストを
有するので、重複するPID は既知の分類、例えば、トー
ナメント式分類を用いて徐々に除去される。更に、単一
のPID がより短く且つ固定長であるので、その処理は容
易になる。大域索引は概略であり且つより短いPID を用
いるから、それは完全な大域索引が有するよりも1少な
いB木レベルを有することがあるので、その索引をアク
セスするには1少ないI/O を必要とすることがある。同
様に、局所索引もより少ないエントリを有し且つより短
いレコードポインタを用いるので、それがアクセスする
のに要するI/O は少なくて済む。
性のため局所アクセス計画は互いに異なることがあるの
に対し、索引が使用されることになっている場合、従来
技術の方法が提供する代替方法は殆どない。例えば、各
大域索引から得られた長いリストのレコードポインタは
区分基準により分類する必要がある。そして分類された
サブリストは目標区画に配分される。区分キー方法及び
一次キー方法はより長い可変長のポインタの処理を必要
とすることがあり、実現された区分方式により、それら
が区分基準をあらゆるポインタに個々に適用する必要が
あり得るのに対し、本発明の2層索引方法は、大域索引
が概略であるために、より短いポインタ(PID) リストを
有するので、重複するPID は既知の分類、例えば、トー
ナメント式分類を用いて徐々に除去される。更に、単一
のPID がより短く且つ固定長であるので、その処理は容
易になる。大域索引は概略であり且つより短いPID を用
いるから、それは完全な大域索引が有するよりも1少な
いB木レベルを有することがあるので、その索引をアク
セスするには1少ないI/O を必要とすることがある。同
様に、局所索引もより少ないエントリを有し且つより短
いレコードポインタを用いるので、それがアクセスする
のに要するI/O は少なくて済む。
【0067】良好な実施例は2層索引の状況で論議され
ているが、良好な実施例の2層索引方式は一般化されて
多層方式にすることができる。よって、多層索引方式は
本明細書では本発明の範囲内で論議される。
ているが、良好な実施例の2層索引方式は一般化されて
多層方式にすることができる。よって、多層索引方式は
本明細書では本発明の範囲内で論議される。
【0068】例えば、分散データベース内のオブジェク
トは幾つかのDBMSサイトの間で水平に区分し、これらの
区画の各々は更に局所サイトで並行照会処理のために区
分することができる。分散データベースはそれ自身がネ
ットワーク、施設、ローカルエリアネットワーク又は他
の構成の階層として位相的に構成できる。このオブジェ
クトに索引を生成するために、オブジェクトの葉ノード
区画毎に局所索引が生成される。この階層内のあらゆる
非葉ノードについて、概略大域索引が生成されることが
ある。一般に、1つのレベルの大域索引はその階層内の
次に高いレベルの局所索引かも知れない。索引階層を維
持するために、階層内の索引のみが、データレコード又
は局所索引のようなそれが索引する目標アイテム、及び
もし存在すればその大域索引を知る必要がある。その情
報により2層索引維持アルゴリズムが使用できるので多
層階層が正しく維持される。全維持費用は基本局所索引
が更新されるとき更新される大域索引の数による。各大
域索引の粗さはより高いレベルの大域索引に対するレコ
ード更新の影響を徐々に減少する。
トは幾つかのDBMSサイトの間で水平に区分し、これらの
区画の各々は更に局所サイトで並行照会処理のために区
分することができる。分散データベースはそれ自身がネ
ットワーク、施設、ローカルエリアネットワーク又は他
の構成の階層として位相的に構成できる。このオブジェ
クトに索引を生成するために、オブジェクトの葉ノード
区画毎に局所索引が生成される。この階層内のあらゆる
非葉ノードについて、概略大域索引が生成されることが
ある。一般に、1つのレベルの大域索引はその階層内の
次に高いレベルの局所索引かも知れない。索引階層を維
持するために、階層内の索引のみが、データレコード又
は局所索引のようなそれが索引する目標アイテム、及び
もし存在すればその大域索引を知る必要がある。その情
報により2層索引維持アルゴリズムが使用できるので多
層階層が正しく維持される。全維持費用は基本局所索引
が更新されるとき更新される大域索引の数による。各大
域索引の粗さはより高いレベルの大域索引に対するレコ
ード更新の影響を徐々に減少する。
【0069】多層索引は必ずしもオブジェクトの多層区
分を必要としない。動作上、概略大域索引はあらゆる索
引が1つの親大域索引のみを有する限り適合する索引キ
ーを有する索引の任意のセットに生成できる。索引の識
別子又は論理的にそれと等価なものが大域索引内の目標
PID として使用できる。しかしながら、大域索引の生成
及び維持は、それが一定の可能な照会の評価に役立つ探
索範囲を定義する場合にのみ価値がある。これは、探索
範囲がユーザによって理解され、DBMSインタフェースに
より記述され、そして最適化機能により認識され得るも
のでなければならないことを意味する。よって、大域索
引にとって重要なのは論理的なグループ分けである(通
常それは最初に区分されたデータ及び葉レベル局所索引
を生成する物理的な区分である)。従って、本明細書で
は、たとえデータ区分のレベルが1つしかなく且つ各葉
レベル局所索引の特定の範囲がユーザの関心を失ってい
る場合でも、複数のレベルの探索範囲を定義する本多層
索引方式が前述のように使用される試みがなされる。
分を必要としない。動作上、概略大域索引はあらゆる索
引が1つの親大域索引のみを有する限り適合する索引キ
ーを有する索引の任意のセットに生成できる。索引の識
別子又は論理的にそれと等価なものが大域索引内の目標
PID として使用できる。しかしながら、大域索引の生成
及び維持は、それが一定の可能な照会の評価に役立つ探
索範囲を定義する場合にのみ価値がある。これは、探索
範囲がユーザによって理解され、DBMSインタフェースに
より記述され、そして最適化機能により認識され得るも
のでなければならないことを意味する。よって、大域索
引にとって重要なのは論理的なグループ分けである(通
常それは最初に区分されたデータ及び葉レベル局所索引
を生成する物理的な区分である)。従って、本明細書で
は、たとえデータ区分のレベルが1つしかなく且つ各葉
レベル局所索引の特定の範囲がユーザの関心を失ってい
る場合でも、複数のレベルの探索範囲を定義する本多層
索引方式が前述のように使用される試みがなされる。
【0070】階層内の高いレベルの大域索引を用いるデ
ータ検索では、多くの索引(下位レベル当り1つ)が探
索されなければならない。性能を改善するために、複数
の親大域索引を有する索引を可能にすることにより階層
を制限するか又はそれを平坦にすることができる。後者
は下記のように局所索引維持アルゴリズムのロジックに
若干の付加を必要とする。それが挿入又は削除トランザ
クション要求をその大域索引に送るとき、それを全ての
大域索引にも送るべきである。
ータ検索では、多くの索引(下位レベル当り1つ)が探
索されなければならない。性能を改善するために、複数
の親大域索引を有する索引を可能にすることにより階層
を制限するか又はそれを平坦にすることができる。後者
は下記のように局所索引維持アルゴリズムのロジックに
若干の付加を必要とする。それが挿入又は削除トランザ
クション要求をその大域索引に送るとき、それを全ての
大域索引にも送るべきである。
【0071】例えば、研究所により区分される職員テー
ブルを索引するために、最初に研究所毎に局所索引が生
成される。そして幾つかの研究所を含む部門毎に概略大
域索引が生成されることがある。最後に、全社の部門索
引上に概略大域索引が生成されることがある。最上レベ
ルの大域索引は全社的な探索に役立つが次のレベルの大
域索引は部門特有の探索に役立つ。
ブルを索引するために、最初に研究所毎に局所索引が生
成される。そして幾つかの研究所を含む部門毎に概略大
域索引が生成されることがある。最後に、全社の部門索
引上に概略大域索引が生成されることがある。最上レベ
ルの大域索引は全社的な探索に役立つが次のレベルの大
域索引は部門特有の探索に役立つ。
【0072】会社索引が研究所索引に直に生成されるこ
とがある。階層を平坦にする外に、多層アプローチは非
階層グループ分け又は部分重複探索範囲をサポートする
能力を導入する、即ち地理的な領域により研究所をグル
ープ分けするために地域の大域索引を研究所索引上に生
成することがある。このようなグループ分けは部門グル
ープ分けと直交するであろう。
とがある。階層を平坦にする外に、多層アプローチは非
階層グループ分け又は部分重複探索範囲をサポートする
能力を導入する、即ち地理的な領域により研究所をグル
ープ分けするために地域の大域索引を研究所索引上に生
成することがある。このようなグループ分けは部門グル
ープ分けと直交するであろう。
【0073】本発明の方法は一意的及び非一意的な索引
エントリの挿入及び削除を処理する方法を含む利点があ
る。下記の表に示す擬似コードは本明細書に開示された
良好な実施例の理解及び実現を容易にする(表中に現れ
る英文字の列はコマンドなどを表す記号であり、翻訳で
きない)。
エントリの挿入及び削除を処理する方法を含む利点があ
る。下記の表に示す擬似コードは本明細書に開示された
良好な実施例の理解及び実現を容易にする(表中に現れ
る英文字の列はコマンドなどを表す記号であり、翻訳で
きない)。
【0074】
【表3】 一意的な索引の場合の挿入の良好な実施例は、挿入され
る索引エントリ内の局所索引キー値が局所索引内に既に
存在するかどうかの最初の判定を含み、もしそれが既に
存在すれば挿入を拒絶する。さもなければ、索引エント
リを局所索引テーブルに挿入し、局所索引キー値に関す
る大域索引キー値が既に大域索引テーブルに存在するか
どうかを判定し、もしそれが既に存在すれば、挿入され
た局所索引エントリを局所索引テーブルから削除してそ
の挿入を拒絶する。もし局所索引キー値に関する大域索
引キー値が大域索引テーブル内に存在しなければ、局所
索引キー値に関する大域索引キー値と局所索引テーブル
を識別する局所索引識別子とを含む大域索引エントリを
大域索引テーブルに挿入する。
る索引エントリ内の局所索引キー値が局所索引内に既に
存在するかどうかの最初の判定を含み、もしそれが既に
存在すれば挿入を拒絶する。さもなければ、索引エント
リを局所索引テーブルに挿入し、局所索引キー値に関す
る大域索引キー値が既に大域索引テーブルに存在するか
どうかを判定し、もしそれが既に存在すれば、挿入され
た局所索引エントリを局所索引テーブルから削除してそ
の挿入を拒絶する。もし局所索引キー値に関する大域索
引キー値が大域索引テーブル内に存在しなければ、局所
索引キー値に関する大域索引キー値と局所索引テーブル
を識別する局所索引識別子とを含む大域索引エントリを
大域索引テーブルに挿入する。
【0075】非一意的な索引の場合の挿入は索引エント
リを局所索引テーブルに挿入することを含む。そして、
もし当該キー値が局所索引内にまだ存在していなかった
ならば、局所索引キー値に関する大域索引キー値と局所
索引テーブルを識別する局所索引識別子とを含む大域索
引エントリを大域索引テーブルに挿入する。
リを局所索引テーブルに挿入することを含む。そして、
もし当該キー値が局所索引内にまだ存在していなかった
ならば、局所索引キー値に関する大域索引キー値と局所
索引テーブルを識別する局所索引識別子とを含む大域索
引エントリを大域索引テーブルに挿入する。
【0076】一意的な索引エントリを削除する方法は、
局所索引テーブルからキーを削除し且つ局所索引キー値
に関する大域索引エントリと局所索引識別子とを大域索
引テーブルから削除することを含む。
局所索引テーブルからキーを削除し且つ局所索引キー値
に関する大域索引エントリと局所索引識別子とを大域索
引テーブルから削除することを含む。
【0077】非一意的な索引エントリを削除する方法
は、局所索引からキーを削除し且つ削除される索引エン
トリ内の局所索引キー値がもはや局所索引テーブル内に
存在しないかどうかを判定し、そしてもしそれがもはや
存在しなければ、局所索引キー値に関する大域索引キー
値と局所索引テーブルを識別する局所索引識別子とを含
む大域索引エントリを大域索引テーブルから削除するス
テップを含む。
は、局所索引からキーを削除し且つ削除される索引エン
トリ内の局所索引キー値がもはや局所索引テーブル内に
存在しないかどうかを判定し、そしてもしそれがもはや
存在しなければ、局所索引キー値に関する大域索引キー
値と局所索引テーブルを識別する局所索引識別子とを含
む大域索引エントリを大域索引テーブルから削除するス
テップを含む。
【0078】この方法の挿入及び削除動作の説明から、
大域索引と局所索引の間の一貫性を維持する必要があ
る。大域索引と局所索引の間の一貫性を保証するため
に、索引エントリの挿入及び削除を正しく処理するロッ
キングプロトコルが指定されなければならない。これは
2つの状態の維持を必要とする。すなわち、特定のキー
値が特定の区画に存在することを大域索引が示す場合、
その区画の局所索引はそのキー値を含むべきであり、特
定のキー値が特定の区画に存在しないことを大域索引が
示す場合、その区画の局所索引はそのキー値を含むべき
ではない。
大域索引と局所索引の間の一貫性を維持する必要があ
る。大域索引と局所索引の間の一貫性を保証するため
に、索引エントリの挿入及び削除を正しく処理するロッ
キングプロトコルが指定されなければならない。これは
2つの状態の維持を必要とする。すなわち、特定のキー
値が特定の区画に存在することを大域索引が示す場合、
その区画の局所索引はそのキー値を含むべきであり、特
定のキー値が特定の区画に存在しないことを大域索引が
示す場合、その区画の局所索引はそのキー値を含むべき
ではない。
【0079】特定のキー挿入動作がキー値の真に最初の
インスタンスの挿入を生じるか又は特定のキー削除動作
がキー値の現に存在するインスタンスのみの削除を実行
するかを判定する前述の検査を行うと同時に、後に前記
推理を裏切ることがある他のトランザクションによる確
約されない挿入又は削除動作がないことが確認されなけ
ればならない。本発明の方法が新規の方法でロッキング
を用いるのはこれらの判定を行う際である。
インスタンスの挿入を生じるか又は特定のキー削除動作
がキー値の現に存在するインスタンスのみの削除を実行
するかを判定する前述の検査を行うと同時に、後に前記
推理を裏切ることがある他のトランザクションによる確
約されない挿入又は削除動作がないことが確認されなけ
ればならない。本発明の方法が新規の方法でロッキング
を用いるのはこれらの判定を行う際である。
【0080】一般に、同時に起きる活動を同期させるた
めにロック及びラッチが用いられる。ラッチはデータの
物理的な一貫性を保証するのに用いられるのに対し、ロ
ックはデータの論理的な一貫性を保証するのに用いられ
る。一般にラッチはプロセスにより所有され通常はロッ
クよりもずっと短い時間の周期のあいだ保持される。ロ
ックはトランザクションにより所有される。デッドロッ
ク検出器はラッチ待ちについては知らされない。ラッチ
はラッチのみを含むか又はラッチ及びロックを含むデッ
ドロックを回避するような方法で要求される。ラッチの
取得はロックの取得よりもずっと安価である。なぜなら
ば、ラッチ制御情報は常に仮想メモリ内の一定の場所に
あり且つラッチ情報に対する直接アドレス可能性はラッ
チ名が与えられると可能である。他方、ロックの記憶は
動的に管理されるのでロックを取得し解除するためによ
り多くの命令を実行する必要がある。
めにロック及びラッチが用いられる。ラッチはデータの
物理的な一貫性を保証するのに用いられるのに対し、ロ
ックはデータの論理的な一貫性を保証するのに用いられ
る。一般にラッチはプロセスにより所有され通常はロッ
クよりもずっと短い時間の周期のあいだ保持される。ロ
ックはトランザクションにより所有される。デッドロッ
ク検出器はラッチ待ちについては知らされない。ラッチ
はラッチのみを含むか又はラッチ及びロックを含むデッ
ドロックを回避するような方法で要求される。ラッチの
取得はロックの取得よりもずっと安価である。なぜなら
ば、ラッチ制御情報は常に仮想メモリ内の一定の場所に
あり且つラッチ情報に対する直接アドレス可能性はラッ
チ名が与えられると可能である。他方、ロックの記憶は
動的に管理されるのでロックを取得し解除するためによ
り多くの命令を実行する必要がある。
【0081】大域索引に対する索引単独アクセスを可能
にするために、例えば、キー存在検査の実行又は異なる
照会カウント実行のために、大域索引動作中にロッキン
グが実行される。一意的な大域索引では、大域索引と局
所索引の間の一貫性を維持するために、大域索引で試み
られたキー挿入動作が一意的なキー違反により拒絶され
る場合、局所索引挿入、即ち最初の大域索引動作の試み
をトリガした局所索引挿入は、制御がその局所索引挿入
の呼出し者に戻される前に取消される。
にするために、例えば、キー存在検査の実行又は異なる
照会カウント実行のために、大域索引動作中にロッキン
グが実行される。一意的な大域索引では、大域索引と局
所索引の間の一貫性を維持するために、大域索引で試み
られたキー挿入動作が一意的なキー違反により拒絶され
る場合、局所索引挿入、即ち最初の大域索引動作の試み
をトリガした局所索引挿入は、制御がその局所索引挿入
の呼出し者に戻される前に取消される。
【0082】ロック要求は条件付き又は無条件オプショ
ンにより行うことができる。条件付き要求は、要求が処
理される時点でロックを直ちに許可できない場合に要求
者が待機する意志がないことを意味する。無条件要求
は、ロックが許可できるようになるまで要求者が待機す
る意志があることを意味する。ロックが保持される持続
時間は異なることがある。瞬時持続時間無条件ロック要
求は、ロックが実際には許可されないことを意味する
が、ロックマネジャはロックが許可できるようになるま
でロック要求の成功状態の返送を遅延させなければなら
ない。持続時間手動ロックは、それらが取得された後の
ある時点で且つ一般にトランザクション終了よりもかな
り以前に解除される。確約持続時間ロックは、トランザ
クションの終了時点で、即ち、確約又は放棄が終了した
後にのみ解除される。資源のロック要求がうまく返送さ
れた後、ロックマネジャは、現在のトランザクションが
既に保持されていたか且つ現在の要求が出される前にそ
の資源のロックがまだ解除されていなかったかどうかを
示す。この場合、前に取得されたロックのモードが返送
される。
ンにより行うことができる。条件付き要求は、要求が処
理される時点でロックを直ちに許可できない場合に要求
者が待機する意志がないことを意味する。無条件要求
は、ロックが許可できるようになるまで要求者が待機す
る意志があることを意味する。ロックが保持される持続
時間は異なることがある。瞬時持続時間無条件ロック要
求は、ロックが実際には許可されないことを意味する
が、ロックマネジャはロックが許可できるようになるま
でロック要求の成功状態の返送を遅延させなければなら
ない。持続時間手動ロックは、それらが取得された後の
ある時点で且つ一般にトランザクション終了よりもかな
り以前に解除される。確約持続時間ロックは、トランザ
クションの終了時点で、即ち、確約又は放棄が終了した
後にのみ解除される。資源のロック要求がうまく返送さ
れた後、ロックマネジャは、現在のトランザクションが
既に保持されていたか且つ現在の要求が出される前にそ
の資源のロックがまだ解除されていなかったかどうかを
示す。この場合、前に取得されたロックのモードが返送
される。
【0083】通常、ラッチ及びロックは共有情報に対す
るアクセスの制御に用いられる。ロックは異なるモー
ド、例えばS(共有)モード、X(排他的)モード、IX
(排他的意図)モード、IS(共有意図)モード及び SIX
(共有排他的意図)モードで取得できる。Sロック及び
Xロックは最も一般的なロックである。Sロックは読取
り特権を与えXロックは読取り及び書込み特権を与え
る。所与のオブジェクトにあるロックは、これらのロッ
クモードが互換性を有する場合にのみ、異なるトランザ
クションにより同時に保持できる。異なるモードのロッ
キングの間の互換性関係は下記の表に示す。チェック記
号(V) は対応するモードが互換性を有することを示す。
るアクセスの制御に用いられる。ロックは異なるモー
ド、例えばS(共有)モード、X(排他的)モード、IX
(排他的意図)モード、IS(共有意図)モード及び SIX
(共有排他的意図)モードで取得できる。Sロック及び
Xロックは最も一般的なロックである。Sロックは読取
り特権を与えXロックは読取り及び書込み特権を与え
る。所与のオブジェクトにあるロックは、これらのロッ
クモードが互換性を有する場合にのみ、異なるトランザ
クションにより同時に保持できる。異なるモードのロッ
キングの間の互換性関係は下記の表に示す。チェック記
号(V) は対応するモードが互換性を有することを示す。
【0084】
【表4】 階層ロッキングにより、一般により高いレベルの階層で
(例えば、テーブルで)ロック意図(IX、IS及び SIX)
が得られる。非意図モード(S又はX)は、一定の階層
レベルにあるオブジェクトに取得されたとき、より低い
レベルのオブジェクトに、そのより高いレベルのオブジ
ェクトの対応するモードのロックを暗に許可する。他
方、意図モードロックは、対応する意図又は非意図モー
ドロックを要求する権利をより低いレベルのオブジェク
トにのみ与える、例えば、テーブル上のSIX ロックは暗
にそのテーブルの全てのレコードにSロックを許可する
ので、そのテーブルのレコードのXロックを明白に要求
することができる。
(例えば、テーブルで)ロック意図(IX、IS及び SIX)
が得られる。非意図モード(S又はX)は、一定の階層
レベルにあるオブジェクトに取得されたとき、より低い
レベルのオブジェクトに、そのより高いレベルのオブジ
ェクトの対応するモードのロックを暗に許可する。他
方、意図モードロックは、対応する意図又は非意図モー
ドロックを要求する権利をより低いレベルのオブジェク
トにのみ与える、例えば、テーブル上のSIX ロックは暗
にそのテーブルの全てのレコードにSロックを許可する
ので、そのテーブルのレコードのXロックを明白に要求
することができる。
【0085】現に挿入又は削除されるべき索引エントリ
に取得されるロックのほかに索引挿入及び削除動作で
は、ロックも次のエントリに取得される。非一意的な局
所索引単独では、ときにはロックが前のエントリに取得
されることもある。これらのロックが取得される順序は
次のエントリ、(もし必要なら)前のエントリ及び現在
のエントリの順である。本発明のロックモードは読取り
者、挿入者及び削除者の間の非常に高い同時性を可能に
する。
に取得されるロックのほかに索引挿入及び削除動作で
は、ロックも次のエントリに取得される。非一意的な局
所索引単独では、ときにはロックが前のエントリに取得
されることもある。これらのロックが取得される順序は
次のエントリ、(もし必要なら)前のエントリ及び現在
のエントリの順である。本発明のロックモードは読取り
者、挿入者及び削除者の間の非常に高い同時性を可能に
する。
【0086】瞬時ロックが取得される毎に、対応するエ
ントリを保持するページのラッチは、そのページでキー
挿入又は削除動作が終了するまで保持されなければなら
ない。このようなページラッチは、ラッチ保持中に要求
されたロックが直ちに許可できない場合、ラッチを含む
デッドロックを回避するために解除されなければならな
い。もしページラッチを保持しないうちにロックが取得
されれば、ラッチは再取得されかつ全プロセスが反復さ
れなければならない。大域索引での実行を必要とするキ
ー挿入又は削除動作は、対応する局所索引動作の実行に
必要な全てのロッキングが終了した後にのみ開始でき
る。後者のステップの終了後にのみ、大域索引動作が必
要かどうかを正しく判定することができる。
ントリを保持するページのラッチは、そのページでキー
挿入又は削除動作が終了するまで保持されなければなら
ない。このようなページラッチは、ラッチ保持中に要求
されたロックが直ちに許可できない場合、ラッチを含む
デッドロックを回避するために解除されなければならな
い。もしページラッチを保持しないうちにロックが取得
されれば、ラッチは再取得されかつ全プロセスが反復さ
れなければならない。大域索引での実行を必要とするキ
ー挿入又は削除動作は、対応する局所索引動作の実行に
必要な全てのロッキングが終了した後にのみ開始でき
る。後者のステップの終了後にのみ、大域索引動作が必
要かどうかを正しく判定することができる。
【0087】簡単に言えば、技術的に既知の多くのDBMS
は、トランザクションにより行われた更新の結果として
記述されるログレコードに関してページ状態を追跡す
る。各ページはそれに関連したフィールドを有し、更新
トランザクションはそれがページの最後の更新で記述し
たログレコードのログシーケンス番号(LSN) をそこに保
管する。このフィールドはページLSN と呼ばれる。トラ
ンザクションがその最初の更新を行う前に、それは回復
ユニット開始(UR開始)ログレコードを記述する。トラ
ンザクションのUR開始ログレコードのLSN は常に当該ト
ランザクションによりデータベースの更新のために書込
まれた任意のログレコードのLSN よりも小さい。LSN は
常に増加し続けると仮定される。DBMSでの全ての活動状
態のトランザクションのUR開始の最小LSN 値は確約LSN
と呼ばれる。これはその前に未確約トランザクションが
ないシーケンス番号である。
は、トランザクションにより行われた更新の結果として
記述されるログレコードに関してページ状態を追跡す
る。各ページはそれに関連したフィールドを有し、更新
トランザクションはそれがページの最後の更新で記述し
たログレコードのログシーケンス番号(LSN) をそこに保
管する。このフィールドはページLSN と呼ばれる。トラ
ンザクションがその最初の更新を行う前に、それは回復
ユニット開始(UR開始)ログレコードを記述する。トラ
ンザクションのUR開始ログレコードのLSN は常に当該ト
ランザクションによりデータベースの更新のために書込
まれた任意のログレコードのLSN よりも小さい。LSN は
常に増加し続けると仮定される。DBMSでの全ての活動状
態のトランザクションのUR開始の最小LSN 値は確約LSN
と呼ばれる。これはその前に未確約トランザクションが
ないシーケンス番号である。
【0088】局所索引でキー挿入中の次、前及び現在の
エントリのロッキングは下記の表の実現により遂行され
る。
エントリのロッキングは下記の表の実現により遂行され
る。
【0089】
【表5】 局所索引でキー削除中のロッキングは下記の表のように
なる。
なる。
【0090】
【表6】 大域索引(一意的又は非一意的)でキー挿入又は削除中
に行われた索引エントリロッキングは一意的な局所索引
の場合と同じである。
に行われた索引エントリロッキングは一意的な局所索引
の場合と同じである。
【0091】重要なことは次のエントリのロックが常に
取得されることである。次のエントリがない場合、この
局所索引に特有の特別な索引終了ロックがこの目的のた
めに用いられる。
取得されることである。次のエントリがない場合、この
局所索引に特有の特別な索引終了ロックがこの目的のた
めに用いられる。
【0092】挿入中に次のエントリをロックする背景理
由について以下に説明する。1つの理由は、この索引が
既に走査され且つ読取り者が終了するまで新たに挿入す
べきエントリを欲しないことがある反復可能な読取り(R
R)トランザクションが現にあるかどうかを検査するため
である。読取り者がいた場合、それは次のエントリをS
モードでロックしているであろう。RRトランザクション
により取り残されたSロックは、存在しえたが脱落した
関連する範囲内のキー値を有するエントリに関して取り
残された記号のようなものである。脱落した値は、少な
くともそれらを脱落したトランザクションが終了するま
で、それらが読取りトランザクション自身により挿入さ
れない限り索引に現われるべきではない。現在の挿入ト
ランザクション自身が次のエントリの読取りを早期に実
行したトランザクションであることがあり得る。この場
合、ロックマネジャは、IXロック要求の戻りコードを介
して、Sロック又はSIX ロックが現在のトランザクショ
ンにより次のエントリに既に保持されていることを示
す。そして、読取り者に続く挿入者の次のエントリのS
ロックが挿入すべきエントリに加えられなければならな
い。これは次のキーのロッキングを介したロック状態反
復と呼ばれる。ロック状態反復(missed-you)記号は新た
に挿入されたエントリがロック状態反復記号を隠さない
ことを確かめるために新しいエントリに関して反復され
るので、新たに挿入されたエントリの背後のもう1つの
エントリの別のトランザクションによる挿入を可能にす
る。このような挿入は、最初のロック状態反復記号を隠
したキー挿入動作を最初のトランザクションが実行しな
かった場合には起こり得なかったであろう。従って、挿
入されたエントリで普通に取得されたIXロックは、現在
のトランザクションにより次のエントリが既にSモード
又はSIX モードで保持されている場合にはSIX に変更さ
れる。この反復は、新たに挿入されたキー値が脱落した
値よりも小さい場合には必要ではないであろうが、挿入
者は、脱落した値が何であるか又は何であったかが分か
らないから、この観察からは何も得ることができない。
由について以下に説明する。1つの理由は、この索引が
既に走査され且つ読取り者が終了するまで新たに挿入す
べきエントリを欲しないことがある反復可能な読取り(R
R)トランザクションが現にあるかどうかを検査するため
である。読取り者がいた場合、それは次のエントリをS
モードでロックしているであろう。RRトランザクション
により取り残されたSロックは、存在しえたが脱落した
関連する範囲内のキー値を有するエントリに関して取り
残された記号のようなものである。脱落した値は、少な
くともそれらを脱落したトランザクションが終了するま
で、それらが読取りトランザクション自身により挿入さ
れない限り索引に現われるべきではない。現在の挿入ト
ランザクション自身が次のエントリの読取りを早期に実
行したトランザクションであることがあり得る。この場
合、ロックマネジャは、IXロック要求の戻りコードを介
して、Sロック又はSIX ロックが現在のトランザクショ
ンにより次のエントリに既に保持されていることを示
す。そして、読取り者に続く挿入者の次のエントリのS
ロックが挿入すべきエントリに加えられなければならな
い。これは次のキーのロッキングを介したロック状態反
復と呼ばれる。ロック状態反復(missed-you)記号は新た
に挿入されたエントリがロック状態反復記号を隠さない
ことを確かめるために新しいエントリに関して反復され
るので、新たに挿入されたエントリの背後のもう1つの
エントリの別のトランザクションによる挿入を可能にす
る。このような挿入は、最初のロック状態反復記号を隠
したキー挿入動作を最初のトランザクションが実行しな
かった場合には起こり得なかったであろう。従って、挿
入されたエントリで普通に取得されたIXロックは、現在
のトランザクションにより次のエントリが既にSモード
又はSIX モードで保持されている場合にはSIX に変更さ
れる。この反復は、新たに挿入されたキー値が脱落した
値よりも小さい場合には必要ではないであろうが、挿入
者は、脱落した値が何であるか又は何であったかが分か
らないから、この観察からは何も得ることができない。
【0093】局所索引が一意的な索引である場合、挿入
すべきものと同じキー値を有するもう1つのエントリの
別のトランザクションにより確約されない削除がないこ
とを確かめる。エントリの削除者は次のエントリでSIX
ロックを取得する。これが一意的な索引であり且つ同じ
トランザクションが同じキー値の別のインスタンスを早
期に削除していた場合、現在の挿入動作の実行は問題を
生じない。なぜならば、このトランザクションの前の索
引は最初に取消される現在の挿入トランザクションなし
には取消されないからである。これはロールバックが逆
年代順に実行されなければならないことによる。
すべきものと同じキー値を有するもう1つのエントリの
別のトランザクションにより確約されない削除がないこ
とを確かめる。エントリの削除者は次のエントリでSIX
ロックを取得する。これが一意的な索引であり且つ同じ
トランザクションが同じキー値の別のインスタンスを早
期に削除していた場合、現在の挿入動作の実行は問題を
生じない。なぜならば、このトランザクションの前の索
引は最初に取消される現在の挿入トランザクションなし
には取消されないからである。これはロールバックが逆
年代順に実行されなければならないことによる。
【0094】局所索引に大域索引が存在し且つこの索引
には挿入すべきキー値の他のインスタンスが存在しない
場合、同じキー値を有するもう1つのエントリの別のト
ランザクションにより確約されない削除がないことを確
かめる。エントリの削除者は次のエントリでSIX ロック
を取得する。現にキー値のもう1つのインスタンスが別
のトランザクションT1により確約されない削除状態にあ
る場合、現在のトランザクションT2はその挿入動作の実
行を許可されるべきではない。なぜならば、挿入を許可
することによりT2がそのキー値を大域索引に挿入するか
らである。その後、T1はロールバックできるので、同じ
キー値を大域索引に戻す(T1はそのエントリを順方向処
理で削除しているであろう)。従って、大域索引には、
それが同じキー値及び同じ区画の重複したエントリを含
むべきではないときに、前記重複したエントリがあるで
あろう。
には挿入すべきキー値の他のインスタンスが存在しない
場合、同じキー値を有するもう1つのエントリの別のト
ランザクションにより確約されない削除がないことを確
かめる。エントリの削除者は次のエントリでSIX ロック
を取得する。現にキー値のもう1つのインスタンスが別
のトランザクションT1により確約されない削除状態にあ
る場合、現在のトランザクションT2はその挿入動作の実
行を許可されるべきではない。なぜならば、挿入を許可
することによりT2がそのキー値を大域索引に挿入するか
らである。その後、T1はロールバックできるので、同じ
キー値を大域索引に戻す(T1はそのエントリを順方向処
理で削除しているであろう)。従って、大域索引には、
それが同じキー値及び同じ区画の重複したエントリを含
むべきではないときに、前記重複したエントリがあるで
あろう。
【0095】この非一意的な局所索引に大域索引が存在
し且つこの索引で次のエントリのキー値が挿入すべきエ
ントリのキー値と同じ場合、進行中の別のトランザクシ
ョンによりそのキー値の最初のインスタンスが確約され
ない状態ではないことを確かめる。最初のインスタンス
が確約されない状態である場合、そのインスタンスを挿
入したトランザクションのみが次のエントリを挿入でき
且つそのトランザクションが全ての既存のインスタンス
でXロックを保持しているであろう。現在のトランザク
ションが挿入すべきキー値の最初のインスタンスを挿入
したものである場合、ロックマネジャからの戻りコード
は、瞬時IXロックが次のエントリで要求されると、現在
のトランザクションが既にそのエントリでXロックを保
持していることを示す。この場合、現在のトランザクシ
ョンも挿入中の索引エントリでXロックを取得する。こ
れは確約されない最初のインスタンスの左側伝播と呼ば
れる。これは局所索引が一意的な索引である場合には必
ずしもそうではない。その場合、最初の挿入者はIXロッ
クのみを取得する必要があり且つその後の挿入トランザ
クションを試みる者は、一意的なキー違反があるかどう
かを判定するために既に存在するエントリのSロックを
要求するであろう。一意的なキー違反を報告できる前
に、最初のインスタンスが確約状態であるか又はそれが
現在のトランザクションによる挿入であるかが判定され
なければならない。
し且つこの索引で次のエントリのキー値が挿入すべきエ
ントリのキー値と同じ場合、進行中の別のトランザクシ
ョンによりそのキー値の最初のインスタンスが確約され
ない状態ではないことを確かめる。最初のインスタンス
が確約されない状態である場合、そのインスタンスを挿
入したトランザクションのみが次のエントリを挿入でき
且つそのトランザクションが全ての既存のインスタンス
でXロックを保持しているであろう。現在のトランザク
ションが挿入すべきキー値の最初のインスタンスを挿入
したものである場合、ロックマネジャからの戻りコード
は、瞬時IXロックが次のエントリで要求されると、現在
のトランザクションが既にそのエントリでXロックを保
持していることを示す。この場合、現在のトランザクシ
ョンも挿入中の索引エントリでXロックを取得する。こ
れは確約されない最初のインスタンスの左側伝播と呼ば
れる。これは局所索引が一意的な索引である場合には必
ずしもそうではない。その場合、最初の挿入者はIXロッ
クのみを取得する必要があり且つその後の挿入トランザ
クションを試みる者は、一意的なキー違反があるかどう
かを判定するために既に存在するエントリのSロックを
要求するであろう。一意的なキー違反を報告できる前
に、最初のインスタンスが確約状態であるか又はそれが
現在のトランザクションによる挿入であるかが判定され
なければならない。
【0096】非一意的な局所索引で、最初のインスタン
スの最初のトランザクションT1の挿入がまだ確約されな
いとき2番目のトランザクションT2によるキー挿入動作
を許可しない理由は、T1がロールバックしT2が確約する
ことになっていた場合に大域索引に関して一貫性がなく
なる局所索引を処理する必要があるためである。局所索
引でそのキー値の挿入中に大域索引にエントリを挿入し
たT1は、大域索引で挿入を実行しなかったT2がたとえ確
約しても大域索引へのその挿入動作を取消すであろう。
T2は、局所索引でのその挿入がそのキー値の最初のイン
スタンスではなかったので大域索引での挿入を実行せ
ず、従って大域索引での対応するエントリなしに局所索
引にそのキー値を取り残す。
スの最初のトランザクションT1の挿入がまだ確約されな
いとき2番目のトランザクションT2によるキー挿入動作
を許可しない理由は、T1がロールバックしT2が確約する
ことになっていた場合に大域索引に関して一貫性がなく
なる局所索引を処理する必要があるためである。局所索
引でそのキー値の挿入中に大域索引にエントリを挿入し
たT1は、大域索引で挿入を実行しなかったT2がたとえ確
約しても大域索引へのその挿入動作を取消すであろう。
T2は、局所索引でのその挿入がそのキー値の最初のイン
スタンスではなかったので大域索引での挿入を実行せ
ず、従って大域索引での対応するエントリなしに局所索
引にそのキー値を取り残す。
【0097】前のエントリのロッキングプロトコルの理
由は下記の通りである。意図は、挿入中のキー値の最初
のインスタンスの挿入者が確約したことを確かめるか又
はキー値の最初のインスタンスが現在のトランザクショ
ン自身による確約されない挿入動作であると判定する必
要がある場合にLSN 確約の着想を利用することである。
これが挿入中のキー値の最初のインスタンスではなく且
つ、最初の挿入トランザクションが確約されたに違いな
いと結論付けるのに十分な情報を次のエントリのロッキ
ングが提供しないので前のエントリを処理するトランザ
クションを必要とする場合でさえも、前のエントリが確
約された状態であると判定するのをLSN確約方法が助け
る場合には前のエントリの余分なロックをなお回避する
ことができる。その最初のインスタンスの挿入トランザ
クションがまだ確約されない場合は、そのキー値の全て
の他のインスタンスも同じトランザクションによる確約
されない挿入である場合でなければならない。更に、そ
のトランザクションは同じキー値を有する全ての索引エ
ントリのXロックを保持していなければならない。現在
のトランザクションが挿入すべきキー値の最初のインス
タンスを挿入したトランザクションである場合、瞬時IS
ロックが前のエントリで要求されるとき、ロックマネジ
ャからの戻りコードは現在のトランザクションが既に前
のエントリにXロックを保持していることを示す。この
場合、現在のトランザクションも挿入中の索引エントリ
でXロックを取得する。これは確約されない最初のイン
スタンス情報の右側伝播と呼ばれる。一意的な索引で
は、この問題を処理する必要はない。
由は下記の通りである。意図は、挿入中のキー値の最初
のインスタンスの挿入者が確約したことを確かめるか又
はキー値の最初のインスタンスが現在のトランザクショ
ン自身による確約されない挿入動作であると判定する必
要がある場合にLSN 確約の着想を利用することである。
これが挿入中のキー値の最初のインスタンスではなく且
つ、最初の挿入トランザクションが確約されたに違いな
いと結論付けるのに十分な情報を次のエントリのロッキ
ングが提供しないので前のエントリを処理するトランザ
クションを必要とする場合でさえも、前のエントリが確
約された状態であると判定するのをLSN確約方法が助け
る場合には前のエントリの余分なロックをなお回避する
ことができる。その最初のインスタンスの挿入トランザ
クションがまだ確約されない場合は、そのキー値の全て
の他のインスタンスも同じトランザクションによる確約
されない挿入である場合でなければならない。更に、そ
のトランザクションは同じキー値を有する全ての索引エ
ントリのXロックを保持していなければならない。現在
のトランザクションが挿入すべきキー値の最初のインス
タンスを挿入したトランザクションである場合、瞬時IS
ロックが前のエントリで要求されるとき、ロックマネジ
ャからの戻りコードは現在のトランザクションが既に前
のエントリにXロックを保持していることを示す。この
場合、現在のトランザクションも挿入中の索引エントリ
でXロックを取得する。これは確約されない最初のイン
スタンス情報の右側伝播と呼ばれる。一意的な索引で
は、この問題を処理する必要はない。
【0098】現在用いられているエントリロック擬似コ
ードは挿入中のエントリで取得する必要があるロックの
種類を決定する。他のトランザクションが確約されない
データを読取らないことを保証するために、挿入された
エントリに少なくともIXロックが取得する必要がある。
確約されないデータの読取りを欲しない読取り者はSロ
ックを取得するものと仮定する。それは確約されないエ
ントリに削除者が墓石を生成しないことを保証するため
にも用いられる。なぜなら、確約されないエントリの挿
入トランザクションがその挿入をロールバックすること
になっていた場合、このような墓石は消えるからであ
る。
ードは挿入中のエントリで取得する必要があるロックの
種類を決定する。他のトランザクションが確約されない
データを読取らないことを保証するために、挿入された
エントリに少なくともIXロックが取得する必要がある。
確約されないデータの読取りを欲しない読取り者はSロ
ックを取得するものと仮定する。それは確約されないエ
ントリに削除者が墓石を生成しないことを保証するため
にも用いられる。なぜなら、確約されないエントリの挿
入トランザクションがその挿入をロールバックすること
になっていた場合、このような墓石は消えるからであ
る。
【0099】削除動作中に次のエントリのロックを取得
する理由は下記の通りである。キー削除中に、確約され
ない削除があることを他の読取り者トランザクションに
知らせる墓石を取り残すことが重要である。読取り者は
Sロックを要求すると仮定する。墓石(次のエントリ)
のロックは、(1) 墓石エントリの背後の削除されたキー
値よりも高いキー値を有するエントリを挿入することに
より削除動作が起きた場所から墓石を隠し、且つ(2) 墓
石をそれを削除することにより除去することができる他
のトランザクションがないものでなければならない。墓
石を隠す最初のインスタンスでは、次のエントリで瞬時
IXロックを挿入者に取得させることによりそれが処理さ
れる。墓石を除去する2番目のインスタンスでは、削除
すべきエントリでXロックを削除者に取得させることに
よりそれが処理される。最初の削除動作を実行した同じ
トランザクションが墓石の背後にエントリを挿入する場
合、それは挿入中の次のエントリロックでロックマネジ
ャを介して最初の墓石の回りに戻りコードを見つける。
そして、それは通常のIXロックの代わりに新たなエント
リでSIX 又はXロックを取得することにより新たに挿入
されたエントリに墓石を複製する。同じトランザクショ
ンにより墓石が削除中である場合、削除中の次のエント
リで取得されるSIX ロックにより最初の墓石の次のエン
トリに墓石が複製される。局所索引が一意的な索引であ
る場合、次のエントリロックは同じキー値の潜在的な将
来の挿入者にそのキー値を含む確約されない削除動作に
関して知らせる。前述のように、挿入者は次のエントリ
でIXロックを取得する。
する理由は下記の通りである。キー削除中に、確約され
ない削除があることを他の読取り者トランザクションに
知らせる墓石を取り残すことが重要である。読取り者は
Sロックを要求すると仮定する。墓石(次のエントリ)
のロックは、(1) 墓石エントリの背後の削除されたキー
値よりも高いキー値を有するエントリを挿入することに
より削除動作が起きた場所から墓石を隠し、且つ(2) 墓
石をそれを削除することにより除去することができる他
のトランザクションがないものでなければならない。墓
石を隠す最初のインスタンスでは、次のエントリで瞬時
IXロックを挿入者に取得させることによりそれが処理さ
れる。墓石を除去する2番目のインスタンスでは、削除
すべきエントリでXロックを削除者に取得させることに
よりそれが処理される。最初の削除動作を実行した同じ
トランザクションが墓石の背後にエントリを挿入する場
合、それは挿入中の次のエントリロックでロックマネジ
ャを介して最初の墓石の回りに戻りコードを見つける。
そして、それは通常のIXロックの代わりに新たなエント
リでSIX 又はXロックを取得することにより新たに挿入
されたエントリに墓石を複製する。同じトランザクショ
ンにより墓石が削除中である場合、削除中の次のエント
リで取得されるSIX ロックにより最初の墓石の次のエン
トリに墓石が複製される。局所索引が一意的な索引であ
る場合、次のエントリロックは同じキー値の潜在的な将
来の挿入者にそのキー値を含む確約されない削除動作に
関して知らせる。前述のように、挿入者は次のエントリ
でIXロックを取得する。
【0100】次のエントリのキー値が削除すべきエント
リのキー値と同じ場合、そのキー値の少なくとも1つの
インスタンスは現在のトランザクションが終了するまで
他のトランザクションにより削除されないことを確かめ
る。削除者が削除すべきエントリでXロックを取得する
から、別のトランザクションによる将来の動作は次のエ
ントリを削除できない。次のエントリが現に確約されな
い状態である場合、その挿入者はこの時点でそれにIX又
はXロックを保持している。これはトランザクションT1
が最後ではないインスタンスを削除し、且つトランザク
ションT2が最後のインスタンスを削除し、キー値を大域
索引から除去したのち確約する状況にはならないことを
保証するために必要である。T1はロールバックすること
によりそのキー値を局所索引に再挿入する。これらの状
況の下では、局所索引のキー値は大域索引には存在しな
い。
リのキー値と同じ場合、そのキー値の少なくとも1つの
インスタンスは現在のトランザクションが終了するまで
他のトランザクションにより削除されないことを確かめ
る。削除者が削除すべきエントリでXロックを取得する
から、別のトランザクションによる将来の動作は次のエ
ントリを削除できない。次のエントリが現に確約されな
い状態である場合、その挿入者はこの時点でそれにIX又
はXロックを保持している。これはトランザクションT1
が最後ではないインスタンスを削除し、且つトランザク
ションT2が最後のインスタンスを削除し、キー値を大域
索引から除去したのち確約する状況にはならないことを
保証するために必要である。T1はロールバックすること
によりそのキー値を局所索引に再挿入する。これらの状
況の下では、局所索引のキー値は大域索引には存在しな
い。
【0101】キー値のインスタンスのみが削除中である
場合、他のトランザクションはそのキー値のインスタン
スを削除中のトランザクションが終了するまで挿入でき
ないことを保証する。これは挿入者が次のエントリでIX
ロックを取得するから保証される。このステップで望ま
れることは下記のシナリオを回避することである。T1は
最後のインスタンスを局所索引から削除し且つキー値を
大域索引から除去する。そしてT2は局所索引の最初のイ
ンスタンスを挿入し且つキー値を大域索引に挿入する。
T1はロールバックし且つ複製エントリを大域索引に導入
する。なぜなら、それは大域索引からのその早期の削除
動作を取消す。T1が複製の挿入を回避して終了する場
合、T2はロールバックできるので、局所索引と大域索引
の間に非一貫性を生成する。なぜなら、T2はそれが大域
索引に挿入したキー値を除去するからである。
場合、他のトランザクションはそのキー値のインスタン
スを削除中のトランザクションが終了するまで挿入でき
ないことを保証する。これは挿入者が次のエントリでIX
ロックを取得するから保証される。このステップで望ま
れることは下記のシナリオを回避することである。T1は
最後のインスタンスを局所索引から削除し且つキー値を
大域索引から除去する。そしてT2は局所索引の最初のイ
ンスタンスを挿入し且つキー値を大域索引に挿入する。
T1はロールバックし且つ複製エントリを大域索引に導入
する。なぜなら、それは大域索引からのその早期の削除
動作を取消す。T1が複製の挿入を回避して終了する場
合、T2はロールバックできるので、局所索引と大域索引
の間に非一貫性を生成する。なぜなら、T2はそれが大域
索引に挿入したキー値を除去するからである。
【0102】削除中に前のエントリでロックを取得する
理由は下記の通りである。その意図は確約された状態に
ある削除中のキー値の少なくとも1つのインスタンスが
索引に現に存在するかどうかを調べること又は当該キー
値の全ての既存のインスタンスが現在のトランザクショ
ンによる未確約の挿入であると判定することである。現
在のトランザクションがキー値の唯一のインスタンスを
削除中ではないので大域索引からエントリを削除する必
要がない場合、現在のトランザクションは、後にキー値
の全ての残りのインスタンスはそれらが全て未確約の挿
入であったので削除されず、且つ全ての挿入トランザク
ションは誤って大域索引にキー値を取り残してこれらの
挿入をロールバックしたことを確かめる必要がある。キ
ー値の全ての残りのインスタンスが現在のトランザクシ
ョン以外のトランザクションの未確約の挿入である場
合、現在のトランザクションは、前のエントリでSロッ
クを要求することにより、これらのトランザクションの
少なくとも1つのトランザクションが終了し且つ再びキ
ーの状態を検査するまで待つ必要がある。前のエントリ
でSロックが直ちに許可できないことは必ずしも前のエ
ントリが未確約挿入であることを意味しない。他のトラ
ンザクションは要求されたSロックと衝突する前のエン
トリに現にロックを保持することがある。よって、これ
らの状態で待機することは従来のアプローチである。
理由は下記の通りである。その意図は確約された状態に
ある削除中のキー値の少なくとも1つのインスタンスが
索引に現に存在するかどうかを調べること又は当該キー
値の全ての既存のインスタンスが現在のトランザクショ
ンによる未確約の挿入であると判定することである。現
在のトランザクションがキー値の唯一のインスタンスを
削除中ではないので大域索引からエントリを削除する必
要がない場合、現在のトランザクションは、後にキー値
の全ての残りのインスタンスはそれらが全て未確約の挿
入であったので削除されず、且つ全ての挿入トランザク
ションは誤って大域索引にキー値を取り残してこれらの
挿入をロールバックしたことを確かめる必要がある。キ
ー値の全ての残りのインスタンスが現在のトランザクシ
ョン以外のトランザクションの未確約の挿入である場
合、現在のトランザクションは、前のエントリでSロッ
クを要求することにより、これらのトランザクションの
少なくとも1つのトランザクションが終了し且つ再びキ
ーの状態を検査するまで待つ必要がある。前のエントリ
でSロックが直ちに許可できないことは必ずしも前のエ
ントリが未確約挿入であることを意味しない。他のトラ
ンザクションは要求されたSロックと衝突する前のエン
トリに現にロックを保持することがある。よって、これ
らの状態で待機することは従来のアプローチである。
【0103】更に、現在のトランザクションがキー値の
前のエントリ及びたぶん全ての他のインスタンスを挿入
したトランザクションである場合、現在のトランザクシ
ョンは現在のエントリを安全に削除できる。なぜなら、
現在のトランザクションがロールバックする場合、それ
は現在のエントリを再挿入するからである。その結果、
大域索引を変更する必要がない。他方、現在のトランザ
クションは、それが後に順方向処理の際に全ての他のイ
ンスタンスを削除することになっていた場合、その時点
で大域索引内の対応するエントリを削除する。
前のエントリ及びたぶん全ての他のインスタンスを挿入
したトランザクションである場合、現在のトランザクシ
ョンは現在のエントリを安全に削除できる。なぜなら、
現在のトランザクションがロールバックする場合、それ
は現在のエントリを再挿入するからである。その結果、
大域索引を変更する必要がない。他方、現在のトランザ
クションは、それが後に順方向処理の際に全ての他のイ
ンスタンスを削除することになっていた場合、その時点
で大域索引内の対応するエントリを削除する。
【0104】索引エントリのロッキングプロトコルは下
記の表に要約される。
記の表に要約される。
【0105】
【表7】
【0106】
【表8】
【0107】
【表9】
【0108】エントリロッキングプロトコルの所与の説
明に基づいて、下記の表に要約されるキー値ロッキング
プロトコルのロッキング規則の背後の理由が容易に理解
されるであろう。
明に基づいて、下記の表に要約されるキー値ロッキング
プロトコルのロッキング規則の背後の理由が容易に理解
されるであろう。
【0109】
【表10】
【0110】
【表11】
【0111】
【表12】
【0112】
【表13】
【0113】要するに、オブジェクトの区画毎に局所索
引が生成・維持され且つ概略大域索引がオプションとし
て生成・維持される並列又は分散データベースシステム
で区分されたデータが直接供給される新規の多層索引方
法が提供される。概略大域索引は区分識別子(PID) によ
り索引付き区画を識別する。概略大域索引は個々の索引
キー値をそれらの目標区画と関連づけ、索引キーに関す
る高度の区分選択探索属性を有するアクセス要求を迅速
且つ容易に目標区画に指向し処理できるようにする。索
引維持ロッキングプロトコルも提供され、異なるトラン
ザクションによる同時索引アクセス中に局所索引エント
リと概略大域索引エントリの間の一貫性を保証する。ロ
ッキングプロトコルは索引エントリの挿入及び削除を簡
単に且つ効率的に処理する。挿入又は削除されたキーを
含む場合に且つ挿入又は削除されたキーに続くキー及び
たぶんそれらに先行するキーにのみロッキングを最小化
する一意的及び非一意的な局所索引方式のロッキングプ
ロトコルは、同時に起きる読取り者、挿入者及び削除者
の間の非常に高い同時性を可能にする。概略大域索引で
の実行を必要とする挿入又は削除動作は、実際に概略大
域索引更新動作が必要かどうかを正しく判定するため
に、対応する局所索引動作の実行に必要な全てのロッキ
ングが終了した後にのみ開始できる。
引が生成・維持され且つ概略大域索引がオプションとし
て生成・維持される並列又は分散データベースシステム
で区分されたデータが直接供給される新規の多層索引方
法が提供される。概略大域索引は区分識別子(PID) によ
り索引付き区画を識別する。概略大域索引は個々の索引
キー値をそれらの目標区画と関連づけ、索引キーに関す
る高度の区分選択探索属性を有するアクセス要求を迅速
且つ容易に目標区画に指向し処理できるようにする。索
引維持ロッキングプロトコルも提供され、異なるトラン
ザクションによる同時索引アクセス中に局所索引エント
リと概略大域索引エントリの間の一貫性を保証する。ロ
ッキングプロトコルは索引エントリの挿入及び削除を簡
単に且つ効率的に処理する。挿入又は削除されたキーを
含む場合に且つ挿入又は削除されたキーに続くキー及び
たぶんそれらに先行するキーにのみロッキングを最小化
する一意的及び非一意的な局所索引方式のロッキングプ
ロトコルは、同時に起きる読取り者、挿入者及び削除者
の間の非常に高い同時性を可能にする。概略大域索引で
の実行を必要とする挿入又は削除動作は、実際に概略大
域索引更新動作が必要かどうかを正しく判定するため
に、対応する局所索引動作の実行に必要な全てのロッキ
ングが終了した後にのみ開始できる。
【0114】
【発明の効果】本発明の方法は複雑な照会評価及び索引
維持の効率を高め且つトランザクション処理の高いスル
ープットを取得する。
維持の効率を高め且つトランザクション処理の高いスル
ープットを取得する。
【図1】区画を索引するがレコードは索引しない概略大
域索引を、少なくとも1つの局所索引を参照し次いでオ
ブジェクト区画内のレコードを参照する区分IDとともに
維持する、本発明の2層索引階層を示す図である。
域索引を、少なくとも1つの局所索引を参照し次いでオ
ブジェクト区画内のレコードを参照する区分IDとともに
維持する、本発明の2層索引階層を示す図である。
【図2】図2に示されたデータベーステーブルに関する
本発明の局所索引テーブル毎に名前エントリ及び関連し
たレコード識別子、即ちRID を示す図である。
本発明の局所索引テーブル毎に名前エントリ及び関連し
たレコード識別子、即ちRID を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャンドラセハラン・モーン アメリカ合衆国カリフォルニア州、サン・ ノゼ、ポーツウッド・ドライブ 727番地
Claims (10)
- 【請求項1】区分されたオブジェクトのデータベースの
多層索引構造を生成する方法であって、 (a) 前記データベースの区画毎に索引キー値の第2の索
引テーブルを生成するステップと、 (b) 各第2の索引テーブル内の異なる第2の索引キー値
毎に少なくとも1つの一意的な第1の索引エントリを含
む第1の索引テーブルを生成するステップと、 を含む方法。 - 【請求項2】第2の索引テーブルが前記データベースの
対応する区画内の関連するオブジェクト毎に少なくとも
1つの第2の索引エントリを含む請求項1の方法。 - 【請求項3】各第2の索引エントリが (a) 対応する区画内の関連するオブジェクトを識別する
オブジェクト識別子と、 (b) 識別された関連するオブジェクトに関する第2の索
引キー値とを含む請求項2の方法。 - 【請求項4】前記各第1の索引エントリが更に (a) 前記第2の索引テーブルを識別する第2の索引識別
子と、 (b) 前記識別された第2の索引テーブル内の第2の索引
キー値に関する第1の索引キー値とを含む請求項1の方
法。 - 【請求項5】索引エントリの挿入を処理して一意的な索
引にする多層索引構造において第2の索引テーブルと第
1の索引テーブルの間の一貫性を維持する方法であっ
て、第2の索引テーブルは第2の索引識別子を有しかつ
第2の索引エントリを含み、第2の索引エントリの各々
はデータベース区画内の関連するオブジェクトを識別す
る識別子、及び識別されたオブジェクトに関する第2の
索引キー値を有し、そして第1の索引テーブルは各第2
の索引テーブル内の異なる第2の索引キー値毎に少なく
とも1つの第1の索引エントリを有しかつ各第1の索引
エントリは第2の索引テーブルを識別する第2の索引識
別子、及び識別された第2の索引テーブル内の第2の索
引キー値に関する第1の索引キー値を有し、 挿入される索引エントリ内の第2の索引キーが既に第2
の索引テーブル内に存在するかどうかを判定し、もしそ
れが既に存在すれば挿入を拒絶し、さもなければ (1) その索引エントリを第2の索引テーブルに挿入する
ステップと、 (2) 第2の索引キー値に関する第1の索引キー値が既に
第1の索引テーブル内に存在するかどうかを判定するス
テップとを実行し、もしそれが既に存在すれば (i) 挿入された第2の索引エントリを第2の索引テーブ
ルから削除するステップと、 (ii)挿入を削除するステップとを実行し、そして (3) 第2の索引キー値に関する第1の索引キー値が第1
の索引テーブル内に存在するかどうかを判定し、もしそ
れが存在しなければ、第2の索引キー値に関する第1の
索引キー値、及び第2の索引テーブルを識別する第2の
索引識別子を有する第1の索引エントリを第1の索引テ
ーブルに挿入するステップを実行するステップを含む方
法。 - 【請求項6】一意的な索引で索引エントリの削除を処理
する多層索引構造内の第2の索引テーブルと第1の索引
テーブルの間の一貫性を維持する方法であって、第2の
索引テーブルは第2の索引識別子を有しかつ第2の索引
エントリを含み、第2の索引エントリの各々はデータベ
ース区画内の関連するオブジェクトを識別する識別子、
及び識別されたオブジェクトに関する第2の索引キー値
を有し、そして第1の索引テーブルは各第2の索引テー
ブル内の異なる第2の索引キー値毎に少なくとも1つの
第1の索引エントリを有しかつ各第1の索引エントリは
第2の索引テーブルを識別する第2の索引識別子、及び
識別された第2の索引テーブル内の第2の索引キー値に
関する第1の索引キー値を有し、 挿入される索引エントリ内の第2の索引キーが既に第2
の索引テーブル内に存在するかどうかを判定し、もしそ
れが既に存在すればその索引エントリを第2の索引テー
ブルに挿入し、さもなければ (1) その索引エントリを第2の索引テーブルから削除す
るステップと、 (2) 第1の索引テーブルから、第2の索引キー値及び第
2の索引識別子に関する第1の索引エントリを削除する
ステップとを実行するステップを含む方法。 - 【請求項7】索引エントリの挿入を処理して非一意的な
索引にする多層索引構造において第2の索引テーブルと
第1の索引テーブルの間の一貫性を維持する方法であっ
て、第2の索引テーブルは第2の索引識別子を有しかつ
第2の索引エントリを含み、第2の索引エントリの各々
はデータベース区画内の関連するオブジェクトを識別す
る識別子、及び識別されたオブジェクトに関する第2の
索引キー値を有し、そして第1の索引テーブルは各第2
の索引テーブル内の異なる第2の索引キー値毎に少なく
とも1つの第1の索引エントリを有しかつ各第1の索引
エントリは第2の索引テーブルを識別する第2の索引識
別子、及び識別された第2の索引テーブル内の第2の索
引キー値に関する第1の索引キー値を有し、 挿入される索引エントリ内の第2の索引キーが既に第2
の索引テーブル内に存在するかどうかを判定し、もしそ
れが既に存在すればその索引エントリを第2の索引テー
ブルから削除し、さもなければ (1) その索引エントリを第2の索引テーブルに挿入する
ステップと、 (2) 第1の索引テーブルに、第2の索引キー値に関する
第1の索引キー値、及び第2の索引テーブルを識別する
第2の索引識別子を有する第1の索引エントリを挿入す
るステップとを実行するステップを含む方法。 - 【請求項8】非一意的な索引で索引エントリの削除を処
理する多層索引構造において第2の索引テーブルと第1
の索引テーブルの間の一貫性を維持する方法であって、
第2の索引テーブルは第2の索引識別子を有しかつ第2
の索引エントリを含み、第2の索引エントリの各々はデ
ータベース区画内の関連するオブジェクトを識別する識
別子、及び識別されたオブジェクトに関する第2の索引
キー値を有し、そして第1の索引テーブルは各第2の索
引テーブル内の異なる第2の索引キー値毎に少なくとも
1つの第1の索引エントリを有しかつ各第1の索引エン
トリは第2の索引テーブルを識別する第2の索引識別
子、及び識別された第2の索引テーブル内の第2の索引
キー値に関する第1の索引キー値を有し、 (a) 索引エントリを第2の索引テーブルから削除するス
テップと、 (b) 削除された索引エントリ内の第2の索引キー値がな
お第2の索引テーブル内に存在するかどうかを判定し、
もしそれがもはや存在しなければ、第1の索引テーブル
から、第2の索引キー値に関する第1の索引キー値、及
び第2の索引テーブルを識別する第2の索引識別子を有
する第1の索引エントリを削除するステップとを含む方
法。 - 【請求項9】区分されたデータベースのオブジェクトの
多層索引構造を生成する方法であって、 (a) データベースの区画毎に第2の索引テーブルを生成
し、第2の索引テーブルは対応するデータベースの区画
内の関連するオブジェクト毎に少なくとも1つの第2の
索引エントリを含み、第2の索引エントリは (1) 対応する区画内の関連するオブジェクトを識別する
オブジェクト識別子と、 (2) 識別された関連するオブジェクトに関する第2の索
引キーとを含み、かつ (b) 各第2の索引テーブル内の異なる第2の索引キー値
毎に少なくとも1つの一意的な第1の索引エントリを含
む第1の索引テーブルを生成し、第1の索引エントリは (1) 第2の索引テーブルを識別する第2の索引識別子
と、 (2) 識別された第2の索引テーブル内の第2の索引キー
値に関する第1の索引キー値とを含むステップを含む方
法。 - 【請求項10】区分されたデータベースコンピュータシ
ステムであって、 前記区分されたデータベースコンピュータシステム内の
情報を処理し、 (1) 少なくとも1つのデータベース区画と、 (2) 前記少なくとも1つのデータベースディスクから情
報を読取りかつ更新するデータベース管理手段と、 (3) (i) 区画毎に、対応する区画内の関連する各オブジ
ェクトの少なくとも1つの第2の索引エントリを有し、
かつ対応する区画内の関連するオブジェクトを識別する
オブジェクト識別子と、識別された関連するオブジェク
トに関する第2の索引キー値とを含む多層索引構造と(i
i) 各第2の索引テーブル内の異なる第2の索引キー値
毎に少なくとも1つの一意的な第1の索引エントリを有
し、かつ第2の索引テーブルを識別する第2の索引識別
子と、識別された第2の索引テーブル内の第2の索引キ
ー値に関する第1の索引キー値とを含む第1の索引テー
ブルを含む多層索引構造とを含むシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US149193A | 1993-01-07 | 1993-01-07 | |
US001491 | 1995-07-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07129450A true JPH07129450A (ja) | 1995-05-19 |
JP2583010B2 JP2583010B2 (ja) | 1997-02-19 |
Family
ID=21696291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5316885A Expired - Lifetime JP2583010B2 (ja) | 1993-01-07 | 1993-12-16 | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5551027A (ja) |
JP (1) | JP2583010B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772139A3 (en) * | 1995-11-01 | 1998-04-01 | FileTek, Inc. | Method and apparatus for segmenting a database |
JP2000259522A (ja) * | 1999-03-08 | 2000-09-22 | Nec Corp | ネットワーク管理システムおよび管理情報転送方法 |
JP2001229060A (ja) * | 2000-02-17 | 2001-08-24 | Nec Corp | ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 |
JP2007025735A (ja) * | 2005-07-12 | 2007-02-01 | Hitachi Ltd | データベース管理システムのインデックス運用方法 |
JP2007317138A (ja) * | 2006-05-29 | 2007-12-06 | Nomura Research Institute Ltd | データ記憶システム、ファイル検索装置およびプログラム |
JP2008108088A (ja) * | 2006-10-26 | 2008-05-08 | Chugoku Electric Power Co Inc:The | 情報管理システム |
CN100442282C (zh) * | 2005-08-16 | 2008-12-10 | 杭州华三通信技术有限公司 | 分布式系统中数据查询的方法及板间数据同步的方法 |
JP2016522928A (ja) * | 2013-05-07 | 2016-08-04 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散記憶システムにおけるセカンダリインデックスを確立するための方法、装置及びシステム |
Families Citing this family (356)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995009395A1 (en) | 1993-09-27 | 1995-04-06 | Oracle Corporation | Method and apparatus for parallel processing in a database system |
JP3023441B2 (ja) * | 1993-11-16 | 2000-03-21 | 株式会社日立製作所 | データベース分割管理方法および並列データベースシステム |
US7599910B1 (en) | 1993-11-16 | 2009-10-06 | Hitachi, Ltd. | Method and system of database divisional management for parallel database system |
US6101495A (en) * | 1994-11-16 | 2000-08-08 | Hitachi, Ltd. | Method of executing partition operations in a parallel database system |
US5671407A (en) * | 1994-12-07 | 1997-09-23 | Xerox Corporation | Application-specific conflict detection for weakly consistent replicated databases |
US5978577A (en) * | 1995-03-17 | 1999-11-02 | Csg Systems, Inc. | Method and apparatus for transaction processing in a distributed database system |
CA2150745C (en) * | 1995-06-01 | 2001-05-01 | Chaitanya K. Baru | Method and apparatus for implementing partial declustering in a parallel database system |
JP3140944B2 (ja) * | 1995-06-20 | 2001-03-05 | 松下電器産業株式会社 | 感性入力装置及びデータ検索装置 |
JPH0916607A (ja) * | 1995-06-26 | 1997-01-17 | Hitachi Ltd | データベース管理システムにおけるインデクス管理方法 |
US5960194A (en) * | 1995-09-11 | 1999-09-28 | International Business Machines Corporation | Method for generating a multi-tiered index for partitioned data |
US8732457B2 (en) * | 1995-10-02 | 2014-05-20 | Assa Abloy Ab | Scalable certificate validation and simplified PKI management |
US7716486B2 (en) | 1995-10-02 | 2010-05-11 | Corestreet, Ltd. | Controlling group access to doors |
US8015597B2 (en) | 1995-10-02 | 2011-09-06 | Corestreet, Ltd. | Disseminating additional data used for controlling access |
US6097811A (en) * | 1995-11-02 | 2000-08-01 | Micali; Silvio | Tree-based certificate revocation system |
US7600129B2 (en) | 1995-10-02 | 2009-10-06 | Corestreet, Ltd. | Controlling access using additional data |
US6487658B1 (en) | 1995-10-02 | 2002-11-26 | Corestreet Security, Ltd. | Efficient certificate revocation |
US7337315B2 (en) | 1995-10-02 | 2008-02-26 | Corestreet, Ltd. | Efficient certificate revocation |
US7660994B2 (en) * | 1995-10-24 | 2010-02-09 | Corestreet, Ltd. | Access control |
US7353396B2 (en) | 1995-10-02 | 2008-04-01 | Corestreet, Ltd. | Physical access control |
US6766450B2 (en) * | 1995-10-24 | 2004-07-20 | Corestreet, Ltd. | Certificate revocation system |
US7822989B2 (en) * | 1995-10-02 | 2010-10-26 | Corestreet, Ltd. | Controlling access to an area |
US8261319B2 (en) | 1995-10-24 | 2012-09-04 | Corestreet, Ltd. | Logging access attempts to an area |
US6301659B1 (en) | 1995-11-02 | 2001-10-09 | Silvio Micali | Tree-based certificate revocation system |
US5758345A (en) * | 1995-11-08 | 1998-05-26 | International Business Machines Corporation | Program and method for establishing a physical database layout on a distributed processor system |
US5978812A (en) * | 1995-11-10 | 1999-11-02 | Sony Corporation | Information processor and method of information processing |
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 |
US5740423A (en) * | 1995-12-28 | 1998-04-14 | Csg Systems, Inc. | System and method for accessing distributed data on a plurality of databases |
US5761659A (en) * | 1996-02-29 | 1998-06-02 | Sun Microsystems, Inc. | Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters |
US6016498A (en) * | 1996-03-04 | 2000-01-18 | Bakke; Stephen Peter | Object oriented architecture with bidirectional linking of relationships between objects |
US6105025A (en) * | 1996-03-08 | 2000-08-15 | Oracle Corporation | Method for using an index as a workspace for deferred enforcement of uniqueness constraints |
US5761652A (en) * | 1996-03-20 | 1998-06-02 | International Business Machines Corporation | Constructing balanced multidimensional range-based bitmap indices |
US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
US6574654B1 (en) | 1996-06-24 | 2003-06-03 | Oracle Corporation | Method and apparatus for lock caching |
US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
US5855013A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Method and apparatus for creating and maintaining a computer database utilizing a multi-purpose data format |
US6138123A (en) * | 1996-07-25 | 2000-10-24 | Rathbun; Kyle R. | Method for creating and using parallel data structures |
US5809502A (en) * | 1996-08-09 | 1998-09-15 | Digital Equipment Corporation | Object-oriented interface for an index |
US5832500A (en) * | 1996-08-09 | 1998-11-03 | Digital Equipment Corporation | Method for searching an index |
US5745894A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for generating and searching a range-based index of word-locations |
US5864863A (en) * | 1996-08-09 | 1999-01-26 | Digital Equipment Corporation | Method for parsing, indexing and searching world-wide-web pages |
US5852820A (en) * | 1996-08-09 | 1998-12-22 | Digital Equipment Corporation | Method for optimizing entries for searching an index |
US5745899A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing information of a database |
US5787435A (en) * | 1996-08-09 | 1998-07-28 | Digital Equipment Corporation | Method for mapping an index of a database into an array of files |
US5745900A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing duplicate database records using a full-record fingerprint |
US5745898A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for generating a compressed index of information of records of a database |
US5745890A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Sequential searching of a database index using constraints on word-location pairs |
US5765168A (en) * | 1996-08-09 | 1998-06-09 | Digital Equipment Corporation | Method for maintaining an index |
US5765158A (en) * | 1996-08-09 | 1998-06-09 | Digital Equipment Corporation | Method for sampling a compressed index to create a summarized index |
US5745889A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for parsing information of databases records using word-location pairs and metaword-location pairs |
US6009425A (en) * | 1996-08-21 | 1999-12-28 | International Business Machines Corporation | System and method for performing record deletions using index scans |
AUPO194696A0 (en) * | 1996-08-28 | 1996-09-19 | Canon Information Systems Research Australia Pty Ltd | A method of efficiently updating hashed page tables |
US6112278A (en) * | 1996-09-30 | 2000-08-29 | Lsi Logic Corporation | Method to store initiator information for SCSI data transfer |
US6754656B1 (en) * | 1996-10-22 | 2004-06-22 | International Business Machines Corporation | System and method for selective partition locking |
US7480653B2 (en) * | 1996-10-22 | 2009-01-20 | International Business Machines Corporation | System and method for selective partition locking |
US5852822A (en) * | 1996-12-09 | 1998-12-22 | Oracle Corporation | Index-only tables with nested group keys |
AP9901621A0 (en) * | 1997-01-13 | 1999-09-30 | John Overton | Automated system for image archiving. |
JP3499105B2 (ja) * | 1997-03-03 | 2004-02-23 | 株式会社東芝 | 情報検索方法および情報検索装置 |
US6604124B1 (en) * | 1997-03-13 | 2003-08-05 | A:\Scribes Corporation | Systems and methods for automatically managing work flow based on tracking job step completion status |
US5842208A (en) * | 1997-04-09 | 1998-11-24 | International Business Machines Corporation | High performance recover/build index system by unloading database files in parallel |
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 |
US6041384A (en) * | 1997-05-30 | 2000-03-21 | Oracle Corporation | Method for managing shared resources in a multiprocessing computer system |
US6092062A (en) * | 1997-06-30 | 2000-07-18 | International Business Machines Corporation | Relational database query optimization to perform query evaluation plan, pruning based on the partition properties |
US6081801A (en) * | 1997-06-30 | 2000-06-27 | International Business Machines Corporation | Shared nothing parallel execution of procedural constructs in SQL |
US6092061A (en) * | 1997-08-15 | 2000-07-18 | International Business Machines Corporation | Data partitioning by co-locating referenced and referencing records |
US6990458B2 (en) * | 1997-08-28 | 2006-01-24 | Csg Systems, Inc. | System and method for computer-aided technician dispatch and communication |
US5926809A (en) * | 1997-08-29 | 1999-07-20 | Advanced Micro Devices, Inc. | Two-tier query methodology for a database |
US6560682B1 (en) * | 1997-10-03 | 2003-05-06 | Intel Corporation | System and method for terminating lock-step sequences in a multiprocessor system |
US6356928B1 (en) | 1997-10-09 | 2002-03-12 | At&T Corp. | Method for partitioning tasks into stateless elements |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6240428B1 (en) * | 1997-10-31 | 2001-05-29 | Oracle Corporation | Import/export and repartitioning of partitioned objects |
US6134558A (en) * | 1997-10-31 | 2000-10-17 | Oracle Corporation | References that indicate where global database objects reside |
US6721752B1 (en) * | 1997-10-31 | 2004-04-13 | Electronic Data Systems Corporation | Computer-based system and method for inferring a four-digit calendar year from a date expressed in a format having a two-digit calendar year |
US6675173B1 (en) | 1998-01-22 | 2004-01-06 | Ori Software Development Ltd. | Database apparatus |
CA2319177A1 (en) * | 1998-01-22 | 1999-07-29 | Ori Software Development Ltd. | Database apparatus |
US6434271B1 (en) | 1998-02-06 | 2002-08-13 | Compaq Computer Corporation | Technique for locating objects within an image |
US6421462B1 (en) | 1998-02-06 | 2002-07-16 | Compaq Computer Corporation | Technique for differencing an image |
US6556708B1 (en) | 1998-02-06 | 2003-04-29 | Compaq Computer Corporation | Technique for classifying objects within an image |
US6400830B1 (en) | 1998-02-06 | 2002-06-04 | Compaq Computer Corporation | Technique for tracking objects through a series of images |
US6184858B1 (en) | 1998-02-06 | 2001-02-06 | Compaq Computer Corporation | Technique for updating a background image |
US6141434A (en) * | 1998-02-06 | 2000-10-31 | Christian; Andrew Dean | Technique for processing images |
US6240197B1 (en) | 1998-02-06 | 2001-05-29 | Compaq Computer Corporation | Technique for disambiguating proximate objects within an image |
US6043827A (en) * | 1998-02-06 | 2000-03-28 | Digital Equipment Corporation | Technique for acknowledging multiple objects using a computer generated face |
US6052132A (en) * | 1998-02-06 | 2000-04-18 | Digital Equipment Corporation | Technique for providing a computer generated face having coordinated eye and head movement |
US6003036A (en) * | 1998-02-12 | 1999-12-14 | Martin; Michael W. | Interval-partitioning method for multidimensional data |
US6792432B1 (en) * | 1998-03-31 | 2004-09-14 | Sybase, Inc. | Database system with methods providing high-concurrency access in B-Tree structures |
US6081624A (en) * | 1998-06-01 | 2000-06-27 | Autodesk, Inc. | Spatial index compression through spatial subdivision encoding |
US6249292B1 (en) | 1998-05-04 | 2001-06-19 | Compaq Computer Corporation | Technique for controlling a presentation of a computer generated object having a plurality of movable components |
US6163822A (en) * | 1998-05-04 | 2000-12-19 | Compaq Computer Corporation | Technique for controlling and processing a section of an interactive presentation simultaneously with detecting stimulus event in manner that overrides process |
US6247108B1 (en) * | 1998-06-03 | 2001-06-12 | Lucent Technologies Inc. | Memory management during processing of binary decision diagrams in a computer system |
US6216125B1 (en) * | 1998-07-02 | 2001-04-10 | At&T Corp. | Coarse indexes for a data warehouse |
US7103640B1 (en) * | 1999-09-14 | 2006-09-05 | Econnectix, Llc | Network distributed tracking wire transfer protocol |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
US6334134B1 (en) | 1998-08-18 | 2001-12-25 | International Business Machines Corporation | Insert performance on a multi-system transaction environment |
US6405198B1 (en) | 1998-09-04 | 2002-06-11 | International Business Machines Corporation | Complex data query support in a partitioned database system |
US6226650B1 (en) * | 1998-09-17 | 2001-05-01 | Synchrologic, Inc. | Database synchronization and organization system and method |
US6212515B1 (en) | 1998-11-03 | 2001-04-03 | Platinum Technology, Inc. | Method and apparatus for populating sparse matrix entries from corresponding data |
US6886012B1 (en) * | 1998-11-18 | 2005-04-26 | International Business Machines Corporation | Providing traditional update semantics when updates change the location of data records |
SE515578C2 (sv) | 1998-11-26 | 2001-09-03 | Ericsson Telefon Ab L M | Metod för lastreglering i en distribuerad databas |
US6349363B2 (en) * | 1998-12-08 | 2002-02-19 | Intel Corporation | Multi-section cache with different attributes for each section |
US6304873B1 (en) * | 1999-07-06 | 2001-10-16 | Compaq Computer Corporation | System and method for performing database operations and for skipping over tuples locked in an incompatible mode |
US6339772B1 (en) * | 1999-07-06 | 2002-01-15 | Compaq Computer Corporation | System and method for performing database operations on a continuous stream of tuples |
US6453313B1 (en) | 1999-07-06 | 2002-09-17 | Compaq Information Technologies Group, L.P. | Database management system and method for dequeuing rows published to a database table |
US6421677B1 (en) | 1999-07-19 | 2002-07-16 | International Business Machines Corporation | Extension of data definition language (DDL) capabilities for relational databases for applications issuing DDL statements |
US6453322B1 (en) | 1999-07-19 | 2002-09-17 | International Business Machines Corporation | Extension of data definition language (DDL) capabilities for relational databases for applications issuing multiple units of work |
US6480848B1 (en) | 1999-07-19 | 2002-11-12 | International Business Machines Corporation | Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements |
US6272498B1 (en) * | 1999-07-22 | 2001-08-07 | Lucent Technologies Inc. | Method for partitioning multi-dimensional data sets into rectangular partitions |
US6380947B1 (en) * | 1999-07-22 | 2002-04-30 | At&T Corp. | Method and apparatus for displaying and tree scrolling a hierarchical data structure |
US9977831B1 (en) | 1999-08-16 | 2018-05-22 | Dise Technologies, Llc | Targeting users' interests with a dynamic index and search engine server |
US8504554B2 (en) * | 1999-08-16 | 2013-08-06 | Raichur Revocable Trust, Arvind A. and Becky D. Raichur | Dynamic index and search engine server |
US7613992B1 (en) | 1999-08-16 | 2009-11-03 | Raichur Arvind A | Dynamic index and search engine server |
US9195756B1 (en) | 1999-08-16 | 2015-11-24 | Dise Technologies, Llc | Building a master topical index of information |
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
US6516337B1 (en) * | 1999-10-14 | 2003-02-04 | Arcessa, Inc. | Sending to a central indexing site meta data or signatures from objects on a computer network |
US6557111B1 (en) | 1999-11-29 | 2003-04-29 | Xerox Corporation | Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system |
US6772141B1 (en) | 1999-12-14 | 2004-08-03 | Novell, Inc. | Method and apparatus for organizing and using indexes utilizing a search decision table |
US6604093B1 (en) * | 1999-12-27 | 2003-08-05 | International Business Machines Corporation | Situation awareness system |
US6542883B1 (en) * | 2000-03-09 | 2003-04-01 | International Business Machines Corporation | Ordering relational database operations according to referential integrity constraints |
US6473763B1 (en) | 2000-03-31 | 2002-10-29 | International Business Machines Corporation | System, method and computer program for filtering multi-action rule set |
US20080005275A1 (en) * | 2000-06-02 | 2008-01-03 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
US7162499B2 (en) * | 2000-06-21 | 2007-01-09 | Microsoft Corporation | Linked value replication |
US7752100B1 (en) * | 2000-06-29 | 2010-07-06 | Terodata US, Inc. | Selector function for life-time value financial processing in a relational database management system |
US6523033B1 (en) * | 2000-07-13 | 2003-02-18 | International Business Machines Corporation | Apparatus and method for file locking for computer programs that use different size locks |
US6708161B2 (en) * | 2000-09-26 | 2004-03-16 | I2 Technologies Us, Inc. | System and method for selective database indexing |
US7299255B2 (en) | 2000-09-26 | 2007-11-20 | I2 Technologies Us, Inc. | System and method for migrating data in an electronic commerce system |
US20020111870A1 (en) * | 2000-09-26 | 2002-08-15 | I2 Technologies, Inc. | System and method for identifying a product |
US7590558B2 (en) * | 2000-09-26 | 2009-09-15 | I2 Technologies Us, Inc. | System and method for facilitating electronic commerce transactions |
US7689560B2 (en) | 2000-10-13 | 2010-03-30 | Miosoft Corporation | Persistent data storage techniques |
US7587428B2 (en) * | 2000-10-13 | 2009-09-08 | Microsoft Corporation | Maintaining a relationship between two different items of data |
US6654039B1 (en) | 2000-10-13 | 2003-11-25 | International Business Machines Corporation | Method, system and program for scrolling index scans |
US6748377B1 (en) | 2000-10-18 | 2004-06-08 | International Business Machines Corporation | Facilitating query pushdown in a multi-tiered database environment |
GB2369695B (en) * | 2000-11-30 | 2005-03-16 | Indigo One Technologies Ltd | Database |
US7512635B1 (en) * | 2000-12-18 | 2009-03-31 | Bmc Software, Inc. | System and method for updating information on a computer system using a limited amount of space |
US6934840B2 (en) * | 2000-12-21 | 2005-08-23 | International Business Machines Corporation | Composite keystore facility apparatus and method therefor |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
US6879564B2 (en) * | 2001-02-28 | 2005-04-12 | Microsoft Corp. | Method for designating communication paths in a network |
US6778977B1 (en) * | 2001-04-19 | 2004-08-17 | Microsoft Corporation | Method and system for creating a database table index using multiple processors |
US7349868B2 (en) | 2001-05-15 | 2008-03-25 | I2 Technologies Us, Inc. | Pre-qualifying sellers during the matching phase of an electronic commerce transaction |
US7475030B1 (en) | 2001-05-16 | 2009-01-06 | I2 Technologies Us, Inc. | Facilitating electronic commerce transactions using a shared product data repository |
US7263515B1 (en) | 2001-06-18 | 2007-08-28 | I2 Technologies Us, Inc. | Content enhancement in an electronic marketplace |
US6944615B2 (en) | 2001-06-28 | 2005-09-13 | International Business Machines Corporation | System and method for avoiding deadlock situations due to pseudo-deleted entries |
US7162453B1 (en) | 2001-06-29 | 2007-01-09 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
US7346560B1 (en) | 2001-06-29 | 2008-03-18 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
US6795821B2 (en) * | 2001-07-17 | 2004-09-21 | Trendium, Inc. | Database systems, methods and computer program products including primary key and super key indexes for use with partitioned tables |
US6725216B2 (en) | 2001-08-10 | 2004-04-20 | International Businesss Machines Corporation | Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules |
US7158994B1 (en) | 2001-09-28 | 2007-01-02 | Oracle International Corporation | Object-oriented materialized views |
US6792414B2 (en) * | 2001-10-19 | 2004-09-14 | Microsoft Corporation | Generalized keyword matching for keyword based searching over relational databases |
US6801904B2 (en) * | 2001-10-19 | 2004-10-05 | Microsoft Corporation | System for keyword based searching over relational databases |
JP4162184B2 (ja) * | 2001-11-14 | 2008-10-08 | 株式会社日立製作所 | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
US7035922B2 (en) * | 2001-11-27 | 2006-04-25 | Microsoft Corporation | Non-invasive latency monitoring in a store-and-forward replication system |
US20040205046A1 (en) * | 2001-11-29 | 2004-10-14 | International Business Machines Corporation | Indexing and retrieval of textual collections on PDAS |
US7185359B2 (en) * | 2001-12-21 | 2007-02-27 | Microsoft Corporation | Authentication and authorization across autonomous network systems |
US7031969B2 (en) * | 2002-02-20 | 2006-04-18 | Lawrence Technologies, Llc | System and method for identifying relationships between database records |
US7287033B2 (en) | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
US7412424B1 (en) | 2002-03-19 | 2008-08-12 | I2 Technologies Us, Inc. | Third party certification of content in electronic commerce transactions |
US7111020B1 (en) * | 2002-03-26 | 2006-09-19 | Oracle International Corporation | Incremental refresh of materialized views containing rank function, and rewrite of queries containing rank or rownumber or min/max aggregate functions using such a materialized view |
US7620664B2 (en) * | 2002-04-02 | 2009-11-17 | Mcgoveran David O | Computer-implemented method for translating among multiple representations and storage structures |
US7263512B2 (en) * | 2002-04-02 | 2007-08-28 | Mcgoveran David O | Accessing and updating views and relations in a relational database |
US8271530B2 (en) * | 2002-04-08 | 2012-09-18 | Oracale International Corporation | Method and mechanism for managing and accessing static and dynamic data |
US7280527B2 (en) * | 2002-05-13 | 2007-10-09 | International Business Machines Corporation | Logically grouping physical ports into logical interfaces to expand bandwidth |
US8463781B1 (en) * | 2002-06-25 | 2013-06-11 | Emc Corporation | Pre-fetch of records identified by an index record |
US7155437B2 (en) * | 2002-07-29 | 2006-12-26 | Inventec Appliances Corp. | Method for multiple configurations of wireless network connection settings |
US6807546B2 (en) * | 2002-08-12 | 2004-10-19 | Sybase, Inc. | Database system with methodology for distributing query optimization effort over large search spaces |
US6968335B2 (en) | 2002-11-14 | 2005-11-22 | Sesint, Inc. | Method and system for parallel processing of database queries |
US8676843B2 (en) * | 2002-11-14 | 2014-03-18 | LexiNexis Risk Data Management Inc. | Failure recovery in a parallel-processing database system |
US7185003B2 (en) * | 2002-11-14 | 2007-02-27 | Seisint, Inc. | Query scheduling in a parallel-processing database system |
US7240059B2 (en) * | 2002-11-14 | 2007-07-03 | Seisint, Inc. | System and method for configuring a parallel-processing database system |
US7945581B2 (en) * | 2002-11-14 | 2011-05-17 | Lexisnexis Risk Data Management, Inc. | Global-results processing matrix for processing queries |
US7293024B2 (en) * | 2002-11-14 | 2007-11-06 | Seisint, Inc. | Method for sorting and distributing data among a plurality of nodes |
US7293011B1 (en) | 2002-11-27 | 2007-11-06 | Oracle International Corporation | TQ distribution that increases parallism by distributing one slave to a particular data block |
US7188113B1 (en) | 2002-11-27 | 2007-03-06 | Oracle International Corporation | Reducing contention by slaves for free lists when modifying data in a table partition |
US7299239B1 (en) * | 2002-12-02 | 2007-11-20 | Oracle International Corporation | Methods for partitioning an object |
US7562090B2 (en) * | 2002-12-19 | 2009-07-14 | International Business Machines Corporation | System and method for automating data partitioning in a parallel database |
US7158996B2 (en) * | 2003-01-27 | 2007-01-02 | International Business Machines Corporation | Method, system, and program for managing database operations with respect to a database table |
US7146365B2 (en) | 2003-01-27 | 2006-12-05 | International Business Machines Corporation | Method, system, and program for optimizing database query execution |
US7403942B1 (en) | 2003-02-04 | 2008-07-22 | Seisint, Inc. | Method and system for processing data records |
US7657540B1 (en) | 2003-02-04 | 2010-02-02 | Seisint, Inc. | Method and system for linking and delinking data records |
US7912842B1 (en) | 2003-02-04 | 2011-03-22 | Lexisnexis Risk Data Management Inc. | Method and system for processing and linking data records |
US7720846B1 (en) | 2003-02-04 | 2010-05-18 | Lexisnexis Risk Data Management, Inc. | System and method of using ghost identifiers in a database |
US7469253B2 (en) * | 2003-04-01 | 2008-12-23 | Microsoft Corporation | Associative hash partitioning using pseudo-random number generator |
US7447786B2 (en) * | 2003-05-09 | 2008-11-04 | Oracle International Corporation | Efficient locking of shared data that is accessed for reads in a cluster database |
US7657751B2 (en) * | 2003-05-13 | 2010-02-02 | Corestreet, Ltd. | Efficient and secure data currentness systems |
US7311303B2 (en) * | 2003-07-25 | 2007-12-25 | Hewlett-Packard Development Company, L.P. | Apparatus and method for distributing print media |
US20050027692A1 (en) * | 2003-07-29 | 2005-02-03 | International Business Machines Corporation. | Method, system, and program for accessing data in a database table |
US6885930B2 (en) * | 2003-07-31 | 2005-04-26 | Siemens Energy & Automation, Inc. | System and method for slip slide control |
US7254580B1 (en) * | 2003-07-31 | 2007-08-07 | Google Inc. | System and method for selectively searching partitions of a database |
US20050102271A1 (en) * | 2003-08-01 | 2005-05-12 | Gavin Robertson | Indexes with embedded data |
US7440964B2 (en) | 2003-08-29 | 2008-10-21 | Vortaloptics, Inc. | Method, device and software for querying and presenting search results |
US8321400B2 (en) * | 2003-08-29 | 2012-11-27 | Vortaloptics, Inc. | Method, device and software for querying and presenting search results |
CA2537270C (en) * | 2003-08-29 | 2014-02-18 | Vortaloptics, Inc. | Method, device and software for querying and presenting search results |
US7761453B2 (en) * | 2005-01-26 | 2010-07-20 | Honeywell International Inc. | Method and system for indexing and searching an iris image database |
US8090157B2 (en) | 2005-01-26 | 2012-01-03 | Honeywell International Inc. | Approaches and apparatus for eye detection in a digital image |
US8442276B2 (en) | 2006-03-03 | 2013-05-14 | Honeywell International Inc. | Invariant radial iris segmentation |
US8064647B2 (en) * | 2006-03-03 | 2011-11-22 | Honeywell International Inc. | System for iris detection tracking and recognition at a distance |
US8098901B2 (en) | 2005-01-26 | 2012-01-17 | Honeywell International Inc. | Standoff iris recognition system |
US7593550B2 (en) | 2005-01-26 | 2009-09-22 | Honeywell International Inc. | Distance iris recognition |
US8705808B2 (en) * | 2003-09-05 | 2014-04-22 | Honeywell International Inc. | Combined face and iris recognition system |
CA2544273C (en) * | 2003-11-19 | 2015-01-13 | Corestreet, Ltd. | Distributed delegated path discovery and validation |
KR20060123470A (ko) * | 2004-01-09 | 2006-12-01 | 코아스트리트 리미티드 | OCSP 및 분산 OCSP를 위한 서명-효율적인RTC(Real Time Credentials) |
US20050210023A1 (en) * | 2004-03-18 | 2005-09-22 | Renato Barrera | Query optimizer using implied predicates |
US7890497B2 (en) | 2004-04-14 | 2011-02-15 | Oracle International Corporation | Using estimated cost to schedule an order for refreshing a set of materialized views (MVS) |
US7734602B2 (en) | 2004-04-14 | 2010-06-08 | Oracle International Corporation | Choosing whether to use a delayed index maintenance depending on the portion of the materialized view (MV) changed |
US8478742B2 (en) * | 2004-04-14 | 2013-07-02 | Oracle Corporation | Using estimated cost to refresh a set of materialized views (MVS) |
US8583657B2 (en) * | 2004-05-06 | 2013-11-12 | Oracle International Corporation | Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index |
US7921419B2 (en) * | 2004-05-12 | 2011-04-05 | Oracle International Corporation | Method and mechanism for managing incompatible changes in a distributed system |
US7778997B1 (en) | 2004-06-11 | 2010-08-17 | Seisint, Inc. | System and method for managing throughput in the processing of query requests in a database system |
US7873650B1 (en) * | 2004-06-11 | 2011-01-18 | Seisint, Inc. | System and method for distributing data in a parallel processing system |
US8266234B1 (en) * | 2004-06-11 | 2012-09-11 | Seisint, Inc. | System and method for enhancing system reliability using multiple channels and multicast |
US7739287B1 (en) | 2004-06-11 | 2010-06-15 | Seisint, Inc. | System and method for dynamically creating keys in a database system |
US7797333B1 (en) | 2004-06-11 | 2010-09-14 | Seisint, Inc. | System and method for returning results of a query from one or more slave nodes to one or more master nodes of a database system |
US7693826B1 (en) | 2004-06-11 | 2010-04-06 | Seisint, Inc. | System and method for pre-compiling a query and pre-keying a database system |
US7917495B1 (en) | 2004-06-11 | 2011-03-29 | Seisint, Inc. | System and method for processing query requests in a database system |
US7801911B1 (en) * | 2004-06-11 | 2010-09-21 | Seisint, Inc. | System and method for using activity identifications in a database system |
US7702627B2 (en) * | 2004-06-22 | 2010-04-20 | Oracle International Corporation | Efficient interaction among cost-based transformations |
US20050283471A1 (en) * | 2004-06-22 | 2005-12-22 | Oracle International Corporation | Multi-tier query processing |
US7707195B2 (en) * | 2004-06-29 | 2010-04-27 | Microsoft Corporation | Allocation locks and their use |
US7814042B2 (en) * | 2004-08-17 | 2010-10-12 | Oracle International Corporation | Selecting candidate queries |
US7205882B2 (en) * | 2004-11-10 | 2007-04-17 | Corestreet, Ltd. | Actuating a security system using a wireless device |
US7548903B2 (en) * | 2005-01-11 | 2009-06-16 | International Business Machines Corporation | Method and apparatus for automatic recommendation and selection of clustering indexes |
US7779008B2 (en) * | 2005-02-16 | 2010-08-17 | Oracle International Corporation | Parallel partition-wise aggregation |
US7509392B2 (en) * | 2005-03-24 | 2009-03-24 | International Business Machines Corporation | Creating and removing application server partitions in a server cluster based on client request contexts |
US7209990B2 (en) * | 2005-04-05 | 2007-04-24 | Oracle International Corporation | Maintain fairness of resource allocation in a multi-node environment |
JP4729987B2 (ja) * | 2005-06-02 | 2011-07-20 | 富士ゼロックス株式会社 | データ管理システム及びデータサーバ |
US7617189B2 (en) * | 2005-09-27 | 2009-11-10 | Oracle International Corporation | Parallel query processing techniques for minus and intersect operators |
US7877379B2 (en) * | 2005-09-30 | 2011-01-25 | Oracle International Corporation | Delaying evaluation of expensive expressions in a query |
KR100682670B1 (ko) * | 2005-11-02 | 2007-02-15 | 엘지전자 주식회사 | 힌지 구조 및 상기 힌지 구조를 사용한 스탠드 |
US20070156769A1 (en) * | 2005-12-01 | 2007-07-05 | Ncr Corporation | Partition elimination system for a database that uses a multi-level partitioning definition |
US8775974B2 (en) * | 2005-12-21 | 2014-07-08 | International Business Machines Corporation | Multi-contextual delta navigation in a compare view |
US7904759B2 (en) * | 2006-01-11 | 2011-03-08 | Amazon Technologies, Inc. | System and method for service availability management |
US8447829B1 (en) | 2006-02-10 | 2013-05-21 | Amazon Technologies, Inc. | System and method for controlling access to web services resources |
US7979460B2 (en) * | 2006-02-15 | 2011-07-12 | Sony Computer Entainment America Inc. | Systems and methods for server management |
JP2009529201A (ja) | 2006-03-03 | 2009-08-13 | ハネウェル・インターナショナル・インコーポレーテッド | 都合のよい符合化システム |
JP4738488B2 (ja) | 2006-03-03 | 2011-08-03 | ハネウェル・インターナショナル・インコーポレーテッド | 画像品質メトリックを有する虹彩認識システム |
WO2007101276A1 (en) | 2006-03-03 | 2007-09-07 | Honeywell International, Inc. | Single lens splitter camera |
JP2009529197A (ja) * | 2006-03-03 | 2009-08-13 | ハネウェル・インターナショナル・インコーポレーテッド | モジュールバイオメトリクス収集システムアーキテクチャ |
WO2007101275A1 (en) * | 2006-03-03 | 2007-09-07 | Honeywell International, Inc. | Camera with auto-focus capability |
US7979439B1 (en) * | 2006-03-14 | 2011-07-12 | Amazon Technologies, Inc. | Method and system for collecting and analyzing time-series data |
US8601112B1 (en) * | 2006-03-14 | 2013-12-03 | Amazon Technologies, Inc. | Method and system for collecting and analyzing time-series data |
US9037698B1 (en) | 2006-03-14 | 2015-05-19 | Amazon Technologies, Inc. | Method and system for collecting and analyzing time-series data |
US7945562B2 (en) * | 2006-03-15 | 2011-05-17 | Oracle International Corporation | Join predicate push-down optimizations |
US7809713B2 (en) * | 2006-03-15 | 2010-10-05 | Oracle International Corporation | Efficient search space analysis for join factorization |
US7644062B2 (en) * | 2006-03-15 | 2010-01-05 | Oracle International Corporation | Join factorization of union/union all queries |
US7945543B2 (en) * | 2006-03-30 | 2011-05-17 | International Business Machines Corporation | Method and system for deferred maintenance of database indexes |
US20070239663A1 (en) * | 2006-04-06 | 2007-10-11 | Clareos, Inc. | Parallel processing of count distinct values |
US7877373B2 (en) * | 2006-06-30 | 2011-01-25 | Oracle International Corporation | Executing alternative plans for a SQL statement |
US7801856B2 (en) * | 2006-08-09 | 2010-09-21 | Oracle International Corporation | Using XML for flexible replication of complex types |
WO2008034213A1 (en) * | 2006-09-18 | 2008-03-27 | Infobright Inc. | A method and system for data compression in a relational database |
US8266147B2 (en) * | 2006-09-18 | 2012-09-11 | Infobright, Inc. | Methods and systems for database organization |
US20080114735A1 (en) * | 2006-09-29 | 2008-05-15 | Peter Salemink | Systems and methods for managing information |
US7650371B2 (en) * | 2006-12-14 | 2010-01-19 | Microsoft Corporation | Finalizable object usage in software transactions |
US7830873B1 (en) * | 2007-01-09 | 2010-11-09 | Marvell Israel (M.I.S.L.) Ltd. | Implementation of distributed traffic rate limiters |
US7792822B2 (en) * | 2007-03-02 | 2010-09-07 | Microsoft Corporation | Systems and methods for modeling partitioned tables as logical indexes |
US8063889B2 (en) | 2007-04-25 | 2011-11-22 | Honeywell International Inc. | Biometric data collection system |
US8135688B2 (en) * | 2007-06-15 | 2012-03-13 | Oracle International Corporation | Partition/table allocation on demand |
US8209294B2 (en) * | 2007-06-15 | 2012-06-26 | Oracle International Corporation | Dynamic creation of database partitions |
US8396862B2 (en) * | 2007-07-30 | 2013-03-12 | Teradata Us, Inc. | Product join dynamic partition elimination for multilevel partitioning |
US7831590B2 (en) * | 2007-08-31 | 2010-11-09 | Teradata Us, Inc. | Techniques for partitioning indexes |
US8903801B2 (en) | 2007-09-14 | 2014-12-02 | Oracle International Corporation | Fully automated SQL tuning |
US8341178B2 (en) * | 2007-09-18 | 2012-12-25 | Oracle International Corporation | SQL performance analyzer |
US20090092283A1 (en) * | 2007-10-09 | 2009-04-09 | Honeywell International Inc. | Surveillance and monitoring system |
US8700608B2 (en) | 2007-10-17 | 2014-04-15 | Oracle International Corporation | SQL execution plan verification |
US8438152B2 (en) * | 2007-10-29 | 2013-05-07 | Oracle International Corporation | Techniques for bushy tree execution plans for snowstorm schema |
KR101407959B1 (ko) * | 2008-01-22 | 2014-06-20 | 삼성전자주식회사 | 볼 밸런서를 구비한 드럼 세탁기 및 그 제어방법 |
US20090210617A1 (en) * | 2008-02-19 | 2009-08-20 | Ibm Corporation | Multi-level volume table of contents |
US8266168B2 (en) | 2008-04-24 | 2012-09-11 | Lexisnexis Risk & Information Analytics Group Inc. | Database systems and methods for linking records and entity representations with sufficiently high confidence |
US8436907B2 (en) | 2008-05-09 | 2013-05-07 | Honeywell International Inc. | Heterogeneous video capturing system |
WO2009137967A1 (en) * | 2008-05-16 | 2009-11-19 | Shanghai Hewlett-Packard Co., Ltd | Provisioning a geographical image for retrieval |
US8290917B2 (en) * | 2008-06-02 | 2012-10-16 | Microsoft Corporation | Reordering of data elements in a data parallel system |
US8484211B2 (en) * | 2008-07-02 | 2013-07-09 | Lexisnexis Risk Solutions Fl Inc. | Batch entity representation identification using field match templates |
US9418107B2 (en) * | 2008-07-30 | 2016-08-16 | At&T Intellectual Property I, L.P. | Method and apparatus for performing query aware partitioning |
US8090246B2 (en) | 2008-08-08 | 2012-01-03 | Honeywell International Inc. | Image acquisition system |
US8280119B2 (en) * | 2008-12-05 | 2012-10-02 | Honeywell International Inc. | Iris recognition system using quality metrics |
US8135716B2 (en) * | 2008-12-10 | 2012-03-13 | Sap Ag | Systems and method for mapping large object data content in a database table to a work area |
CN104166673B (zh) | 2008-12-22 | 2017-09-19 | 谷歌公司 | 用于复制内容可寻址存储集群的异步分布式去重 |
US8472681B2 (en) | 2009-06-15 | 2013-06-25 | Honeywell International Inc. | Iris and ocular recognition system using trace transforms |
US8630464B2 (en) * | 2009-06-15 | 2014-01-14 | Honeywell International Inc. | Adaptive iris matching using database indexing |
US8224787B2 (en) * | 2009-07-23 | 2012-07-17 | Applied Minds, Llc | Redundant, multi-dimensional data partitioning: methods, program product and system |
US8756244B2 (en) * | 2009-07-29 | 2014-06-17 | Teradata Us, Inc. | Metadata as comments for search problem determination and analysis |
KR20120120159A (ko) * | 2009-12-04 | 2012-11-01 | 다카토시 야나세 | 표 검색 장치, 표 검색 방법, 및, 표 검색 시스템 |
US9411859B2 (en) | 2009-12-14 | 2016-08-09 | Lexisnexis Risk Solutions Fl Inc | External linking based on hierarchical level weightings |
US8930332B2 (en) * | 2010-03-12 | 2015-01-06 | Salesforce.Com, Inc. | Method and system for partitioning search indexes |
US9104674B1 (en) | 2010-04-14 | 2015-08-11 | Inmar, Inc. | System, method and computer program product for time sharing access control to data |
US8935248B2 (en) | 2010-05-17 | 2015-01-13 | United States Postal Service | Localized data affinity system and hybrid method |
US8417727B2 (en) | 2010-06-14 | 2013-04-09 | Infobright Inc. | System and method for storing data in a relational database |
US8521748B2 (en) | 2010-06-14 | 2013-08-27 | Infobright Inc. | System and method for managing metadata in a relational database |
US9189505B2 (en) | 2010-08-09 | 2015-11-17 | Lexisnexis Risk Data Management, Inc. | System of and method for entity representation splitting without the need for human interaction |
US8742887B2 (en) | 2010-09-03 | 2014-06-03 | Honeywell International Inc. | Biometric visitor check system |
US8412701B2 (en) * | 2010-09-27 | 2013-04-02 | Computer Associates Think, Inc. | Multi-dataset global index |
US9110938B2 (en) | 2010-10-18 | 2015-08-18 | International Business Machines Corporation | Parallelizing I/O processing of index insertions during insertion of data into a database |
GB2485551A (en) * | 2010-11-17 | 2012-05-23 | Index Layers Ltd | Federated database with a hierarchical index. |
US10713280B2 (en) | 2010-12-23 | 2020-07-14 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10346430B2 (en) | 2010-12-23 | 2019-07-09 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US10614098B2 (en) | 2010-12-23 | 2020-04-07 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US8572031B2 (en) | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
US9740762B2 (en) | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US10262050B2 (en) | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US9805108B2 (en) | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US10977277B2 (en) | 2010-12-23 | 2021-04-13 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US11544288B2 (en) | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10366100B2 (en) | 2012-07-26 | 2019-07-30 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11615115B2 (en) | 2010-12-23 | 2023-03-28 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US9881034B2 (en) | 2015-12-15 | 2018-01-30 | Mongodb, Inc. | Systems and methods for automating management of distributed databases |
US10740353B2 (en) | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10997211B2 (en) | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US8793287B2 (en) | 2011-05-27 | 2014-07-29 | Sap Ag | Equi-joins between split tables |
KR20130049111A (ko) * | 2011-11-03 | 2013-05-13 | 한국전자통신연구원 | 분산 처리를 이용한 포렌식 인덱스 방법 및 장치 |
CN102402623A (zh) * | 2011-12-28 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 面向嵌入式数据库系统的无日志事务处理方法 |
US8667010B2 (en) * | 2012-01-27 | 2014-03-04 | Microsfot Corporation | Database table partitioning allowing overlaps used in full text query |
US9396227B2 (en) * | 2012-03-29 | 2016-07-19 | Hewlett Packard Enterprise Development Lp | Controlled lock violation for data transactions |
US9639575B2 (en) * | 2012-03-30 | 2017-05-02 | Khalifa University Of Science, Technology And Research | Method and system for processing data queries |
US11544284B2 (en) | 2012-07-26 | 2023-01-03 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11403317B2 (en) | 2012-07-26 | 2022-08-02 | Mongodb, Inc. | Aggregation framework system architecture and method |
US10872095B2 (en) | 2012-07-26 | 2020-12-22 | Mongodb, Inc. | Aggregation framework system architecture and method |
US9612955B2 (en) * | 2013-01-09 | 2017-04-04 | Wisconsin Alumni Research Foundation | High-performance indexing for data-intensive systems |
US9069987B2 (en) * | 2013-06-21 | 2015-06-30 | International Business Machines Corporation | Secure data access using SQL query rewrites |
WO2015025401A1 (ja) | 2013-08-22 | 2015-02-26 | 株式会社日立製作所 | データベース管理システム及びデータベース管理方法 |
CN105960637B (zh) * | 2013-11-28 | 2020-09-11 | 英特尔公司 | 基于块的索引技术 |
US9870390B2 (en) | 2014-02-18 | 2018-01-16 | Oracle International Corporation | Selecting from OR-expansion states of a query |
US10146813B2 (en) * | 2014-07-03 | 2018-12-04 | DocConnects, LLC | Single table index relational database |
US10621064B2 (en) | 2014-07-07 | 2020-04-14 | Oracle International Corporation | Proactive impact measurement of database changes on production systems |
US9805080B2 (en) | 2014-08-22 | 2017-10-31 | Xcalar, Inc. | Data driven relational algorithm formation for execution against big data |
US10417301B2 (en) | 2014-09-10 | 2019-09-17 | Adobe Inc. | Analytics based on scalable hierarchical categorization of web content |
US10303796B2 (en) * | 2015-01-09 | 2019-05-28 | Ariba, Inc. | Updating distributed shards without compromising on consistency |
US10585887B2 (en) | 2015-03-30 | 2020-03-10 | Oracle International Corporation | Multi-system query execution plan |
US10846275B2 (en) * | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10496669B2 (en) | 2015-07-02 | 2019-12-03 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US10846411B2 (en) | 2015-09-25 | 2020-11-24 | Mongodb, Inc. | Distributed database systems and methods with encrypted storage engines |
US10673623B2 (en) | 2015-09-25 | 2020-06-02 | Mongodb, Inc. | Systems and methods for hierarchical key management in encrypted distributed databases |
US10394822B2 (en) | 2015-09-25 | 2019-08-27 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US10423626B2 (en) | 2015-09-25 | 2019-09-24 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US10929360B2 (en) * | 2015-10-19 | 2021-02-23 | Oracle International Corporation | Filtered partition maintenance operations |
CN105404679B (zh) * | 2015-11-24 | 2019-02-01 | 华为技术有限公司 | 数据处理方法和装置 |
US11210279B2 (en) * | 2016-04-15 | 2021-12-28 | Apple Inc. | Distributed offline indexing |
US10671496B2 (en) | 2016-05-31 | 2020-06-02 | Mongodb, Inc. | Method and apparatus for reading and writing committed data |
US10776220B2 (en) | 2016-06-27 | 2020-09-15 | Mongodb, Inc. | Systems and methods for monitoring distributed database deployments |
US10296235B2 (en) | 2016-06-27 | 2019-05-21 | International Business Machines Corporation | Partial volume reorganization to increase data availability |
EP4002149A1 (en) * | 2017-05-12 | 2022-05-25 | QlikTech International AB | Index machine |
US10866868B2 (en) | 2017-06-20 | 2020-12-15 | Mongodb, Inc. | Systems and methods for optimization of database operations |
US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
US9934287B1 (en) | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
US11106670B2 (en) * | 2017-09-27 | 2021-08-31 | Sap Se | Local identifiers for database objects |
US11386058B2 (en) | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
US10747814B2 (en) * | 2017-09-29 | 2020-08-18 | Oracle International Corporation | Handling semi-structured and unstructured data in a sharded database environment |
US11327932B2 (en) | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
CN111868708A (zh) * | 2018-01-22 | 2020-10-30 | 艾瑞星食品公司 | 用于提供食品相关信息的系统和方法 |
US11120046B2 (en) | 2018-05-04 | 2021-09-14 | Microsoft Technology Licensing Llc | Data replication in a distributed storage system |
US10817197B2 (en) | 2018-05-04 | 2020-10-27 | Microsoft Technology Licensing, Llc | Data partitioning in a distributed storage system |
US10725686B2 (en) | 2018-09-28 | 2020-07-28 | Burlywood, Inc. | Write stream separation into multiple partitions |
US11157478B2 (en) | 2018-12-28 | 2021-10-26 | Oracle International Corporation | Technique of comprehensively support autonomous JSON document object (AJD) cloud service |
EP3767486B1 (en) | 2019-07-19 | 2023-03-22 | Microsoft Technology Licensing, LLC | Multi-record index structure for key-value stores |
US11321294B2 (en) * | 2019-09-09 | 2022-05-03 | Salesforce.Com, Inc. | Database index repair |
US11636081B2 (en) | 2019-11-20 | 2023-04-25 | International Business Machines Corporation | Dynamic index management for computing storage resources |
CN113239013B (zh) * | 2021-05-17 | 2024-04-09 | 北京青云科技股份有限公司 | 分布式系统及存储介质 |
US20220405263A1 (en) * | 2021-06-21 | 2022-12-22 | International Business Machines Corporation | Increasing Index Availability in Databases |
KR20230135257A (ko) * | 2022-03-16 | 2023-09-25 | 주식회사 티맥스티베로 | 상이한 파티션 정보를 갖는 테이블들을 쿼리하기 위한 방법 |
Family Cites Families (17)
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 |
US4811199A (en) * | 1987-05-08 | 1989-03-07 | Kuechler William L | System for storing and manipulating information in an information base |
US5058002A (en) * | 1987-06-23 | 1991-10-15 | Mitsubishi Denki Kabushiki Kaisha | Page splitting method and apparatus for a database stored in a plurality of memory storage units |
US4914569A (en) * | 1987-10-30 | 1990-04-03 | International Business Machines Corporation | Method for concurrent record access, insertion, deletion and alteration using an index tree |
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US4961139A (en) * | 1988-06-30 | 1990-10-02 | Hewlett-Packard Company | Data base management system for real-time applications |
US4961134A (en) * | 1988-07-15 | 1990-10-02 | International Business Machines Corporation | Method for minimizing locking and reading in a segmented storage space |
US4933848A (en) * | 1988-07-15 | 1990-06-12 | International Business Machines Corporation | Method for enforcing referential constraints in a database management system |
US4937760A (en) * | 1988-09-19 | 1990-06-26 | International Business Machines Corporation | Method for sharing common values implicitly among communicating generative objects |
US5093911A (en) * | 1989-09-14 | 1992-03-03 | International Business Machines Corporation | Storage and retrieval system |
US5247672A (en) * | 1990-02-15 | 1993-09-21 | International Business Machines Corporation | Transaction processing system and method with reduced locking |
US5257365A (en) * | 1990-03-16 | 1993-10-26 | Powers Frederick A | Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records |
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 |
US5301286A (en) * | 1991-01-02 | 1994-04-05 | At&T Bell Laboratories | Memory archiving indexing arrangement |
US5293616A (en) * | 1991-10-22 | 1994-03-08 | Flint Orin O | Method and apparatus for representing and interrogating an index in a digital memory |
US5499359A (en) * | 1994-01-18 | 1996-03-12 | Borland International, Inc. | Methods for improved referential integrity in a relational database management system |
US5511190A (en) * | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
-
1993
- 1993-12-16 JP JP5316885A patent/JP2583010B2/ja not_active Expired - Lifetime
-
1995
- 1995-09-11 US US08/526,723 patent/US5551027A/en not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772139A3 (en) * | 1995-11-01 | 1998-04-01 | FileTek, Inc. | Method and apparatus for segmenting a database |
US6049804A (en) * | 1995-11-01 | 2000-04-11 | Filetek, Inc. | Method and apparatus for segmenting a database |
JP2000259522A (ja) * | 1999-03-08 | 2000-09-22 | Nec Corp | ネットワーク管理システムおよび管理情報転送方法 |
JP2001229060A (ja) * | 2000-02-17 | 2001-08-24 | Nec Corp | ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 |
JP2007025735A (ja) * | 2005-07-12 | 2007-02-01 | Hitachi Ltd | データベース管理システムのインデックス運用方法 |
CN100442282C (zh) * | 2005-08-16 | 2008-12-10 | 杭州华三通信技术有限公司 | 分布式系统中数据查询的方法及板间数据同步的方法 |
JP2007317138A (ja) * | 2006-05-29 | 2007-12-06 | Nomura Research Institute Ltd | データ記憶システム、ファイル検索装置およびプログラム |
JP2008108088A (ja) * | 2006-10-26 | 2008-05-08 | Chugoku Electric Power Co Inc:The | 情報管理システム |
JP2016522928A (ja) * | 2013-05-07 | 2016-08-04 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散記憶システムにおけるセカンダリインデックスを確立するための方法、装置及びシステム |
Also Published As
Publication number | Publication date |
---|---|
JP2583010B2 (ja) | 1997-02-19 |
US5551027A (en) | 1996-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2583010B2 (ja) | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 | |
US5960194A (en) | Method for generating a multi-tiered index for partitioned data | |
Olken et al. | Random sampling from databases: a survey | |
DeWitt et al. | Implementation techniques for main memory database systems | |
JP3945771B2 (ja) | データベース・システム | |
Idreos et al. | Updating a cracked database | |
Lu et al. | T-tree or b-tree: Main memory database index structure revisited | |
Kornacker et al. | High-concurrency locking in R-trees | |
US7765211B2 (en) | System and method for space management of multidimensionally clustered tables | |
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 | |
US5560007A (en) | B-tree key-range bit map index optimization of database queries | |
EP2471013B1 (en) | Continuous full scan data store table and distributed data store featuring predictable answer time for unpredictable workload | |
JPH04337850A (ja) | データベース・トランザクション及び照会処理システム | |
Taniar et al. | A taxonomy of indexing schemes for parallel database systems | |
Graefe et al. | Transactional support for adaptive indexing | |
US6647386B2 (en) | Method, system, and program for reverse index scanning | |
US7080072B1 (en) | Row hash match scan in a partitioned database system | |
US6944633B1 (en) | Performing a join in a partitioned database system | |
US7136861B1 (en) | Method and system for multiple function database indexing | |
Taniar et al. | Global parallel index for multi-processors database systems | |
Christodoulou et al. | HINT: a hierarchical interval index for Allen relationships | |
Graefe | Executing nested queries | |
Skidanov et al. | A column store engine for real-time streaming analytics | |
Srinivasan et al. | On-line index construction algorithms | |
Kuno et al. | Deferred maintenance of indexes and of materialized views |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |