JP2583010B2 - 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 - Google Patents
多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法Info
- Publication number
- JP2583010B2 JP2583010B2 JP5316885A JP31688593A JP2583010B2 JP 2583010 B2 JP2583010 B2 JP 2583010B2 JP 5316885 A JP5316885 A JP 5316885A JP 31688593 A JP31688593 A JP 31688593A JP 2583010 B2 JP2583010 B2 JP 2583010B2
- Authority
- JP
- Japan
- Prior art keywords
- index
- local
- global
- entry
- key value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 73
- 238000005192 partition Methods 0.000 claims description 131
- 238000003780 insertion Methods 0.000 claims description 38
- 230000037431 insertion Effects 0.000 claims description 38
- 238000012217 deletion Methods 0.000 claims description 23
- 230000037430 deletion Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 description 22
- 238000003860 storage Methods 0.000 description 19
- 238000012423 maintenance Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 11
- 238000001824 photoionisation detection Methods 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 9
- 238000000638 solvent extraction Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008450 motivation Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation 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
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 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
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011867 re-evaluation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation 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
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】区画化されたデータの場合、個々のテーブ
ル区画毎に別個にローカルインデックスと呼ばれるイン
デックスが維持される。複数の区画に存在するデータを
参照する単一のインデックスが維持されない場合、これ
は関連アクセス効率問題に対するローカルインデックス
のみの解法として知られている。ローカルインデックス
のみの解法は区画化されたデータに対するインデックス
機能を提供する簡単な方法である。この解法では、ロー
カルインデックスは前述のインデックステーブルに類似
のテーブル又はリストでもよい。
ル区画毎に別個にローカルインデックスと呼ばれるイン
デックスが維持される。複数の区画に存在するデータを
参照する単一のインデックスが維持されない場合、これ
は関連アクセス効率問題に対するローカルインデックス
のみの解法として知られている。ローカルインデックス
のみの解法は区画化されたデータに対するインデックス
機能を提供する簡単な方法である。この解法では、ロー
カルインデックスは前述のインデックステーブルに類似
のテーブル又はリストでもよい。
【0011】ローカルインデックスのみの解法の簡明さ
には非常に大きいデータベースでは致命的な厳しい性能
上のペナルティが付随している。各区画サイトにはロー
カルインデックスのみが存在するから、大抵のアクセス
要求は処理のため全ての区画に同報通信される。各ノー
ドはそのテーブルを検査し所望のレコード情報が当該ノ
ードに存在するかどうかを調べなければならない。ロー
カルインデックスのみの解法も大部分のアクセス要求を
正しく評価するためにテーブルの全区画が使用できるこ
とを必要とする。複数のノードを有するシステムにわた
り、貴重な処理資源が無用な活動により消費されること
がある。
には非常に大きいデータベースでは致命的な厳しい性能
上のペナルティが付随している。各区画サイトにはロー
カルインデックスのみが存在するから、大抵のアクセス
要求は処理のため全ての区画に同報通信される。各ノー
ドはそのテーブルを検査し所望のレコード情報が当該ノ
ードに存在するかどうかを調べなければならない。ロー
カルインデックスのみの解法も大部分のアクセス要求を
正しく評価するためにテーブルの全区画が使用できるこ
とを必要とする。複数のノードを有するシステムにわた
り、貴重な処理資源が無用な活動により消費されること
がある。
【0012】処理資源を消費するのはユーザだけではな
い。各サイトに送られたアクセス要求は必ずしもユーザ
が明白に指定したものだけとは限らない。高いレベルの
ユーザ要求を処理し評価する際にデータベース管理シス
テムにより生成された低いレベルの要求があるかも知れ
ない。複数の記憶サイトにわたる参照の完全性を維持す
る一定のデータベース拘束を強制するシステム要求もあ
るかも知れない。加えて、アクセス要求はキーの一意性
を強制する特定のキー値の存在の検査のような全オブジ
ェクトに関する一定の情報を得る必要があるかも知れな
い。更に、次の命令セットに着手する前に全てのローカ
ルノードがそれらのそれぞれの動作を終了するまで待つ
時間のために照会応答時間が延長される。複数の区画に
わたる多くの情報がアクセスされる照会時間の延長はか
なりの性能低下をもたらす。性能の影響はテーブルを構
成する区画の数とともに急速に増すことがある。その結
果、データベースワークロードがかなり増加するのでシ
ステム効率スループットが低下し、このようなシステム
はユーザには動作が鈍いものに見える。
い。各サイトに送られたアクセス要求は必ずしもユーザ
が明白に指定したものだけとは限らない。高いレベルの
ユーザ要求を処理し評価する際にデータベース管理シス
テムにより生成された低いレベルの要求があるかも知れ
ない。複数の記憶サイトにわたる参照の完全性を維持す
る一定のデータベース拘束を強制するシステム要求もあ
るかも知れない。加えて、アクセス要求はキーの一意性
を強制する特定のキー値の存在の検査のような全オブジ
ェクトに関する一定の情報を得る必要があるかも知れな
い。更に、次の命令セットに着手する前に全てのローカ
ルノードがそれらのそれぞれの動作を終了するまで待つ
時間のために照会応答時間が延長される。複数の区画に
わたる多くの情報がアクセスされる照会時間の延長はか
なりの性能低下をもたらす。性能の影響はテーブルを構
成する区画の数とともに急速に増すことがある。その結
果、データベースワークロードがかなり増加するのでシ
ステム効率スループットが低下し、このようなシステム
はユーザには動作が鈍いものに見える。
【0013】無用な活動のために、ローカルインデック
スのみの解法は関連探索には評価できる解法ではない。
すなわち、テーブルの区画の数が急激に増加し始めると
ローカルインデックスのみの解法の良好な実行は続かな
い。
スのみの解法は関連探索には評価できる解法ではない。
すなわち、テーブルの区画の数が急激に増加し始めると
ローカルインデックスのみの解法の良好な実行は続かな
い。
【0014】区画化されたデータに更に効率的なインデ
ックス支援を提供するために、インデックスされるテー
ブルの全ての区画をカバーするインデックスである完全
大域インデックスが利用できる。完全大域インデックス
はテーブル内の関連するオブジェクト毎に少なくとも1
つのエントリを含むので、全テーブル内の関連する全て
のオブジェクトと1対1の関係を有する。大域インデック
スの1つの方法は主キー法と呼ばれる。ここで、大域イ
ンデックスは形式 (インデックスキー、主キー) を有す
るエントリのリストとして維持され、主キーは区画キー
である。この場合、各データレコードはユーザ提供の主
キー値により全ての区画にわたり一意的に識別される。
目標区画の区画識別子(PID) は区画基準に関連した主キ
ー値を用いて決定できる。レコードは主キーのみを用い
てそれらを検索できるように記憶されなければならない
ので、これは主キーに集合するローカルインデックスが
維持され、主キーを集合キー値とするデータベース設計
につながる。1つの方法はインデックスのツリーにレコ
ード自身を記憶し、できればレコードをアクセスする余
分な入出力動作を避けることである。
ックス支援を提供するために、インデックスされるテー
ブルの全ての区画をカバーするインデックスである完全
大域インデックスが利用できる。完全大域インデックス
はテーブル内の関連するオブジェクト毎に少なくとも1
つのエントリを含むので、全テーブル内の関連する全て
のオブジェクトと1対1の関係を有する。大域インデック
スの1つの方法は主キー法と呼ばれる。ここで、大域イ
ンデックスは形式 (インデックスキー、主キー) を有す
るエントリのリストとして維持され、主キーは区画キー
である。この場合、各データレコードはユーザ提供の主
キー値により全ての区画にわたり一意的に識別される。
目標区画の区画識別子(PID) は区画基準に関連した主キ
ー値を用いて決定できる。レコードは主キーのみを用い
てそれらを検索できるように記憶されなければならない
ので、これは主キーに集合するローカルインデックスが
維持され、主キーを集合キー値とするデータベース設計
につながる。1つの方法はインデックスのツリーにレコ
ード自身を記憶し、できればレコードをアクセスする余
分な入出力動作を避けることである。
【0015】主キー法の代替法として、大域インデック
スエントリが (インデックスキー、区画キー) の形式を
とる区画キー法がある。区画キーは主キーではない。そ
の他の点では、この方法は前述の主キー法と同じであ
る。区画キーは一意的でなければならない。さもなけれ
ば、正しいデータ検索を保証するために、インデックス
キーに付加された選択属性が、検索されたレコードに再
付加されなければならない。これは区画キーに集合する
ローカルインデックスが維持され且つ区画キー値を集合
キー値とするデータベース設計にしばしばつながる。大
域インデックスは関連する区画にのみアクセス要求を再
指向することを可能にし且つ大域的に使用できるインデ
ックスキー情報を迅速に供給することによりユーザの照
会を評価する効率を改善する。しかしながら、大域イン
デックスは、特に各区画が別個のデータベース記憶サイ
トに記憶される構成で、インデックステーブルとデータ
レコードの間の一貫性を保証するデータベース管理シス
テムの費用であるインデックス管理費用を増す欠点を有
する。
スエントリが (インデックスキー、区画キー) の形式を
とる区画キー法がある。区画キーは主キーではない。そ
の他の点では、この方法は前述の主キー法と同じであ
る。区画キーは一意的でなければならない。さもなけれ
ば、正しいデータ検索を保証するために、インデックス
キーに付加された選択属性が、検索されたレコードに再
付加されなければならない。これは区画キーに集合する
ローカルインデックスが維持され且つ区画キー値を集合
キー値とするデータベース設計にしばしばつながる。大
域インデックスは関連する区画にのみアクセス要求を再
指向することを可能にし且つ大域的に使用できるインデ
ックスキー情報を迅速に供給することによりユーザの照
会を評価する効率を改善する。しかしながら、大域イン
デックスは、特に各区画が別個のデータベース記憶サイ
トに記憶される構成で、インデックステーブルとデータ
レコードの間の一貫性を保証するデータベース管理シス
テムの費用であるインデックス管理費用を増す欠点を有
する。
【0016】本発明の背景の理解に適切と思われる他の
論文として下記のものがある。 Levine et al., "Method For Concurrent Record Acces
s, Inspection, Deletion and Alteration Using An In
dex Tree", US Patent No. 4,914,569, (April3, 199
0): インデックスツリーを通じたキーレコードの少な
くとも一部分により、レコードキーのグループ内のキー
レコードデータを取出し、異なるトランザクションによ
りレコードキーの同時アクセスを可能にする方法が開示
されている。 Mohan, "ARIES/KVL: A Key-Value Locking Method for
Concurrency Controlof Multiaction Transactions Ope
rating on B-Tree Indexes", Proceedings ofVLDB, Aug
ust 1990: インデックスキー値ロッキングと次のキーロ
ッキングを介したロック状態反復とが論述されている。 Mohan and levine, "ARIES/IM: An Efficient and High
Concurrent Index Management Method Using Write-Ah
ead Logging", Proceedings SIGMOD Conference, June
1992: コミットされない最初のインスタンスのインデッ
クスエントリロッキング及び左側伝播が論述されてい
る。 Mohan, "COMMIT_LSN: A Novel and Simple Method for
Reducing Locking andLatching in Transaction Proces
sing Systems", Proceedings of VLDB, August 1990: C
OMMIT_LSNの着想が論述されている。 Mohan, Haderle, Wang, and Cheng, "Single Table Acc
ess Using Multiple Indexes: Optimization, Executio
n and Concurrency Control Techniques", Proceedings
2nd International Conference on Extending Databas
e Technology,Italy, March 1990: インデックス論理積
/論理和及び属性の再評価が論述されている。
論文として下記のものがある。 Levine et al., "Method For Concurrent Record Acces
s, Inspection, Deletion and Alteration Using An In
dex Tree", US Patent No. 4,914,569, (April3, 199
0): インデックスツリーを通じたキーレコードの少な
くとも一部分により、レコードキーのグループ内のキー
レコードデータを取出し、異なるトランザクションによ
りレコードキーの同時アクセスを可能にする方法が開示
されている。 Mohan, "ARIES/KVL: A Key-Value Locking Method for
Concurrency Controlof Multiaction Transactions Ope
rating on B-Tree Indexes", Proceedings ofVLDB, Aug
ust 1990: インデックスキー値ロッキングと次のキーロ
ッキングを介したロック状態反復とが論述されている。 Mohan and levine, "ARIES/IM: An Efficient and High
Concurrent Index Management Method Using Write-Ah
ead Logging", Proceedings SIGMOD Conference, June
1992: コミットされない最初のインスタンスのインデッ
クスエントリロッキング及び左側伝播が論述されてい
る。 Mohan, "COMMIT_LSN: A Novel and Simple Method for
Reducing Locking andLatching in Transaction Proces
sing Systems", Proceedings of VLDB, August 1990: C
OMMIT_LSNの着想が論述されている。 Mohan, Haderle, Wang, and Cheng, "Single Table Acc
ess Using Multiple Indexes: Optimization, Executio
n and Concurrency Control Techniques", Proceedings
2nd International Conference on Extending Databas
e Technology,Italy, March 1990: インデックス論理積
/論理和及び属性の再評価が論述されている。
【0017】
【発明が解決しようとする課題】本発明の第1の目的
は、複雑な照会評価及びインデックス維持を高めるため
にローカルインデックスエントリが同じノードにある対
応する区画と同じ場所に配置された場合に各区画の大ま
か大域インデックス及びローカルインデックスを有する
区画化されたデータに対する多層インデックス法を提供
することにある。
は、複雑な照会評価及びインデックス維持を高めるため
にローカルインデックスエントリが同じノードにある対
応する区画と同じ場所に配置された場合に各区画の大ま
か大域インデックス及びローカルインデックスを有する
区画化されたデータに対する多層インデックス法を提供
することにある。
【0018】本発明の第2の目的は、異なるトランザク
ションによる同時インデックスアクセスが最大化される
ようにローカルインデックスと大まか大域インデックス
の間の一貫性を保証するインデックス管理の方法を提供
することにある。
ションによる同時インデックスアクセスが最大化される
ようにローカルインデックスと大まか大域インデックス
の間の一貫性を保証するインデックス管理の方法を提供
することにある。
【0019】本発明の第3の目的は、挿入又は削除され
たキー及びたぶん前記挿入又は削除されたキーに先行す
るキーの場合にのみロッキングを最小化する一意的及び
非一意的のローカルインデックス方式のロッキングプロ
トコルを有するインデックス管理法を提供し、同時に存
在する読取装置、挿入装置及び削除装置の間に非常に高
い同時性を可能にすることにある。
たキー及びたぶん前記挿入又は削除されたキーに先行す
るキーの場合にのみロッキングを最小化する一意的及び
非一意的のローカルインデックス方式のロッキングプロ
トコルを有するインデックス管理法を提供し、同時に存
在する読取装置、挿入装置及び削除装置の間に非常に高
い同時性を可能にすることにある。
【0020】本発明の第4の目的は、インデックスキー
の高度の区画選択探索属性を有するアクセス要求を迅速
且つ容易に目標区画に指向し処理できるように、個々の
インデックスキー値をそれらの目標区画と関連づける大
まか大域インデックスを提供することにある。
の高度の区画選択探索属性を有するアクセス要求を迅速
且つ容易に目標区画に指向し処理できるように、個々の
インデックスキー値をそれらの目標区画と関連づける大
まか大域インデックスを提供することにある。
【0021】
【課題を解決するための手段】本発明の実施例に従って
前記目的を達成するために、区画化されたデータに対す
る分散データベース多層インデックス方式はテーブルの
区画毎にローカルインデックスを生成・維持し、更に大
まか大域インデックスが生成・維持される。大まか大域
インデックスは区画識別子(PID) によりインデックス区
画を識別する。インデックス維持アルゴリズムは、イン
デックスの挿入及び削除を簡単かつ効率的に扱うロッキ
ングプロトコルにより、異なるトランザクションによる
同時インデックスアクセス中のローカルインデックスエ
ントリ及び大まか大域インデックスエントリの間の一貫
性を保証する。実際に大まか大域インデックス更新動作
が必要かどうかを正しく判定するために対応するローカ
ルインデックス動作の実行に必要な全てのロックが終了
して初めて、大まか大域インデックスで実行する必要が
ある挿入及び削除動作を開始することができる。
前記目的を達成するために、区画化されたデータに対す
る分散データベース多層インデックス方式はテーブルの
区画毎にローカルインデックスを生成・維持し、更に大
まか大域インデックスが生成・維持される。大まか大域
インデックスは区画識別子(PID) によりインデックス区
画を識別する。インデックス維持アルゴリズムは、イン
デックスの挿入及び削除を簡単かつ効率的に扱うロッキ
ングプロトコルにより、異なるトランザクションによる
同時インデックスアクセス中のローカルインデックスエ
ントリ及び大まか大域インデックスエントリの間の一貫
性を保証する。実際に大まか大域インデックス更新動作
が必要かどうかを正しく判定するために対応するローカ
ルインデックス動作の実行に必要な全てのロックが終了
して初めて、大まか大域インデックスで実行する必要が
ある挿入及び削除動作を開始することができる。
【0022】本発明により提供される区画化されたデー
タに対する多層インデックスの第1の利点は、各区画を
それ自身のアクセス法を含む別個のデータモジュールと
してパッケージできるように個々の区画のローカルイン
デックスを維持することにより除去/移動可能なデータ
ベース装置を提供し、そして、データベースネットワー
ク故障の場合にもローカルインデックスが使用できるの
でデータベースのオブジェクト区画がローカル照会の評
価にも使用でき、全ローカルデータの使用可能度を増す
ことである。
タに対する多層インデックスの第1の利点は、各区画を
それ自身のアクセス法を含む別個のデータモジュールと
してパッケージできるように個々の区画のローカルイン
デックスを維持することにより除去/移動可能なデータ
ベース装置を提供し、そして、データベースネットワー
ク故障の場合にもローカルインデックスが使用できるの
でデータベースのオブジェクト区画がローカル照会の評
価にも使用でき、全ローカルデータの使用可能度を増す
ことである。
【0023】本発明により提供される区画化されたデー
タに対する多層インデックスの第2の利点は、データベ
ースシステムでレコードの全てのインデックスエントリ
をそのレコードと同じノードに保持することによりデー
タ集中検索を行うのでプロセッサ間通信を少なくすると
同時にデータページの非同期的プリフェッチング及びロ
ーカルインデックス動作を可能にし、ローカルノードが
より確実に処理を実行し、並行動作を最大化するととも
にノード不均一及び自主性に適応し促進することであ
る。
タに対する多層インデックスの第2の利点は、データベ
ースシステムでレコードの全てのインデックスエントリ
をそのレコードと同じノードに保持することによりデー
タ集中検索を行うのでプロセッサ間通信を少なくすると
同時にデータページの非同期的プリフェッチング及びロ
ーカルインデックス動作を可能にし、ローカルノードが
より確実に処理を実行し、並行動作を最大化するととも
にノード不均一及び自主性に適応し促進することであ
る。
【0024】本発明の第3の利点は、もし特定のインデ
ックスキーが区画選択でなければ、大まか大域インデッ
クスなしにローカルインデックスのみを用いるオプショ
ンをデータベース設計者に提供するので当該特定のキー
に関する情報の維持が不要となり、データベース設計の
柔軟性を高め且つデータベース最適化の機会を増すこと
である。
ックスキーが区画選択でなければ、大まか大域インデッ
クスなしにローカルインデックスのみを用いるオプショ
ンをデータベース設計者に提供するので当該特定のキー
に関する情報の維持が不要となり、データベース設計の
柔軟性を高め且つデータベース最適化の機会を増すこと
である。
【0025】本発明により提供される区画化されたデー
タに対する多層インデックスの第4の利点は、複数のア
クセス法を有するデータベースシステムに転送できるよ
うに、データが区画化されなかったかのように各区画内
の各要求を迅速に評価することである。
タに対する多層インデックスの第4の利点は、複数のア
クセス法を有するデータベースシステムに転送できるよ
うに、データが区画化されなかったかのように各区画内
の各要求を迅速に評価することである。
【0026】本発明により提供される区画化されたデー
タに対する多層インデックスの第5の利点は、種々のデ
ータ区画化方式と互換性があり、種々の非キー反転ロー
カルアクセス法、例えばハッシング、Rツリー及び符号
に容易に適応するので、厄介な制約を付加されずに使用
可能なアクセス法のなかから照会を処理する方法を最適
化機能が自由に選択し、キーの一意性を検査する大域イ
ンデックス単独アクセス、及び複数の大域インデックス
から得られたPID を組合わせる大域インデックス論理積
/論理和動作を含むように容易に拡張され、そして同じ
場所に配置されたオブジェクトについては、ローカルイ
ンデックスを使用可能に維持し協同動作を容易にするこ
とである。
タに対する多層インデックスの第5の利点は、種々のデ
ータ区画化方式と互換性があり、種々の非キー反転ロー
カルアクセス法、例えばハッシング、Rツリー及び符号
に容易に適応するので、厄介な制約を付加されずに使用
可能なアクセス法のなかから照会を処理する方法を最適
化機能が自由に選択し、キーの一意性を検査する大域イ
ンデックス単独アクセス、及び複数の大域インデックス
から得られたPID を組合わせる大域インデックス論理積
/論理和動作を含むように容易に拡張され、そして同じ
場所に配置されたオブジェクトについては、ローカルイ
ンデックスを使用可能に維持し協同動作を容易にするこ
とである。
【0027】本発明の第6の利点は、大域インデックス
サイトにホットスポットを生成する確率を減らすために
大まか大域インデックスを用いて目標区画に直接にアク
セス要求を経路指定するので、全容量を増やして非一意
的なインデックスの場合にアクセスをより効率的にし且
つ大域インデックスサイトに記憶された情報の量をより
最小化することである。
サイトにホットスポットを生成する確率を減らすために
大まか大域インデックスを用いて目標区画に直接にアク
セス要求を経路指定するので、全容量を増やして非一意
的なインデックスの場合にアクセスをより効率的にし且
つ大域インデックスサイトに記憶された情報の量をより
最小化することである。
【0028】本発明の第7の利点は、区画化の程度に比
例する効率的で動的なインデックス解法を提供すること
によりデータアクセス効率を高め且つ区画化されたデー
タベースの比例性を最終的にかなり改善することであ
る。
例する効率的で動的なインデックス解法を提供すること
によりデータアクセス効率を高め且つ区画化されたデー
タベースの比例性を最終的にかなり改善することであ
る。
【0029】
【実施例】リレーショナルデータベース管理システム(R
DBMS)により管理されるテーブルのようなデータベース
オブジェクトは、オブジェクトの多くの区画の1つにオ
ブジェクトの各レコードが記憶されるように水平に区画
化される。一般にオブジェクトの各区画は他の区画のも
のと共通の要素を持たず且つ別個のプロセッサにより管
理されることもありされないこともある物理的な記憶装
置のグループに関連づけられる。区画は一意的な区画識
別子即ちPID を有する。データベースを水平に区画化す
る動機は、DBMS照会の並列処理を容易にするように1つ
のDBMSシステム内の複数のノード又はプロセッサの間で
データを区画化し、各ノードがローカルレコードのアク
セス効率を保持できるようにDBMSネットワーク内の複数
のノード又はサイトの間に分散されたオブジェクトを支
援し、そして物理的な記憶装置容量の管理を容易にする
ように複数の記憶グループにわたる大きなデータベース
オブジェクトを区画化することにある。データベースオ
ブジェクトの各区画が別々のローカルDBMSノードにより
管理される前記パラダイムは本発明の良好な実施例の場
合に想定されるが、本発明は他の形式の区画化されたデ
ータにも等しく適用できる。
DBMS)により管理されるテーブルのようなデータベース
オブジェクトは、オブジェクトの多くの区画の1つにオ
ブジェクトの各レコードが記憶されるように水平に区画
化される。一般にオブジェクトの各区画は他の区画のも
のと共通の要素を持たず且つ別個のプロセッサにより管
理されることもありされないこともある物理的な記憶装
置のグループに関連づけられる。区画は一意的な区画識
別子即ちPID を有する。データベースを水平に区画化す
る動機は、DBMS照会の並列処理を容易にするように1つ
のDBMSシステム内の複数のノード又はプロセッサの間で
データを区画化し、各ノードがローカルレコードのアク
セス効率を保持できるようにDBMSネットワーク内の複数
のノード又はサイトの間に分散されたオブジェクトを支
援し、そして物理的な記憶装置容量の管理を容易にする
ように複数の記憶グループにわたる大きなデータベース
オブジェクトを区画化することにある。データベースオ
ブジェクトの各区画が別々のローカルDBMSノードにより
管理される前記パラダイムは本発明の良好な実施例の場
合に想定されるが、本発明は他の形式の区画化されたデ
ータにも等しく適用できる。
【0030】関連探索効率を支援するために、少なくと
も1つの探索フィールドにしばしばインデックスが維持
される。インデックスは探索フィールド上で反転され
る。それは論理的にはエントリのリストである。本発明
の大域インデックステーブルは大まかであるのが好まし
い。それは、このテーブルがインデックスキー値をエント
リとするリスト及びPIDのセットのみを含むからである。
インデックスキー値に関連づけられたPID のリストは重
複したものを含まないので、たとえ対応するローカルイ
ンデックステーブルがインデックスキーの複数のインス
タンスを含んでいても、特定のキー値が存在する所与の
区画に対する大域インデックステーブルには1つのエン
トリしか存在しない。一意的な大域インデックスが決め
られると、大域インデックスエントリは効率のために区
画IDの他にレコード識別子(RID) を含むことができる。
も1つの探索フィールドにしばしばインデックスが維持
される。インデックスは探索フィールド上で反転され
る。それは論理的にはエントリのリストである。本発明
の大域インデックステーブルは大まかであるのが好まし
い。それは、このテーブルがインデックスキー値をエント
リとするリスト及びPIDのセットのみを含むからである。
インデックスキー値に関連づけられたPID のリストは重
複したものを含まないので、たとえ対応するローカルイ
ンデックステーブルがインデックスキーの複数のインス
タンスを含んでいても、特定のキー値が存在する所与の
区画に対する大域インデックステーブルには1つのエン
トリしか存在しない。一意的な大域インデックスが決め
られると、大域インデックスエントリは効率のために区
画IDの他にレコード識別子(RID) を含むことができる。
【0031】RID を包含するための追加のインデックス
維持費用は少なく、RID を使用できることはローカルイ
ンデックスアクセスを省くので、一般に1つの一意的な
キーを用いて数レコードをアクセスするトランザクショ
ン処理の性能を改善する。一意的な大域インデックスに
任意に記憶できるRID は、ノードの自主性に対する影響
及び通常は割高な通信費用のために、分散データベース
にとってはあまり魅力的ではない。データベースアプリ
ケーションによっては、一意的な大域インデックステー
ブルにRID を記憶しないことが又はRID をそれらが使用
できるときに用いずにローカルインデックステーブルを
アクセスすることが望ましいことがある。更に、大域イ
ンデックステーブルにRID を記憶することは主キーが用
いられない限り分散データベースのノード自主性を低下
させ、RID を送りそして検索されたレコードを再認定す
る費用がデータ集中照会に見合うものとなる。区画が認
識されると、RID を含む一意的な大域インデックスだけ
が更新を必要とするが他の全ての大域インデックスは影
響を受けないことが利点である。
維持費用は少なく、RID を使用できることはローカルイ
ンデックスアクセスを省くので、一般に1つの一意的な
キーを用いて数レコードをアクセスするトランザクショ
ン処理の性能を改善する。一意的な大域インデックスに
任意に記憶できるRID は、ノードの自主性に対する影響
及び通常は割高な通信費用のために、分散データベース
にとってはあまり魅力的ではない。データベースアプリ
ケーションによっては、一意的な大域インデックステー
ブルにRID を記憶しないことが又はRID をそれらが使用
できるときに用いずにローカルインデックステーブルを
アクセスすることが望ましいことがある。更に、大域イ
ンデックステーブルにRID を記憶することは主キーが用
いられない限り分散データベースのノード自主性を低下
させ、RID を送りそして検索されたレコードを再認定す
る費用がデータ集中照会に見合うものとなる。区画が認
識されると、RID を含む一意的な大域インデックスだけ
が更新を必要とするが他の全ての大域インデックスは影
響を受けないことが利点である。
【0032】各区画内では、あたかもデータが区画化さ
れていなかいかのように通常の方法で要求が評価され
る。これは物理的なレコードの集合、非同期入出力及び
大きなバッファのような使用できる全てのアクセス法の
利用を含む。DBMSノード間のデータアクセスインタフェ
ースはコンパクトであり従来のDBMS APIにより近いの
で、アクセス要求は高いレベルに留まる。
れていなかいかのように通常の方法で要求が評価され
る。これは物理的なレコードの集合、非同期入出力及び
大きなバッファのような使用できる全てのアクセス法の
利用を含む。DBMSノード間のデータアクセスインタフェ
ースはコンパクトであり従来のDBMS APIにより近いの
で、アクセス要求は高いレベルに留まる。
【0033】大域インデックスをインデックスとして生
成すべきか又はドロップすべきかをユーザが指定できる
ように、DBMSのSQL DDL インタフェースは、例えば、イ
ンデックス生成、インデックスドロップ及びインデック
ス変更ステートメントに特別のキーワードを含むように
拡張できる。あるいは、明白な生成ステートメント及び
ドロップステートメントが直接に大域インデックスとし
て定義できる。他方、DBMSは予想されたシステムの必要
性に基づきそれ自身で大域インデックスを生成するよう
に決定しシステム性能を高めることもできる。これはDD
L 処理の一部として実行するか又は照会コンパイル時間
に最適化機能により実行することができる。インデック
スを用いる全てのアクセス要求が大域インデックス単独
でも区画選択でもない場合、大域インデックスは無効で
ある。この場合、ローカルインデックスのみの解法はこ
のインデックスについて完全に適切であるので、維持費
用及び大域インデックスに対する記憶装置を完全に不要
にする。もし特定のインデックスキーが区画選択ではな
くかつそのキーに関する大域情報を維持する必要がなけ
れば、データベース設計者は大まか大域インデックスな
しにローカルインデックスだけを生成するオプションを
有する。本発明のインデックス方式はどちらの場合にも
適用できる。
成すべきか又はドロップすべきかをユーザが指定できる
ように、DBMSのSQL DDL インタフェースは、例えば、イ
ンデックス生成、インデックスドロップ及びインデック
ス変更ステートメントに特別のキーワードを含むように
拡張できる。あるいは、明白な生成ステートメント及び
ドロップステートメントが直接に大域インデックスとし
て定義できる。他方、DBMSは予想されたシステムの必要
性に基づきそれ自身で大域インデックスを生成するよう
に決定しシステム性能を高めることもできる。これはDD
L 処理の一部として実行するか又は照会コンパイル時間
に最適化機能により実行することができる。インデック
スを用いる全てのアクセス要求が大域インデックス単独
でも区画選択でもない場合、大域インデックスは無効で
ある。この場合、ローカルインデックスのみの解法はこ
のインデックスについて完全に適切であるので、維持費
用及び大域インデックスに対する記憶装置を完全に不要
にする。もし特定のインデックスキーが区画選択ではな
くかつそのキーに関する大域情報を維持する必要がなけ
れば、データベース設計者は大まか大域インデックスな
しにローカルインデックスだけを生成するオプションを
有する。本発明のインデックス方式はどちらの場合にも
適用できる。
【0034】本発明の大まか大域インデックスの意図的
な使用は、インデックスキーの高度に区画選択的な探索
属性によるアクセス要求が処理のために目標区画に指向
されるように、個々のインデックスキーをそれらの目標
区画と関連づけることである。それはインデックスキー
に関する大域情報の維持にも用いられ、該大域情報が、
例えば、キー値の存在を検査し又は異なるキー値の数を
カウントするために、インデックス単独アクセスにより
検索できるようにする。
な使用は、インデックスキーの高度に区画選択的な探索
属性によるアクセス要求が処理のために目標区画に指向
されるように、個々のインデックスキーをそれらの目標
区画と関連づけることである。それはインデックスキー
に関する大域情報の維持にも用いられ、該大域情報が、
例えば、キー値の存在を検査し又は異なるキー値の数を
カウントするために、インデックス単独アクセスにより
検索できるようにする。
【0035】本発明のインデックス法の良好な実施例は
区画化されたデータベースのオブジェクトに対する2層
インデックス法である。この良好な方法は、データベー
スの各区画に対するローカルインデックステーブルの生
成、及び各ローカルインデックステーブル内の異なるロ
ーカルインデックスキー毎に1つの一意的な大域インデ
ックスエントリを含む大まか大域インデックステーブル
の生成を含む。ローカルインデックステーブルは該テー
ブルの対応する区画内の関連するオブジェクト毎に1つ
のローカルインデックスエントリを含む。各ローカルイ
ンデックスエントリは、対応する区画内の関連するオブ
ジェクトを識別するオブジェクト識別子、例えばレコー
ドポインタ、及び識別された関連するオブジェクトに関
するローカルインデックスキー値を含む。
区画化されたデータベースのオブジェクトに対する2層
インデックス法である。この良好な方法は、データベー
スの各区画に対するローカルインデックステーブルの生
成、及び各ローカルインデックステーブル内の異なるロ
ーカルインデックスキー毎に1つの一意的な大域インデ
ックスエントリを含む大まか大域インデックステーブル
の生成を含む。ローカルインデックステーブルは該テー
ブルの対応する区画内の関連するオブジェクト毎に1つ
のローカルインデックスエントリを含む。各ローカルイ
ンデックスエントリは、対応する区画内の関連するオブ
ジェクトを識別するオブジェクト識別子、例えばレコー
ドポインタ、及び識別された関連するオブジェクトに関
するローカルインデックスキー値を含む。
【0036】図1に示すように、オブジェクトの各区画
にローカルインデックスが維持される。RID 又は主キー
はレコードポインタとして用いられる。区画をインデッ
クスするがレコードは維持しない大まか大域インデック
スが維持され、区画IDが少なくとも1つのローカルイン
デックスを参照し該ローカルインデックスはオブジェク
ト区画内のインデックスレコードを参照する。
にローカルインデックスが維持される。RID 又は主キー
はレコードポインタとして用いられる。区画をインデッ
クスするがレコードは維持しない大まか大域インデック
スが維持され、区画IDが少なくとも1つのローカルイン
デックスを参照し該ローカルインデックスはオブジェク
ト区画内のインデックスレコードを参照する。
【0037】既存のオブジェクトにインデックスを生成
するためには、オブジェクトを走査しインデックスキー
及び対応するレコードポインタを捕捉する必要がある。
ローカルインデックスを生成するためにインデックスキ
ー値及びレコードポインタが各区画に記憶される。大域
インデックスが用いられると仮定して、異なるキー値の
分類されたリストが大域インデックスノードに送られ
る。分類されたキー値のリストを組合せて各リストと関
連したPID を付加することにより大まか大域インデック
ステーブルが生成される。区画内の複数のレコードが同
じインデックスキー値を有する場合、大まか大域インデ
ックスには1つのエントリだけがある。よって、キー値
の最初のインスタンスがローカルインデックステーブル
に挿入されるときにのみ、大域インデックステーブルに
エントリが挿入される。同様に、キー値の最後のインス
タンスがローカルインデックスから削除されるときにの
み、大域インデックステーブルからエントリが削除され
る。これはインデックス維持費用を軽減する。
するためには、オブジェクトを走査しインデックスキー
及び対応するレコードポインタを捕捉する必要がある。
ローカルインデックスを生成するためにインデックスキ
ー値及びレコードポインタが各区画に記憶される。大域
インデックスが用いられると仮定して、異なるキー値の
分類されたリストが大域インデックスノードに送られ
る。分類されたキー値のリストを組合せて各リストと関
連したPID を付加することにより大まか大域インデック
ステーブルが生成される。区画内の複数のレコードが同
じインデックスキー値を有する場合、大まか大域インデ
ックスには1つのエントリだけがある。よって、キー値
の最初のインスタンスがローカルインデックステーブル
に挿入されるときにのみ、大域インデックステーブルに
エントリが挿入される。同様に、キー値の最後のインス
タンスがローカルインデックスから削除されるときにの
み、大域インデックステーブルからエントリが削除され
る。これはインデックス維持費用を軽減する。
【0038】一意的なインデックスに対しては、大域イ
ンデックステーブルはローカルインデックステーブルア
クセスのスキップを可能にするようにインデックスされ
たレコードの識別子を含むができる。大まか大域インデ
ックスがレコードポインタを含む場合、アクセス要求は
それに仮のRID= 又は主キー=選択属性が付加された
後、目標区画に送られる。付加された属性は目標レコー
ドを取出す高速経路として使用できる。走査された大域
インデックステーブルエントリがロックされない、反復
できない読取り動作のようなトランザクションでは、大
域インデックスに付加された選択属性は後に、即ち高速
経路から検索されたレコードが原始探索属性を用いて再
認定されねばならないときに再検査されねばならない。
他のデータベースオブジェクトのように、大まか大域イ
ンデックステーブルは必要ならそれ自身区画化されても
よい。
ンデックステーブルはローカルインデックステーブルア
クセスのスキップを可能にするようにインデックスされ
たレコードの識別子を含むができる。大まか大域インデ
ックスがレコードポインタを含む場合、アクセス要求は
それに仮のRID= 又は主キー=選択属性が付加された
後、目標区画に送られる。付加された属性は目標レコー
ドを取出す高速経路として使用できる。走査された大域
インデックステーブルエントリがロックされない、反復
できない読取り動作のようなトランザクションでは、大
域インデックスに付加された選択属性は後に、即ち高速
経路から検索されたレコードが原始探索属性を用いて再
認定されねばならないときに再検査されねばならない。
他のデータベースオブジェクトのように、大まか大域イ
ンデックステーブルは必要ならそれ自身区画化されても
よい。
【0039】簡単なアクセス要求が適切な大域インデッ
クスを用いて区画のサブセットに対する探索範囲を縮小
する探索キーのみを含む場合、目標PID のリストを含む
ために大域探索テーブルが正規のインデックスとほとん
ど同じに探索される。重複するPID が除去された後、ロ
ーカル評価のためにこれらのPID により識別された目標
区画に同じアクセス要求が送られる。適切な大域インデ
ックスがない場合、評価のために全ての区画に該要求が
同報通信される。
クスを用いて区画のサブセットに対する探索範囲を縮小
する探索キーのみを含む場合、目標PID のリストを含む
ために大域探索テーブルが正規のインデックスとほとん
ど同じに探索される。重複するPID が除去された後、ロ
ーカル評価のためにこれらのPID により識別された目標
区画に同じアクセス要求が送られる。適切な大域インデ
ックスがない場合、評価のために全ての区画に該要求が
同報通信される。
【0040】本発明の大域及びローカルインデックステ
ーブルの例として表1に示すデータベース内のテーブル
は社員名、社員番号及び各社員の勤務地を含む。この情
報は社員レコードのデータベースに何が含まれるかを表
わす。表1の最初の列は関連した社員レコードの各々の
レコード識別子を表わすRID の標識が付されている。例
えば、社員Adams はRID=8を有し、この特定の社員レコ
ードがこの区画で8により識別できることを意味する。P
ID=2は、このレコードが記憶されている勤務地San Jos
e に対応するデータベース区画である。このAdams のエ
ントリの関連社員番号は1である。
ーブルの例として表1に示すデータベース内のテーブル
は社員名、社員番号及び各社員の勤務地を含む。この情
報は社員レコードのデータベースに何が含まれるかを表
わす。表1の最初の列は関連した社員レコードの各々の
レコード識別子を表わすRID の標識が付されている。例
えば、社員Adams はRID=8を有し、この特定の社員レコ
ードがこの区画で8により識別できることを意味する。P
ID=2は、このレコードが記憶されている勤務地San Jos
e に対応するデータベース区画である。このAdams のエ
ントリの関連社員番号は1である。
【0041】
【表1】 RID 社員名 社員番号 勤務地 PID 8 ADAMS 1 SAN JOSE 02 17 ADAMS 3 WATSON 03 23 ANDREW 7 SAN JOSE 02 19 BAKER 4 ALMADEN 01 4 BLAIR 19 SAN JOSE 02 11 CUMMINGS 13 WATSON 03 15 ELLIOTT 2 WATSON 03 21 HOWARD 5 WATSON 03 37 HOWARD 11 SAN JOSE 02 12 HOWARD 6 SAN JOSE 02 18 JONES 8 ALMADEN 01 表1には、2つのAdams エントリがあることに注目された
い。このデータベースは社員の勤務地により区画化され
ているので、1つのAdams エントリは02のデータベース
区画にあり、もう1つのAdams エントリは03のデータベ
ース区画にある。また、3つのHowardエントリがあり、
そのうちの2つはSan Jose区画に関連し、他の1つはWats
on 区画に関連する。
い。このデータベースは社員の勤務地により区画化され
ているので、1つのAdams エントリは02のデータベース
区画にあり、もう1つのAdams エントリは03のデータベ
ース区画にある。また、3つのHowardエントリがあり、
そのうちの2つはSan Jose区画に関連し、他の1つはWats
on 区画に関連する。
【0042】図2は、本発明のローカルインデックステ
ーブルの例として、テーブル毎に名前エントリ及び関連
したRID を示す。前述の本発明の方法の良好な実施例に
従って、データベース内の社員名及び各社員エントリの
RID を含む各区画のローカルインデックスが生成され
る。この例では、生成されるローカルインデックステー
ブルが3つある。1つのローカルインデックスは勤務地Al
madenに関連したデータベース区画に関するものであ
り、Almaden で働くこれらの特定の社員のエントリのみ
を含む。従って、Almaden 区画のローカルインデックス
テーブルは、Baker及びJonesのエントリとそれらのレコ
ード識別子 (この場合、それぞれ18及び19)を含む。San
Jose区画のローカルインデックスはその特定の勤務地
に対応するエントリを含む。従って、このローカルイン
デックステーブルはRID=8のAdams、RID=23のAndrew、
RID=4のBlair、RID=37のHoward及びRID=12の別の Ho
wardを含む。良好な実施例に従って、ローカルインデッ
クステーブルはレコード毎にその対応する区画に図示の
ような重複キー値を含む1つのエントリを有する。
ーブルの例として、テーブル毎に名前エントリ及び関連
したRID を示す。前述の本発明の方法の良好な実施例に
従って、データベース内の社員名及び各社員エントリの
RID を含む各区画のローカルインデックスが生成され
る。この例では、生成されるローカルインデックステー
ブルが3つある。1つのローカルインデックスは勤務地Al
madenに関連したデータベース区画に関するものであ
り、Almaden で働くこれらの特定の社員のエントリのみ
を含む。従って、Almaden 区画のローカルインデックス
テーブルは、Baker及びJonesのエントリとそれらのレコ
ード識別子 (この場合、それぞれ18及び19)を含む。San
Jose区画のローカルインデックスはその特定の勤務地
に対応するエントリを含む。従って、このローカルイン
デックステーブルはRID=8のAdams、RID=23のAndrew、
RID=4のBlair、RID=37のHoward及びRID=12の別の Ho
wardを含む。良好な実施例に従って、ローカルインデッ
クステーブルはレコード毎にその対応する区画に図示の
ような重複キー値を含む1つのエントリを有する。
【0043】Watson区画に関しては、ローカルインデッ
クステーブルのエントリは RID=17の Adams、RID=11
のCummings、RID=15のElliott及び RID=21のもう1人
のHowardである。3人の異なる社員Howardがおり、その
うち2人のHowardは勤務地San Joseに配置されているの
でSan Jose区画に現われ、他の1人のHowardは勤務地Wat
sonに配置されているのでその区画の対応する社員エン
トリを有するローカルインデックステーブルに現われ
る。同様に、2人の異なる社員Adams がおり、その1人は
勤務地San Joseに配置され、他の1人は勤務地Watsonに
配置されている。従って、各社員名は対応する区画に生
成されたローカルインデックステーブルに現われる。
クステーブルのエントリは RID=17の Adams、RID=11
のCummings、RID=15のElliott及び RID=21のもう1人
のHowardである。3人の異なる社員Howardがおり、その
うち2人のHowardは勤務地San Joseに配置されているの
でSan Jose区画に現われ、他の1人のHowardは勤務地Wat
sonに配置されているのでその区画の対応する社員エン
トリを有するローカルインデックステーブルに現われ
る。同様に、2人の異なる社員Adams がおり、その1人は
勤務地San Joseに配置され、他の1人は勤務地Watsonに
配置されている。従って、各社員名は対応する区画に生
成されたローカルインデックステーブルに現われる。
【0044】良好な実施例で説明したような大まか大域
インデックスの生成の例として表2に示す大域インデッ
クステーブルは名前エントリ及び関連したPID を含む。
この例では、大域インデックスはキー値及びPID を含
む。このインスタンスでは、キー値は社員の名前であ
る。表2の大域インデックステーブルは、区画01、即ち
勤務地Almaden のローカルインデックスに対応するBake
r の最初のエントリ及び PID=01を有する。大域インデ
ックスは一意的なローカルインデックスエントリ毎に1
つのエントリ (キー値、PID)だけを含むので、区画01の
ローカルインデックスのJones エントリも列挙される。
勤務地San Joseに指定された区画 (即ち区画02) に関連
したローカルインデックスに関して、大域インデックス
はエントリ Adams 02、Andrew 02、Blair 02、及び1つ
のエントリ Howard 02も含む。1つのエントリ Howard
が含まれるのは、このインデックス法によって大域イン
デックスが任意の1つのローカルインデックステーブル
に現われる任意の重複キー値の1つのエントリだけを持
ちうるためである。従って、区画02のローカルインデッ
クステーブルはHowardに関連した2つの同じキー値、即
ち、Howard RID=37及びHoward RID=12を有するから、
大域インデックスは02の1つの区画識別子を有するキー
値"Howard"に対する一回の参照のみを含む。
インデックスの生成の例として表2に示す大域インデッ
クステーブルは名前エントリ及び関連したPID を含む。
この例では、大域インデックスはキー値及びPID を含
む。このインスタンスでは、キー値は社員の名前であ
る。表2の大域インデックステーブルは、区画01、即ち
勤務地Almaden のローカルインデックスに対応するBake
r の最初のエントリ及び PID=01を有する。大域インデ
ックスは一意的なローカルインデックスエントリ毎に1
つのエントリ (キー値、PID)だけを含むので、区画01の
ローカルインデックスのJones エントリも列挙される。
勤務地San Joseに指定された区画 (即ち区画02) に関連
したローカルインデックスに関して、大域インデックス
はエントリ Adams 02、Andrew 02、Blair 02、及び1つ
のエントリ Howard 02も含む。1つのエントリ Howard
が含まれるのは、このインデックス法によって大域イン
デックスが任意の1つのローカルインデックステーブル
に現われる任意の重複キー値の1つのエントリだけを持
ちうるためである。従って、区画02のローカルインデッ
クステーブルはHowardに関連した2つの同じキー値、即
ち、Howard RID=37及びHoward RID=12を有するから、
大域インデックスは02の1つの区画識別子を有するキー
値"Howard"に対する一回の参照のみを含む。
【0045】
【表2】 大域インデックス 名前 PID ADAMS 02 ADAMS 03 ANDREW 02 BAKER 01 BLAIR 02 CUMMINGS 03 ELLIOTT 03 HOWARD 02 HOWARD 03 JONES 01 続いて、大域インデックステーブルはエントリAdams 0
3、Cummings 03、Elliot 03及びHoward 03 を有する。
大域インデックスは同じキー値、即ちAdams 又はHoward
のキー値を持つエントリをそれぞれ2つ有する。しか
し、これらのエントリの各々は異なる区画に関連し、従
って異なるローカルインデックスに現われるので、大域
インデックスではこれらのエントリが重複して現われる
が、どれか1つのローカルインデックスに関連して重複
して現われることはない。
3、Cummings 03、Elliot 03及びHoward 03 を有する。
大域インデックスは同じキー値、即ちAdams 又はHoward
のキー値を持つエントリをそれぞれ2つ有する。しか
し、これらのエントリの各々は異なる区画に関連し、従
って異なるローカルインデックスに現われるので、大域
インデックスではこれらのエントリが重複して現われる
が、どれか1つのローカルインデックスに関連して重複
して現われることはない。
【0046】図1、図2及び表1、表2に示された2層イン
デックス方式の構成で分かるように、大まか大域インデ
ックスは仕事をローカルノードに分散する傾向がある。
更新トランザクションの場合、大まか大域インデックス
はレコード変更に対する反応がずっと低くなる。照会処
理の際の典型的なデータ集中検索の場合、本発明はイン
デックスされたレコードと同じノードに全てのローカル
インデックスエントリを維持するので、通信費用を少な
くし、データページの非同期の事前取出し及び並行ロー
カルインデックス動作を可能にする。インデックスペー
ジの編集及び書込を含む、ローカルインデックス及び大
域インデックスの物理的な構成の費用は、本発明の2層
インデックス法にローカルインデックスの並行構成の利
点を与えるインデックスの全サイズに比例する。
デックス方式の構成で分かるように、大まか大域インデ
ックスは仕事をローカルノードに分散する傾向がある。
更新トランザクションの場合、大まか大域インデックス
はレコード変更に対する反応がずっと低くなる。照会処
理の際の典型的なデータ集中検索の場合、本発明はイン
デックスされたレコードと同じノードに全てのローカル
インデックスエントリを維持するので、通信費用を少な
くし、データページの非同期の事前取出し及び並行ロー
カルインデックス動作を可能にする。インデックスペー
ジの編集及び書込を含む、ローカルインデックス及び大
域インデックスの物理的な構成の費用は、本発明の2層
インデックス法にローカルインデックスの並行構成の利
点を与えるインデックスの全サイズに比例する。
【0047】大まか大域インデックスは、単に照会結果
を列挙する代わりに、処理する目標区画にアクセス要求
を経路指定するのに主として用いられる。大まか大域イ
ンデックスは (例えば、所与のキー値の存在を証明し、
キーの一意性を保証し、又は関連制約又はキー濃度をサ
ポートする) インデックスキーに関する大域情報を得る
ために用いられることもある。その結果、インデックス
されたオブジェクトのサイズとともに区画の数が増すと
き、区画当りのワークロード及び全経過時間は割合に安
定している。従って、大まか大域インデックスはデータ
アクセス効率を高め且つ資源消費を少なくする。更に、
区画の柔軟性が成長を有効に扱う能力に寄与する。従っ
て、大まか大域インデックス法は区画化されたデータベ
ースの伸縮性(スケイラビリティ)をかなり改善する。
を列挙する代わりに、処理する目標区画にアクセス要求
を経路指定するのに主として用いられる。大まか大域イ
ンデックスは (例えば、所与のキー値の存在を証明し、
キーの一意性を保証し、又は関連制約又はキー濃度をサ
ポートする) インデックスキーに関する大域情報を得る
ために用いられることもある。その結果、インデックス
されたオブジェクトのサイズとともに区画の数が増すと
き、区画当りのワークロード及び全経過時間は割合に安
定している。従って、大まか大域インデックスはデータ
アクセス効率を高め且つ資源消費を少なくする。更に、
区画の柔軟性が成長を有効に扱う能力に寄与する。従っ
て、大まか大域インデックス法は区画化されたデータベ
ースの伸縮性(スケイラビリティ)をかなり改善する。
【0048】下記の動作は選択されたレコードをオブジ
ェクトから検索する本発明のインデックス法の実現を容
易にする。
ェクトから検索する本発明のインデックス法の実現を容
易にする。
【0049】もしPID として評価できる区画キーに関す
る選択属性があれば、その属性を評価する。もし適切に
選択できる大まか大域インデックスが使用可能であれ
ば、資格のあるPID をその大まか大域インデックスから
取得する。PID を分類し、重複を除去し、そして、区画
キーに基づいたPID があれば、それらと組合わせる。一
意的なインデックスのレコード識別子を取得する。追加
の大まか大域インデックスがそれらから取得されたPID
の論理積/論理和の演算により用いられることもある。
もしPID リストがあまりに長くなれば、即ち、それがも
はや選択的ではなくなれば、DBMSは大域インデックスの
使用を停止し、保持されているSロックをもしあれば解
放し、そして代わりに照会の同報通信を開始する。もし
照会が区画選択でなければ、PID は論理的に全区画のリ
ストにされる。識別された各区画に照会を送り評価す
る。任意の使用可能なローカルアクセス法、例えばロー
カルインデックス等を利用する。どのローカルインデッ
クスを使用するかの選択は使用された大域インデックス
と異なることがある。任意の適切なローカル評価手法、
例えば、インデックス論理積/論理和、リスト分類又は
非同期I/O を用いる。各ノードは、そのデータベース統
計、レコード集合方式及び使用可能なアクセス法により
異なる照会評価計画を用いてもよい。走査された大域イ
ンデックスエントリがロックされない反復不可能な読取
りトランザクションでは、一意的な大域インデックスか
ら得られたレコード識別子を用いて検索されるレコード
は再認定されるべきである。最後に、複数のノードで照
会が評価された場合、それらの結果を組合わせる。
る選択属性があれば、その属性を評価する。もし適切に
選択できる大まか大域インデックスが使用可能であれ
ば、資格のあるPID をその大まか大域インデックスから
取得する。PID を分類し、重複を除去し、そして、区画
キーに基づいたPID があれば、それらと組合わせる。一
意的なインデックスのレコード識別子を取得する。追加
の大まか大域インデックスがそれらから取得されたPID
の論理積/論理和の演算により用いられることもある。
もしPID リストがあまりに長くなれば、即ち、それがも
はや選択的ではなくなれば、DBMSは大域インデックスの
使用を停止し、保持されているSロックをもしあれば解
放し、そして代わりに照会の同報通信を開始する。もし
照会が区画選択でなければ、PID は論理的に全区画のリ
ストにされる。識別された各区画に照会を送り評価す
る。任意の使用可能なローカルアクセス法、例えばロー
カルインデックス等を利用する。どのローカルインデッ
クスを使用するかの選択は使用された大域インデックス
と異なることがある。任意の適切なローカル評価手法、
例えば、インデックス論理積/論理和、リスト分類又は
非同期I/O を用いる。各ノードは、そのデータベース統
計、レコード集合方式及び使用可能なアクセス法により
異なる照会評価計画を用いてもよい。走査された大域イ
ンデックスエントリがロックされない反復不可能な読取
りトランザクションでは、一意的な大域インデックスか
ら得られたレコード識別子を用いて検索されるレコード
は再認定されるべきである。最後に、複数のノードで照
会が評価された場合、それらの結果を組合わせる。
【0050】良好な実施例の2層インデックス法の場
合、非一意的なインデックスの大域インデックスは必ず
しも用いられるとは限らず、又は実施例によっては維持
すらされない。ローカルインデックスはインデックスさ
れたデータレコードを識別する実インデックスである。
データ検索の場合、非一意的な大域インデックスは主と
して目標区画選択に用いられる。次にこれらの目標区画
から得られたローカル結果が組合わされて実際の結果を
形成する。内部ポインタ(RID) は公開されないので、保
全性公開即ち保全違反の危険を少なくする。もし大域イ
ンデックスが同報通信により又は大域インデックス論理
積により照会のための区画選択をかなり改善する見込み
がなければ、それは使用されない。すなわち、ローカル
処理を省くために大域インデックスのみが使用される。
他方、もし大域インデックスが使用されれば、その対応
するローカルインデックスは必ずしも使用されない。例
えば、大域インデックスをインデックス単独アクセスに
使用し、ローカルインデックスを使用しないことがあ
る。なぜなら、ローカルインデックスは照会のために集
合されないか又は低いレコード選択を有するためであ
る。
合、非一意的なインデックスの大域インデックスは必ず
しも用いられるとは限らず、又は実施例によっては維持
すらされない。ローカルインデックスはインデックスさ
れたデータレコードを識別する実インデックスである。
データ検索の場合、非一意的な大域インデックスは主と
して目標区画選択に用いられる。次にこれらの目標区画
から得られたローカル結果が組合わされて実際の結果を
形成する。内部ポインタ(RID) は公開されないので、保
全性公開即ち保全違反の危険を少なくする。もし大域イ
ンデックスが同報通信により又は大域インデックス論理
積により照会のための区画選択をかなり改善する見込み
がなければ、それは使用されない。すなわち、ローカル
処理を省くために大域インデックスのみが使用される。
他方、もし大域インデックスが使用されれば、その対応
するローカルインデックスは必ずしも使用されない。例
えば、大域インデックスをインデックス単独アクセスに
使用し、ローカルインデックスを使用しないことがあ
る。なぜなら、ローカルインデックスは照会のために集
合されないか又は低いレコード選択を有するためであ
る。
【0051】レコード選択性に関しては、もしローカル
インデックス内のキー値のインデックスエントリの数の
平均がnならば、ローカルインデックス更新動作が新た
なキー値を挿入するか又はキー値のインスタンスを削除
するので、大域インデックス挿入又は削除は通常は1/n
よりも少なくされる。例えば、社員テーブルの部門フィ
ールドに関するインデックスの場合、社員の入社、所属
部門の移動又は退社の度に、インデックスが更新され
る。しかしながら、新たな部門に加わる最初の社員、及
び部門を(例えば、部門が解散されるとき)去る最後の社
員を除き、1つの勤務地での全ての他の社員の移動は、
部門の平均サイズにかかわらず大域インデックス更新を
生じない。
インデックス内のキー値のインデックスエントリの数の
平均がnならば、ローカルインデックス更新動作が新た
なキー値を挿入するか又はキー値のインスタンスを削除
するので、大域インデックス挿入又は削除は通常は1/n
よりも少なくされる。例えば、社員テーブルの部門フィ
ールドに関するインデックスの場合、社員の入社、所属
部門の移動又は退社の度に、インデックスが更新され
る。しかしながら、新たな部門に加わる最初の社員、及
び部門を(例えば、部門が解散されるとき)去る最後の社
員を除き、1つの勤務地での全ての他の社員の移動は、
部門の平均サイズにかかわらず大域インデックス更新を
生じない。
【0052】更に、ローカル照会プロセッサは、ローカ
ルインデックスが大まか大域インデックスから得られた
キー統計、例えば区画に関する資格のあるキー値の数に
基づいて用いられるべきかどうかを動的に判定する。前
記走行時間ローカル最適化がデータスキューを処理する
のに非常に役立つ。
ルインデックスが大まか大域インデックスから得られた
キー統計、例えば区画に関する資格のあるキー値の数に
基づいて用いられるべきかどうかを動的に判定する。前
記走行時間ローカル最適化がデータスキューを処理する
のに非常に役立つ。
【0053】この2層インデックス法は区画化されたデ
ータを現にサポートしない多くの既存のDBMS、即ち区画
化されたデータに対するインデックスに用いる仮のロー
カルインデックスのみの解法のみを有するDBMSと互換性
がある利点がある。なぜなら、この方法は一次アクセス
法としてローカルインデックスを用い続けるが大域イン
デックスは任意選択とみなされるからである。既存のDB
MSロジック関連コードの大部分は再使用可能である、即
ちこの2層インデックス法を組込むように容易に変更さ
れる。既存の未区画のデータベースは性能低下の危険な
しに同じロジックによりサポートされる。よって、DBMS
開発費用は低くなる。
ータを現にサポートしない多くの既存のDBMS、即ち区画
化されたデータに対するインデックスに用いる仮のロー
カルインデックスのみの解法のみを有するDBMSと互換性
がある利点がある。なぜなら、この方法は一次アクセス
法としてローカルインデックスを用い続けるが大域イン
デックスは任意選択とみなされるからである。既存のDB
MSロジック関連コードの大部分は再使用可能である、即
ちこの2層インデックス法を組込むように容易に変更さ
れる。既存の未区画のデータベースは性能低下の危険な
しに同じロジックによりサポートされる。よって、DBMS
開発費用は低くなる。
【0054】既存の最適化機能が先ず拡張され、簡単な
方法で大域インデックスを利用する、例えば、キーの一
意性を検査し且つ望ましい選択属性を用いて目標区画を
選択することがある。例えば、テーブルを結合する時間
にわたり、大域インデックスがより多く利用されるの
で、その実現は同期して行うこともできる。
方法で大域インデックスを利用する、例えば、キーの一
意性を検査し且つ望ましい選択属性を用いて目標区画を
選択することがある。例えば、テーブルを結合する時間
にわたり、大域インデックスがより多く利用されるの
で、その実現は同期して行うこともできる。
【0055】ローカルインデックスは個々の区画につい
て維持されるから、各区画はそれ自身のアクセス法を含
む別々のデータモジュールとしてパッケージできる。こ
のような組み込みのデータモジュールは、例えば大規模
な分散データベースシステムで、移動式データベース装
置として用いることができる。データモジュールが取付
けられた後、大域インデックスを更新するためのローカ
ルインデックスは高速かつ容易に走査される。データレ
コードが挿入、削除又は更新されるとき、少なくとも1
つのインデックスを更新せねばならないこともある。大
域インデックスの更新は、もしそれがプロセッサ空間を
横切るならば、ローカルインデックスの更新よりも費用
が高い。大域インデックスは任意選択である。それは新
たなキー値がローカルインデックスに挿入されるとき又
はキー値の最後のインスタンスがローカルインデックス
から削除されるときにのみ更新される。よって、非一意
的なインデックスの大まか大域インデックス更新費用が
低くなる利点がある。
て維持されるから、各区画はそれ自身のアクセス法を含
む別々のデータモジュールとしてパッケージできる。こ
のような組み込みのデータモジュールは、例えば大規模
な分散データベースシステムで、移動式データベース装
置として用いることができる。データモジュールが取付
けられた後、大域インデックスを更新するためのローカ
ルインデックスは高速かつ容易に走査される。データレ
コードが挿入、削除又は更新されるとき、少なくとも1
つのインデックスを更新せねばならないこともある。大
域インデックスの更新は、もしそれがプロセッサ空間を
横切るならば、ローカルインデックスの更新よりも費用
が高い。大域インデックスは任意選択である。それは新
たなキー値がローカルインデックスに挿入されるとき又
はキー値の最後のインスタンスがローカルインデックス
から削除されるときにのみ更新される。よって、非一意
的なインデックスの大まか大域インデックス更新費用が
低くなる利点がある。
【0056】一意的なインデックスの場合、この方法は
大域インデックスに加えてローカルインデックスを維持
する必要がある。ローカルインデックスは冗長性があり
かつそれらの維持費用及び記憶空間を節減するように除
去できるけれども、この節減は、ある場合には、一意的
なインデックス及び非一意的なインデックス、例えば、
インデックス管理ロジック、照会処理ロジック、ユーテ
ィリティ、使用可能度及びノード自主性の間に結果とし
て生じる非均一性により生成された影響に及ぼす価値が
ないかも知れない。他方、一意的なキーに関する探索要
求が区画選択ではないために大域インデックスが用いら
れないとき、ローカルインデックスを照会評価のために
用いることができる。更に、ローカルインデックスはロ
ーカル照会の評価に使用でき、かつキーが大域インデッ
クスアクセスを最小化するように挿入されるときキー値
のローカル存在に使用できる。
大域インデックスに加えてローカルインデックスを維持
する必要がある。ローカルインデックスは冗長性があり
かつそれらの維持費用及び記憶空間を節減するように除
去できるけれども、この節減は、ある場合には、一意的
なインデックス及び非一意的なインデックス、例えば、
インデックス管理ロジック、照会処理ロジック、ユーテ
ィリティ、使用可能度及びノード自主性の間に結果とし
て生じる非均一性により生成された影響に及ぼす価値が
ないかも知れない。他方、一意的なキーに関する探索要
求が区画選択ではないために大域インデックスが用いら
れないとき、ローカルインデックスを照会評価のために
用いることができる。更に、ローカルインデックスはロ
ーカル照会の評価に使用でき、かつキーが大域インデッ
クスアクセスを最小化するように挿入されるときキー値
のローカル存在に使用できる。
【0057】ノード不均一性及びノード自主性は分散デ
ータベースにとって重要である。不均一性はローカルア
クセス法、レコードポインタの形式、集合法、ハードウ
ェア及び環境の相違、ならびに実現された最適化アルゴ
リズムを含む。この方法は大域インデックス内の各区画
の最低量の情報を保持しかつ処理の大部分の実行をロー
カルノードに依存する。よって、ノード不均一性及び自
主性を最もよく適応させることができる。区画化されな
いローカルオブジェクトをアクセスする既存のアプリケ
ーションはたとえそのオブジェクトが分散オブジェクト
の区画になっても機能し続けるであろう。
ータベースにとって重要である。不均一性はローカルア
クセス法、レコードポインタの形式、集合法、ハードウ
ェア及び環境の相違、ならびに実現された最適化アルゴ
リズムを含む。この方法は大域インデックス内の各区画
の最低量の情報を保持しかつ処理の大部分の実行をロー
カルノードに依存する。よって、ノード不均一性及び自
主性を最もよく適応させることができる。区画化されな
いローカルオブジェクトをアクセスする既存のアプリケ
ーションはたとえそのオブジェクトが分散オブジェクト
の区画になっても機能し続けるであろう。
【0058】本発明の2層インデックス法が実現される
分散データベースのオブジェクト区画は、DBMSネットワ
ークが故障してもなおローカル照会の評価に使用でき
る。なぜなら、ローカルインデックスは依然として容易
に使用可能であり、ローカルデータのアクセス可能性を
高めるからである。探索範囲を縮小する区画キーならび
にレコードを見つけるインデックスを用いる照会評価計
画は使用できるノードの数がより少なくて済むようにす
ることができる。なぜならば、インデックスは目標デー
タにとってローカル的であるからである。同様に、更新
動作のデータベースの使用可能度も高くなる。なぜなら
ば、新しいキー値がローカルインデックスに挿入されな
いか又はキー値の最後のインスタンスがローカルインデ
ックステーブルから削除されない限り大域インデックス
はアクセスされないからである。
分散データベースのオブジェクト区画は、DBMSネットワ
ークが故障してもなおローカル照会の評価に使用でき
る。なぜなら、ローカルインデックスは依然として容易
に使用可能であり、ローカルデータのアクセス可能性を
高めるからである。探索範囲を縮小する区画キーならび
にレコードを見つけるインデックスを用いる照会評価計
画は使用できるノードの数がより少なくて済むようにす
ることができる。なぜならば、インデックスは目標デー
タにとってローカル的であるからである。同様に、更新
動作のデータベースの使用可能度も高くなる。なぜなら
ば、新しいキー値がローカルインデックスに挿入されな
いか又はキー値の最後のインスタンスがローカルインデ
ックステーブルから削除されない限り大域インデックス
はアクセスされないからである。
【0059】更に、本発明のインデックス法は物理的な
データベース設計を最適化するアクセスパターンに適合
するデータ集合代替法の完全な利用を可能にする。一例
として、テーブル間集合は関係及び複雑なオブジェクト
をより効率的にサポートするのに使用できる。あらゆる
レコード及びそのローカルインデックスエントリは常に
同じノードで同時に発見されるので、複雑な照会評価及
びインデックス維持の効率が高められる。
データベース設計を最適化するアクセスパターンに適合
するデータ集合代替法の完全な利用を可能にする。一例
として、テーブル間集合は関係及び複雑なオブジェクト
をより効率的にサポートするのに使用できる。あらゆる
レコード及びそのローカルインデックスエントリは常に
同じノードで同時に発見されるので、複雑な照会評価及
びインデックス維持の効率が高められる。
【0060】本発明は新たな最適化の機会を提供する。
より多くのアクセス経路選択のため、より効率的なアク
セス計画が可能になり得る。サイン、Rツリー及びハッ
シングのような、キー変換(インデックス)のほかの他の
タイプのアクセス法が実現できる。大域インデックスは
全ワークロードを少なくする区画選択照会に使用できる
のに対し、同報通信は大域インデックスアクセスの費用
を回避するためにより少ない区画選択照会に使用でき
る。使用する大域インデックスの最適選択は使用された
ローカルインデックスの最適選択と異なることがある。
なぜならば、大域レベルで使用できるインデックスなら
びにアクセス目標はローカルレベルでのものと異なるこ
とがあるからである。
より多くのアクセス経路選択のため、より効率的なアク
セス計画が可能になり得る。サイン、Rツリー及びハッ
シングのような、キー変換(インデックス)のほかの他の
タイプのアクセス法が実現できる。大域インデックスは
全ワークロードを少なくする区画選択照会に使用できる
のに対し、同報通信は大域インデックスアクセスの費用
を回避するためにより少ない区画選択照会に使用でき
る。使用する大域インデックスの最適選択は使用された
ローカルインデックスの最適選択と異なることがある。
なぜならば、大域レベルで使用できるインデックスなら
びにアクセス目標はローカルレベルでのものと異なるこ
とがあるからである。
【0061】データスキュー、ワークロード又は非均一
性のためローカルアクセス計画は互いに異なることがあ
るのに対し、インデックスが使用されることになってい
る場合、従来技術の方法が提供する代替法は殆どない。
例えば、各大域インデックスから得られた長いリストの
レコードポインタは区画基準により分類する必要があ
る。そして分類されたサブリストは目標区画に配分され
る。区画キー法及び主キー法はより長い可変長のポイン
タの処理を必要とすることがあり、実現された区画方式
により、それらが区画基準をあらゆるポインタに個々に
適用する必要があり得るのに対し、本発明の2層インデ
ックス法は、大域インデックスが大まかであるために、
より短いポインタ(PID) リストを有するので、重複する
PID は既知の分類、例えば、トーナメント式分類を用い
て徐々に除去される。更に、単一のPID がより短く且つ
固定長であるので、その処理は容易になる。大域インデ
ックスは大まかであり且つより短いPID を用いるから、
それは完全な大域インデックスが有するよりも1少ないB
ツリーレベルを有することがあるので、そのインデック
スをアクセスするには1少ないI/O を必要とすることが
ある。同様に、ローカルインデックスもより少ないエン
トリを有し且つより短いレコードポインタを用いるの
で、それがアクセスするのに要するI/O は少なくて済
む。
性のためローカルアクセス計画は互いに異なることがあ
るのに対し、インデックスが使用されることになってい
る場合、従来技術の方法が提供する代替法は殆どない。
例えば、各大域インデックスから得られた長いリストの
レコードポインタは区画基準により分類する必要があ
る。そして分類されたサブリストは目標区画に配分され
る。区画キー法及び主キー法はより長い可変長のポイン
タの処理を必要とすることがあり、実現された区画方式
により、それらが区画基準をあらゆるポインタに個々に
適用する必要があり得るのに対し、本発明の2層インデ
ックス法は、大域インデックスが大まかであるために、
より短いポインタ(PID) リストを有するので、重複する
PID は既知の分類、例えば、トーナメント式分類を用い
て徐々に除去される。更に、単一のPID がより短く且つ
固定長であるので、その処理は容易になる。大域インデ
ックスは大まかであり且つより短いPID を用いるから、
それは完全な大域インデックスが有するよりも1少ないB
ツリーレベルを有することがあるので、そのインデック
スをアクセスするには1少ないI/O を必要とすることが
ある。同様に、ローカルインデックスもより少ないエン
トリを有し且つより短いレコードポインタを用いるの
で、それがアクセスするのに要するI/O は少なくて済
む。
【0062】良好な実施例は2層インデックスの状況で
論議されているが、良好な実施例の2層インデックス方
式は一般化されて多層方式にすることができる。よっ
て、多層インデックス方式は本明細書では本発明の範囲
内で論議される。
論議されているが、良好な実施例の2層インデックス方
式は一般化されて多層方式にすることができる。よっ
て、多層インデックス方式は本明細書では本発明の範囲
内で論議される。
【0063】例えば、分散データベース内のオブジェク
トは幾つかのDBMSサイトの間で水平に区画化し、これら
の区画の各々は更にローカルサイトで並行照会処理のた
めに区画化することができる。分散データベースはそれ
自身がネットワーク、施設、ローカルエリアネットワー
ク又は他の構成の階層として位相的に構成できる。この
オブジェクトにインデックスを生成するために、オブジ
ェクトの葉ノード区画毎にローカルインデックスが生成
される。この階層内のあらゆる非葉ノードについて、大
まか大域インデックスが生成されることがある。一般
に、1つのレベルの大域インデックスはその階層内の次
に高いレベルのローカルインデックスかも知れない。イ
ンデックス階層を維持するために、階層内のインデック
スのみが、データレコード又はローカルインデックスの
ようなそれがインデックスする目標アイテム、及びもし
存在すればその大域インデックスを知る必要がある。そ
の情報により2層インデックス維持アルゴリズムが使用
できるので多層階層が正しく維持される。全維持費用は
基本ローカルインデックスが更新されるとき更新される
大域インデックスの数による。各大域インデックスの粗
さはより高いレベルの大域インデックスに対するレコー
ド更新の影響を徐々に減少する。
トは幾つかのDBMSサイトの間で水平に区画化し、これら
の区画の各々は更にローカルサイトで並行照会処理のた
めに区画化することができる。分散データベースはそれ
自身がネットワーク、施設、ローカルエリアネットワー
ク又は他の構成の階層として位相的に構成できる。この
オブジェクトにインデックスを生成するために、オブジ
ェクトの葉ノード区画毎にローカルインデックスが生成
される。この階層内のあらゆる非葉ノードについて、大
まか大域インデックスが生成されることがある。一般
に、1つのレベルの大域インデックスはその階層内の次
に高いレベルのローカルインデックスかも知れない。イ
ンデックス階層を維持するために、階層内のインデック
スのみが、データレコード又はローカルインデックスの
ようなそれがインデックスする目標アイテム、及びもし
存在すればその大域インデックスを知る必要がある。そ
の情報により2層インデックス維持アルゴリズムが使用
できるので多層階層が正しく維持される。全維持費用は
基本ローカルインデックスが更新されるとき更新される
大域インデックスの数による。各大域インデックスの粗
さはより高いレベルの大域インデックスに対するレコー
ド更新の影響を徐々に減少する。
【0064】多層インデックスは必ずしもオブジェクト
の多層区画を必要としない。動作上、大まか大域インデ
ックスはあらゆるインデックスが1つの親大域インデッ
クスのみを有する限り適合するインデックスキーを有す
るインデックスの任意のセットに生成できる。インデッ
クスの識別子又は論理的にそれと等価なものが大域イン
デックス内の目標PID として使用できる。しかしなが
ら、大域インデックスの生成及び維持は、それが一定の
可能な照会の評価に役立つ探索範囲を定義する場合にの
み価値がある。これは、探索範囲がユーザによって理解
され、DBMSインタフェースにより記述され、そして最適
化機能により認識され得るものでなければならないこと
を意味する。よって、大域インデックスにとって重要な
のは論理的なグループ分けである(通常それは最初に区
画化されたデータ及び葉レベルローカルインデックスを
生成する物理的な区画である)。従って、本明細書で
は、たとえデータ区画のレベルが1つしかなく且つ各葉
レベルローカルインデックスの特定の範囲がユーザの関
心を失っている場合でも、複数のレベルの探索範囲を定
義する本多層インデックス方式が前述のように使用され
る試みがなされる。
の多層区画を必要としない。動作上、大まか大域インデ
ックスはあらゆるインデックスが1つの親大域インデッ
クスのみを有する限り適合するインデックスキーを有す
るインデックスの任意のセットに生成できる。インデッ
クスの識別子又は論理的にそれと等価なものが大域イン
デックス内の目標PID として使用できる。しかしなが
ら、大域インデックスの生成及び維持は、それが一定の
可能な照会の評価に役立つ探索範囲を定義する場合にの
み価値がある。これは、探索範囲がユーザによって理解
され、DBMSインタフェースにより記述され、そして最適
化機能により認識され得るものでなければならないこと
を意味する。よって、大域インデックスにとって重要な
のは論理的なグループ分けである(通常それは最初に区
画化されたデータ及び葉レベルローカルインデックスを
生成する物理的な区画である)。従って、本明細書で
は、たとえデータ区画のレベルが1つしかなく且つ各葉
レベルローカルインデックスの特定の範囲がユーザの関
心を失っている場合でも、複数のレベルの探索範囲を定
義する本多層インデックス方式が前述のように使用され
る試みがなされる。
【0065】階層内の高いレベルの大域インデックスを
用いるデータ検索では、多くのインデックス(下位レベ
ル当り1つ)が探索されなければならない。性能を改善す
るために、複数の親大域インデックスを有するインデッ
クスを可能にすることにより階層を制限するか又はそれ
を平坦にすることができる。後者は下記のようにローカ
ルインデックス維持アルゴリズムのロジックに若干の付
加を必要とする。それが挿入又は削除トランザクション
要求をその大域インデックスに送るとき、それを全ての
大域インデックスにも送るべきである。
用いるデータ検索では、多くのインデックス(下位レベ
ル当り1つ)が探索されなければならない。性能を改善す
るために、複数の親大域インデックスを有するインデッ
クスを可能にすることにより階層を制限するか又はそれ
を平坦にすることができる。後者は下記のようにローカ
ルインデックス維持アルゴリズムのロジックに若干の付
加を必要とする。それが挿入又は削除トランザクション
要求をその大域インデックスに送るとき、それを全ての
大域インデックスにも送るべきである。
【0066】例えば、研究所により区画化される職員テ
ーブルをインデックスするために、最初に研究所毎にロ
ーカルインデックスが生成される。そして幾つかの研究
所を含む部門毎に大まか大域インデックスが生成される
ことがある。最後に、全社の部門インデックス上に大ま
か大域インデックスが生成されることがある。最上レベ
ルの大域インデックスは全社的な探索に役立つが次のレ
ベルの大域インデックスは部門特有の探索に役立つ。
ーブルをインデックスするために、最初に研究所毎にロ
ーカルインデックスが生成される。そして幾つかの研究
所を含む部門毎に大まか大域インデックスが生成される
ことがある。最後に、全社の部門インデックス上に大ま
か大域インデックスが生成されることがある。最上レベ
ルの大域インデックスは全社的な探索に役立つが次のレ
ベルの大域インデックスは部門特有の探索に役立つ。
【0067】会社インデックスが研究所インデックスに
直に生成されることがある。階層を平坦にする外に、多
層アプローチは非階層グループ分け又は部分重複探索範
囲をサポートする能力を導入する、即ち地理的な領域に
より研究所をグループ分けするために地域の大域インデ
ックスを研究所インデックス上に生成することがある。
このようなグループ分けは部門グループ分けと直交する
であろう。
直に生成されることがある。階層を平坦にする外に、多
層アプローチは非階層グループ分け又は部分重複探索範
囲をサポートする能力を導入する、即ち地理的な領域に
より研究所をグループ分けするために地域の大域インデ
ックスを研究所インデックス上に生成することがある。
このようなグループ分けは部門グループ分けと直交する
であろう。
【0068】本発明の方法は一意的及び非一意的なイン
デックスエントリの挿入及び削除を処理する方法を含む
利点がある。下記の表に示す擬似コードは本明細書に開
示された良好な実施例の理解及び実現を容易にする(表
中に現れる英文字の列はコマンドなどを表す記号であ
り、翻訳できない)。
デックスエントリの挿入及び削除を処理する方法を含む
利点がある。下記の表に示す擬似コードは本明細書に開
示された良好な実施例の理解及び実現を容易にする(表
中に現れる英文字の列はコマンドなどを表す記号であ
り、翻訳できない)。
【0069】
【表3】一意的なインデックスキー挿入: IF 挿入中のキー値が既にローカルインデックステーブ
ルに存在する THEN 既に存在するキーが確約されているか又はそれは
Sモードでそれをロックすることによりこのトランザク
ションの確約されない挿入である IF ロックが取得されている THEN 一意的なキー違反
誤りコードとともに返送する ELSE キーをローカルインデックスに挿入 IF 当該キー値は大域インデックスにまだ存在しない
THEN キーを大域インデックスに挿入する ELSE ローカルインデックスに挿入されたキーを除去し
かつ一意的なキー違反誤りコードを返送する 非一意的なインデックスキー挿入: キーをローカルインデックスに挿入する IF 挿入中のキーが現にローカルインデックステーブル
内にあるキーのどれかにまだ存在しない値を有する TH
EN キーをこの区画の当該キー値とともに大域インデッ
クステーブルに挿入する 一意的なインデックスキー削除: キーをローカルインデックスから削除する キーをこの区画の当該キー値とともに大域インデックス
から削除する 非一意的なインデックスキー削除: キーをローカルインデックスから削除する IF 削除中のキーが現にローカルインデックス内にある
どれか他のキー内に存在しない値を有する THEN キー
をこの区画の当該キー値とともに大域インデックスから
削除する。
ルに存在する THEN 既に存在するキーが確約されているか又はそれは
Sモードでそれをロックすることによりこのトランザク
ションの確約されない挿入である IF ロックが取得されている THEN 一意的なキー違反
誤りコードとともに返送する ELSE キーをローカルインデックスに挿入 IF 当該キー値は大域インデックスにまだ存在しない
THEN キーを大域インデックスに挿入する ELSE ローカルインデックスに挿入されたキーを除去し
かつ一意的なキー違反誤りコードを返送する 非一意的なインデックスキー挿入: キーをローカルインデックスに挿入する IF 挿入中のキーが現にローカルインデックステーブル
内にあるキーのどれかにまだ存在しない値を有する TH
EN キーをこの区画の当該キー値とともに大域インデッ
クステーブルに挿入する 一意的なインデックスキー削除: キーをローカルインデックスから削除する キーをこの区画の当該キー値とともに大域インデックス
から削除する 非一意的なインデックスキー削除: キーをローカルインデックスから削除する IF 削除中のキーが現にローカルインデックス内にある
どれか他のキー内に存在しない値を有する THEN キー
をこの区画の当該キー値とともに大域インデックスから
削除する。
【0070】一意的なインデックスの場合の挿入の良好
な実施例は、挿入されるインデックスエントリ内のロー
カルインデックスキー値がローカルインデックス内に既
に存在するかどうかの最初の判定を含み、もしそれが既
に存在すれば挿入を拒絶する。さもなければ、インデッ
クスエントリをローカルインデックステーブルに挿入
し、ローカルインデックスキー値に関する大域インデッ
クスキー値が既に大域インデックステーブルに存在する
かどうかを判定し、もしそれが既に存在すれば、挿入さ
れたローカルインデックスエントリをローカルインデッ
クステーブルから削除してその挿入を拒絶する。もしロ
ーカルインデックスキー値に関する大域インデックスキ
ー値が大域インデックステーブル内に存在しなければ、
ローカルインデックスキー値に関する大域インデックス
キー値とローカルインデックステーブルを識別するロー
カルインデックス識別子とを含む大域インデックスエン
トリを大域インデックステーブルに挿入する。
な実施例は、挿入されるインデックスエントリ内のロー
カルインデックスキー値がローカルインデックス内に既
に存在するかどうかの最初の判定を含み、もしそれが既
に存在すれば挿入を拒絶する。さもなければ、インデッ
クスエントリをローカルインデックステーブルに挿入
し、ローカルインデックスキー値に関する大域インデッ
クスキー値が既に大域インデックステーブルに存在する
かどうかを判定し、もしそれが既に存在すれば、挿入さ
れたローカルインデックスエントリをローカルインデッ
クステーブルから削除してその挿入を拒絶する。もしロ
ーカルインデックスキー値に関する大域インデックスキ
ー値が大域インデックステーブル内に存在しなければ、
ローカルインデックスキー値に関する大域インデックス
キー値とローカルインデックステーブルを識別するロー
カルインデックス識別子とを含む大域インデックスエン
トリを大域インデックステーブルに挿入する。
【0071】非一意的なインデックスの場合の挿入はイ
ンデックスエントリをローカルインデックステーブルに
挿入することを含む。そして、もし当該キー値がローカ
ルインデックス内にまだ存在していなかったならば、ロ
ーカルインデックスキー値に関する大域インデックスキ
ー値とローカルインデックステーブルを識別するローカ
ルインデックス識別子とを含む大域インデックスエント
リを大域インデックステーブルに挿入する。
ンデックスエントリをローカルインデックステーブルに
挿入することを含む。そして、もし当該キー値がローカ
ルインデックス内にまだ存在していなかったならば、ロ
ーカルインデックスキー値に関する大域インデックスキ
ー値とローカルインデックステーブルを識別するローカ
ルインデックス識別子とを含む大域インデックスエント
リを大域インデックステーブルに挿入する。
【0072】一意的なインデックスエントリを削除する
方法は、ローカルインデックステーブルからキーを削除
し且つローカルインデックスキー値に関する大域インデ
ックスエントリとローカルインデックス識別子とを大域
インデックステーブルから削除することを含む。
方法は、ローカルインデックステーブルからキーを削除
し且つローカルインデックスキー値に関する大域インデ
ックスエントリとローカルインデックス識別子とを大域
インデックステーブルから削除することを含む。
【0073】非一意的なインデックスエントリを削除す
る方法は、ローカルインデックスからキーを削除し且つ
削除されるインデックスエントリ内のローカルインデッ
クスキー値がもはやローカルインデックステーブル内に
存在しないかどうかを判定し、そしてもしそれがもはや
存在しなければ、ローカルインデックスキー値に関する
大域インデックスキー値とローカルインデックステーブ
ルを識別するローカルインデックス識別子とを含む大域
インデックスエントリを大域インデックステーブルから
削除するステップを含む。
る方法は、ローカルインデックスからキーを削除し且つ
削除されるインデックスエントリ内のローカルインデッ
クスキー値がもはやローカルインデックステーブル内に
存在しないかどうかを判定し、そしてもしそれがもはや
存在しなければ、ローカルインデックスキー値に関する
大域インデックスキー値とローカルインデックステーブ
ルを識別するローカルインデックス識別子とを含む大域
インデックスエントリを大域インデックステーブルから
削除するステップを含む。
【0074】この方法の挿入及び削除動作の説明から、
大域インデックスとローカルインデックスの間の一貫性
を維持する必要がある。大域インデックスとローカルイ
ンデックスの間の一貫性を保証するために、インデック
スエントリの挿入及び削除を正しく処理するロッキング
プロトコルが指定されなければならない。これは2つの
状態の維持を必要とする。すなわち、特定のキー値が特
定の区画に存在することを大域インデックスが示す場
合、その区画のローカルインデックスはそのキー値を含
むべきであり、特定のキー値が特定の区画に存在しない
ことを大域インデックスが示す場合、その区画のローカ
ルインデックスはそのキー値を含むべきではない。
大域インデックスとローカルインデックスの間の一貫性
を維持する必要がある。大域インデックスとローカルイ
ンデックスの間の一貫性を保証するために、インデック
スエントリの挿入及び削除を正しく処理するロッキング
プロトコルが指定されなければならない。これは2つの
状態の維持を必要とする。すなわち、特定のキー値が特
定の区画に存在することを大域インデックスが示す場
合、その区画のローカルインデックスはそのキー値を含
むべきであり、特定のキー値が特定の区画に存在しない
ことを大域インデックスが示す場合、その区画のローカ
ルインデックスはそのキー値を含むべきではない。
【0075】特定のキー挿入動作がキー値の真に最初の
インスタンスの挿入を生じるか又は特定のキー削除動作
がキー値の現に存在するインスタンスのみの削除を実行
するかを判定する前述の検査を行うと同時に、後に前記
推理を裏切ることがある他のトランザクションによる確
約されない挿入又は削除動作がないことが確認されなけ
ればならない。本発明の方法が新規の方法でロッキング
を用いるのはこれらの判定を行う際である。
インスタンスの挿入を生じるか又は特定のキー削除動作
がキー値の現に存在するインスタンスのみの削除を実行
するかを判定する前述の検査を行うと同時に、後に前記
推理を裏切ることがある他のトランザクションによる確
約されない挿入又は削除動作がないことが確認されなけ
ればならない。本発明の方法が新規の方法でロッキング
を用いるのはこれらの判定を行う際である。
【0076】一般に、同時に起きる活動を同期させるた
めにロック及びラッチが用いられる。ラッチはデータの
物理的な一貫性を保証するのに用いられるのに対し、ロ
ックはデータの論理的な一貫性を保証するのに用いられ
る。一般にラッチはプロセスにより所有され通常はロッ
クよりもずっと短い時間の周期のあいだ保持される。ロ
ックはトランザクションにより所有される。デッドロッ
ク検出器はラッチ待ちについては知らされない。ラッチ
はラッチのみを含むか又はラッチ及びロックを含むデッ
ドロックを回避するような方法で要求される。ラッチの
取得はロックの取得よりもずっと安価である。なぜなら
ば、ラッチ制御情報は常に仮想メモリ内の一定の場所に
あり且つラッチ情報に対する直接アドレス可能性はラッ
チ名が与えられると可能である。他方、ロックの記憶は
動的に管理されるのでロックを取得し解除するためによ
り多くの命令を実行する必要がある。
めにロック及びラッチが用いられる。ラッチはデータの
物理的な一貫性を保証するのに用いられるのに対し、ロ
ックはデータの論理的な一貫性を保証するのに用いられ
る。一般にラッチはプロセスにより所有され通常はロッ
クよりもずっと短い時間の周期のあいだ保持される。ロ
ックはトランザクションにより所有される。デッドロッ
ク検出器はラッチ待ちについては知らされない。ラッチ
はラッチのみを含むか又はラッチ及びロックを含むデッ
ドロックを回避するような方法で要求される。ラッチの
取得はロックの取得よりもずっと安価である。なぜなら
ば、ラッチ制御情報は常に仮想メモリ内の一定の場所に
あり且つラッチ情報に対する直接アドレス可能性はラッ
チ名が与えられると可能である。他方、ロックの記憶は
動的に管理されるのでロックを取得し解除するためによ
り多くの命令を実行する必要がある。
【0077】大域インデックスに対するインデックス単
独アクセスを可能にするために、例えば、キー存在検査
の実行又は異なる照会カウント実行のために、大域イン
デックス動作中にロッキングが実行される。一意的な大
域インデックスでは、大域インデックスとローカルイン
デックスの間の一貫性を維持するために、大域インデッ
クスで試みられたキー挿入動作が一意的なキー違反によ
り拒絶される場合、ローカルインデックス挿入、即ち最
初の大域インデックス動作の試みをトリガしたローカル
インデックス挿入は、制御がそのローカルインデックス
挿入の呼出し者に戻される前に取消される。
独アクセスを可能にするために、例えば、キー存在検査
の実行又は異なる照会カウント実行のために、大域イン
デックス動作中にロッキングが実行される。一意的な大
域インデックスでは、大域インデックスとローカルイン
デックスの間の一貫性を維持するために、大域インデッ
クスで試みられたキー挿入動作が一意的なキー違反によ
り拒絶される場合、ローカルインデックス挿入、即ち最
初の大域インデックス動作の試みをトリガしたローカル
インデックス挿入は、制御がそのローカルインデックス
挿入の呼出し者に戻される前に取消される。
【0078】ロック要求は条件付き又は無条件オプショ
ンにより行うことができる。条件付き要求は、要求が処
理される時点でロックを直ちに許可できない場合に要求
者が待機する意志がないことを意味する。無条件要求
は、ロックが許可できるようになるまで要求者が待機す
る意志があることを意味する。ロックが保持される持続
時間は異なることがある。瞬時持続時間無条件ロック要
求は、ロックが実際には許可されないことを意味する
が、ロックマネジャはロックが許可できるようになるま
でロック要求の成功状態の返送を遅延させなければなら
ない。持続時間手動ロックは、それらが取得された後の
ある時点で且つ一般にトランザクション終了よりもかな
り以前に解除される。確約持続時間ロックは、トランザ
クションの終了時点で、即ち、確約又は放棄が終了した
後にのみ解除される。資源のロック要求がうまく返送さ
れた後、ロックマネジャは、現在のトランザクションが
既に保持されていたか且つ現在の要求が出される前にそ
の資源のロックがまだ解除されていなかったかどうかを
示す。この場合、前に取得されたロックのモードが返送
される。
ンにより行うことができる。条件付き要求は、要求が処
理される時点でロックを直ちに許可できない場合に要求
者が待機する意志がないことを意味する。無条件要求
は、ロックが許可できるようになるまで要求者が待機す
る意志があることを意味する。ロックが保持される持続
時間は異なることがある。瞬時持続時間無条件ロック要
求は、ロックが実際には許可されないことを意味する
が、ロックマネジャはロックが許可できるようになるま
でロック要求の成功状態の返送を遅延させなければなら
ない。持続時間手動ロックは、それらが取得された後の
ある時点で且つ一般にトランザクション終了よりもかな
り以前に解除される。確約持続時間ロックは、トランザ
クションの終了時点で、即ち、確約又は放棄が終了した
後にのみ解除される。資源のロック要求がうまく返送さ
れた後、ロックマネジャは、現在のトランザクションが
既に保持されていたか且つ現在の要求が出される前にそ
の資源のロックがまだ解除されていなかったかどうかを
示す。この場合、前に取得されたロックのモードが返送
される。
【0079】通常、ラッチ及びロックは共有情報に対す
るアクセスの制御に用いられる。ロックは異なるモー
ド、例えばS(共有)モード、X(排他的)モード、IX(排他
的意図)モード、IS(共有意図)モード及び SIX(共有排他
的意図)モードで取得できる。Sロック及びXロックは最
も一般的なロックである。Sロックは読取り特権を与えX
ロックは読取り及び書込み特権を与える。所与のオブジ
ェクトにあるロックは、これらのロックモードが互換性
を有する場合にのみ、異なるトランザクションにより同
時に保持できる。異なるモードのロッキングの間の互換
性関係は下記の表に示す。チェック記号(V) は対応する
モードが互換性を有することを示す。
るアクセスの制御に用いられる。ロックは異なるモー
ド、例えばS(共有)モード、X(排他的)モード、IX(排他
的意図)モード、IS(共有意図)モード及び SIX(共有排他
的意図)モードで取得できる。Sロック及びXロックは最
も一般的なロックである。Sロックは読取り特権を与えX
ロックは読取り及び書込み特権を与える。所与のオブジ
ェクトにあるロックは、これらのロックモードが互換性
を有する場合にのみ、異なるトランザクションにより同
時に保持できる。異なるモードのロッキングの間の互換
性関係は下記の表に示す。チェック記号(V) は対応する
モードが互換性を有することを示す。
【0080】
【表4】 S X IS IX SIX S V V X IS V V V V IX V V V SIX V 階層ロッキングにより、一般により高いレベルの階層で
(例えば、テーブルで)ロック意図(IX、IS及び SIX)が得
られる。非意図モード(S又はX)は、一定の階層レベルに
あるオブジェクトに取得されたとき、より低いレベルの
オブジェクトに、そのより高いレベルのオブジェクトの
対応するモードのロックを暗に許可する。他方、意図モ
ードロックは、対応する意図又は非意図モードロックを
要求する権利をより低いレベルのオブジェクトにのみ与
える、例えば、テーブル上のSIXロックは暗にそのテー
ブルの全てのレコードにSロックを許可するので、その
テーブルのレコードのXロックを明白に要求することが
できる。
(例えば、テーブルで)ロック意図(IX、IS及び SIX)が得
られる。非意図モード(S又はX)は、一定の階層レベルに
あるオブジェクトに取得されたとき、より低いレベルの
オブジェクトに、そのより高いレベルのオブジェクトの
対応するモードのロックを暗に許可する。他方、意図モ
ードロックは、対応する意図又は非意図モードロックを
要求する権利をより低いレベルのオブジェクトにのみ与
える、例えば、テーブル上のSIXロックは暗にそのテー
ブルの全てのレコードにSロックを許可するので、その
テーブルのレコードのXロックを明白に要求することが
できる。
【0081】現に挿入又は削除されるべきインデックス
エントリに取得されるロックのほかにインデックス挿入
及び削除動作では、ロックも次のエントリに取得され
る。非一意的なローカルインデックス単独では、ときに
はロックが前のエントリに取得されることもある。これ
らのロックが取得される順序は次のエントリ、(もし必
要なら)前のエントリ及び現在のエントリの順である。
本発明のロックモードは読取り者、挿入者及び削除者の
間の非常に高い同時性を可能にする。
エントリに取得されるロックのほかにインデックス挿入
及び削除動作では、ロックも次のエントリに取得され
る。非一意的なローカルインデックス単独では、ときに
はロックが前のエントリに取得されることもある。これ
らのロックが取得される順序は次のエントリ、(もし必
要なら)前のエントリ及び現在のエントリの順である。
本発明のロックモードは読取り者、挿入者及び削除者の
間の非常に高い同時性を可能にする。
【0082】瞬時ロックが取得される毎に、対応するエ
ントリを保持するページのラッチは、そのページでキー
挿入又は削除動作が終了するまで保持されなければなら
ない。このようなページラッチは、ラッチ保持中に要求
されたロックが直ちに許可できない場合、ラッチを含む
デッドロックを回避するために解除されなければならな
い。もしページラッチを保持しないうちにロックが取得
されれば、ラッチは再取得されかつ全プロセスが反復さ
れなければならない。大域インデックスでの実行を必要
とするキー挿入又は削除動作は、対応するローカルイン
デックス動作の実行に必要な全てのロッキングが終了し
た後にのみ開始できる。後者のステップの終了後にの
み、大域インデックス動作が必要かどうかを正しく判定
することができる。
ントリを保持するページのラッチは、そのページでキー
挿入又は削除動作が終了するまで保持されなければなら
ない。このようなページラッチは、ラッチ保持中に要求
されたロックが直ちに許可できない場合、ラッチを含む
デッドロックを回避するために解除されなければならな
い。もしページラッチを保持しないうちにロックが取得
されれば、ラッチは再取得されかつ全プロセスが反復さ
れなければならない。大域インデックスでの実行を必要
とするキー挿入又は削除動作は、対応するローカルイン
デックス動作の実行に必要な全てのロッキングが終了し
た後にのみ開始できる。後者のステップの終了後にの
み、大域インデックス動作が必要かどうかを正しく判定
することができる。
【0083】簡単に言えば、技術的に既知の多くのDBMS
は、トランザクションにより行われた更新の結果として
記述されるログレコードに関してページ状態を追跡す
る。各ページはそれに関連したフィールドを有し、更新
トランザクションはそれがページの最後の更新で記述し
たログレコードのログシーケンス番号(LSN) をそこに保
管する。このフィールドはページLSN と呼ばれる。トラ
ンザクションがその最初の更新を行う前に、それは回復
ユニット開始(UR開始)ログレコードを記述する。トラン
ザクションのUR開始ログレコードのLSN は常に当該トラ
ンザクションによりデータベースの更新のために書込ま
れた任意のログレコードのLSN よりも小さい。LSN は常
に増加し続けると仮定される。DBMSでの全ての活動状態
のトランザクションのUR開始の最小LSN 値は確約LSN と
呼ばれる。これはその前に未確約トランザクションがな
いシーケンス番号である。
は、トランザクションにより行われた更新の結果として
記述されるログレコードに関してページ状態を追跡す
る。各ページはそれに関連したフィールドを有し、更新
トランザクションはそれがページの最後の更新で記述し
たログレコードのログシーケンス番号(LSN) をそこに保
管する。このフィールドはページLSN と呼ばれる。トラ
ンザクションがその最初の更新を行う前に、それは回復
ユニット開始(UR開始)ログレコードを記述する。トラン
ザクションのUR開始ログレコードのLSN は常に当該トラ
ンザクションによりデータベースの更新のために書込ま
れた任意のログレコードのLSN よりも小さい。LSN は常
に増加し続けると仮定される。DBMSでの全ての活動状態
のトランザクションのUR開始の最小LSN 値は確約LSN と
呼ばれる。これはその前に未確約トランザクションがな
いシーケンス番号である。
【0084】ローカルインデックスでキー挿入中の次、
前及び現在のエントリのロッキングは下記の表の実現に
より遂行される。
前及び現在のエントリのロッキングは下記の表の実現に
より遂行される。
【0085】
【表5】次のエントリロック: IXモードの次のエントリを瞬時持続時間ロックする 前のエントリロック: IF (非一意的なインデックス) AND (次のエントリのキー値 NOT EQUAL 挿入すべきエントリ
のキー値) AND (前のエントリのキー値 EQUAL 挿入すべきエントリのキー値) AND (前のエントリを含
むページの LSN > = 確約LSN ) THEN ISモードの前のエントリを瞬時持続期間ロックする 現在のエントリロック: IF (これは非一意的なローカルインデックスである) A
ND ((キー値の最初のインスタンスが挿入中である) OR (前のエントリがいまロックされなければならずそして
現在のトランザクションによりXモードで既にロックさ
れていることが分かった)OR (現在のトランザクション
によりXモードで既にロックされた次のエントリ)) THEN
Xモードで挿入すべきエントリを確約持続時間ロックす
る ELSE IF (現在のトランザクションにより次のエントリが既
にSIX モード又はSモードでロックされた) THEN SIX モードで挿入すべきエントリを確約持続時間
ロックする ELSE IXモードで挿入すべきエントリを確約持続時間ロックす
る。
のキー値) AND (前のエントリのキー値 EQUAL 挿入すべきエントリのキー値) AND (前のエントリを含
むページの LSN > = 確約LSN ) THEN ISモードの前のエントリを瞬時持続期間ロックする 現在のエントリロック: IF (これは非一意的なローカルインデックスである) A
ND ((キー値の最初のインスタンスが挿入中である) OR (前のエントリがいまロックされなければならずそして
現在のトランザクションによりXモードで既にロックさ
れていることが分かった)OR (現在のトランザクション
によりXモードで既にロックされた次のエントリ)) THEN
Xモードで挿入すべきエントリを確約持続時間ロックす
る ELSE IF (現在のトランザクションにより次のエントリが既
にSIX モード又はSモードでロックされた) THEN SIX モードで挿入すべきエントリを確約持続時間
ロックする ELSE IXモードで挿入すべきエントリを確約持続時間ロックす
る。
【0086】ローカルインデックスでキー削除中のロッ
キングは下記の表のようになる。
キングは下記の表のようになる。
【0087】
【表6】次のエントリロック: SIX モードで確約持続時間ロックする 前のエントリロック: IF (非一意的なインデックス) AND (次のエントリのキ
ー値 NOT EQUAL 削除すべきエントリのキー値) AND (前のエ
ントリのキー値 EQUAL 削除すべきエントリのキー値) A
ND ((前のエントリを含むページのLSN)> = 確約LSN) T
HEN 前のエントリをSモードで瞬時持続時間ロックする 現在のエントリロック: Xモードで削除すべきエントリを瞬時持続時間ロックす
る。
ー値 NOT EQUAL 削除すべきエントリのキー値) AND (前のエ
ントリのキー値 EQUAL 削除すべきエントリのキー値) A
ND ((前のエントリを含むページのLSN)> = 確約LSN) T
HEN 前のエントリをSモードで瞬時持続時間ロックする 現在のエントリロック: Xモードで削除すべきエントリを瞬時持続時間ロックす
る。
【0088】大域インデックス(一意的又は非一意的)で
キー挿入又は削除中に行われたインデックスエントリロ
ッキングは一意的なローカルインデックスの場合と同じ
である。
キー挿入又は削除中に行われたインデックスエントリロ
ッキングは一意的なローカルインデックスの場合と同じ
である。
【0089】重要なことは次のエントリのロックが常に
取得されることである。次のエントリがない場合、この
ローカルインデックスに特有の特別なインデックス終了
ロックがこの目的のために用いられる。
取得されることである。次のエントリがない場合、この
ローカルインデックスに特有の特別なインデックス終了
ロックがこの目的のために用いられる。
【0090】挿入中に次のエントリをロックする背景理
由について以下に説明する。1つの理由は、このインデ
ックスが既に走査され且つ読取り者が終了するまで新た
に挿入すべきエントリを欲しないことがある反復可能な
読取り(RR)トランザクションが現にあるかどうかを検査
するためである。読取り者がいた場合、それは次のエン
トリをSモードでロックしているであろう。RRトランザ
クションにより取り残されたSロックは、存在しえたが
脱落した関連する範囲内のキー値を有するエントリに関
して取り残された記号のようなものである。脱落した値
は、少なくともそれらを脱落したトランザクションが終
了するまで、それらが読取りトランザクション自身によ
り挿入されない限りインデックスに現われるべきではな
い。現在の挿入トランザクション自身が次のエントリの
読取りを早期に実行したトランザクションであることが
あり得る。この場合、ロックマネジャは、IXロック要求
の戻りコードを介して、Sロック又はSIX ロックが現在
のトランザクションにより次のエントリに既に保持され
ていることを示す。そして、読取り者に続く挿入者の次
のエントリのSロックが挿入すべきエントリに加えられ
なければならない。これは次のキーのロッキングを介し
たロック状態反復と呼ばれる。ロック状態反復(missed-
you)記号は新たに挿入されたエントリがロック状態反復
記号を隠さないことを確かめるために新しいエントリに
関して反復されるので、新たに挿入されたエントリの背
後のもう1つのエントリの別のトランザクションによる
挿入を可能にする。このような挿入は、最初のロック状
態反復記号を隠したキー挿入動作を最初のトランザクシ
ョンが実行しなかった場合には起こり得なかったであろ
う。従って、挿入されたエントリで普通に取得されたIX
ロックは、現在のトランザクションにより次のエントリ
が既にSモード又はSIX モードで保持されている場合に
はSIX に変更される。この反復は、新たに挿入されたキ
ー値が脱落した値よりも小さい場合には必要ではないで
あろうが、挿入者は、脱落した値が何であるか又は何で
あったかが分からないから、この観察からは何も得るこ
とができない。
由について以下に説明する。1つの理由は、このインデ
ックスが既に走査され且つ読取り者が終了するまで新た
に挿入すべきエントリを欲しないことがある反復可能な
読取り(RR)トランザクションが現にあるかどうかを検査
するためである。読取り者がいた場合、それは次のエン
トリをSモードでロックしているであろう。RRトランザ
クションにより取り残されたSロックは、存在しえたが
脱落した関連する範囲内のキー値を有するエントリに関
して取り残された記号のようなものである。脱落した値
は、少なくともそれらを脱落したトランザクションが終
了するまで、それらが読取りトランザクション自身によ
り挿入されない限りインデックスに現われるべきではな
い。現在の挿入トランザクション自身が次のエントリの
読取りを早期に実行したトランザクションであることが
あり得る。この場合、ロックマネジャは、IXロック要求
の戻りコードを介して、Sロック又はSIX ロックが現在
のトランザクションにより次のエントリに既に保持され
ていることを示す。そして、読取り者に続く挿入者の次
のエントリのSロックが挿入すべきエントリに加えられ
なければならない。これは次のキーのロッキングを介し
たロック状態反復と呼ばれる。ロック状態反復(missed-
you)記号は新たに挿入されたエントリがロック状態反復
記号を隠さないことを確かめるために新しいエントリに
関して反復されるので、新たに挿入されたエントリの背
後のもう1つのエントリの別のトランザクションによる
挿入を可能にする。このような挿入は、最初のロック状
態反復記号を隠したキー挿入動作を最初のトランザクシ
ョンが実行しなかった場合には起こり得なかったであろ
う。従って、挿入されたエントリで普通に取得されたIX
ロックは、現在のトランザクションにより次のエントリ
が既にSモード又はSIX モードで保持されている場合に
はSIX に変更される。この反復は、新たに挿入されたキ
ー値が脱落した値よりも小さい場合には必要ではないで
あろうが、挿入者は、脱落した値が何であるか又は何で
あったかが分からないから、この観察からは何も得るこ
とができない。
【0091】ローカルインデックスが一意的なインデッ
クスである場合、挿入すべきものと同じキー値を有する
もう1つのエントリの別のトランザクションにより確約
されない削除がないことを確かめる。エントリの削除者
は次のエントリでSIX ロックを取得する。これが一意的
なインデックスであり且つ同じトランザクションが同じ
キー値の別のインスタンスを早期に削除していた場合、
現在の挿入動作の実行は問題を生じない。なぜならば、
このトランザクションの前のインデックスは最初に取消
される現在の挿入トランザクションなしには取消されな
いからである。これはロールバックが逆年代順に実行さ
れなければならないことによる。
クスである場合、挿入すべきものと同じキー値を有する
もう1つのエントリの別のトランザクションにより確約
されない削除がないことを確かめる。エントリの削除者
は次のエントリでSIX ロックを取得する。これが一意的
なインデックスであり且つ同じトランザクションが同じ
キー値の別のインスタンスを早期に削除していた場合、
現在の挿入動作の実行は問題を生じない。なぜならば、
このトランザクションの前のインデックスは最初に取消
される現在の挿入トランザクションなしには取消されな
いからである。これはロールバックが逆年代順に実行さ
れなければならないことによる。
【0092】ローカルインデックスに大域インデックス
が存在し且つこのインデックスには挿入すべきキー値の
他のインスタンスが存在しない場合、同じキー値を有す
るもう1つのエントリの別のトランザクションにより確
約されない削除がないことを確かめる。エントリの削除
者は次のエントリでSIX ロックを取得する。現にキー値
のもう1つのインスタンスが別のトランザクションT1に
より確約されない削除状態にある場合、現在のトランザ
クションT2はその挿入動作の実行を許可されるべきでは
ない。なぜならば、挿入を許可することによりT2がその
キー値を大域インデックスに挿入するからである。その
後、T1はロールバックできるので、同じキー値を大域イ
ンデックスに戻す(T1はそのエントリを順方向処理で削
除しているであろう)。従って、大域インデックスに
は、それが同じキー値及び同じ区画の重複したエントリ
を含むべきではないときに、前記重複したエントリがあ
るであろう。
が存在し且つこのインデックスには挿入すべきキー値の
他のインスタンスが存在しない場合、同じキー値を有す
るもう1つのエントリの別のトランザクションにより確
約されない削除がないことを確かめる。エントリの削除
者は次のエントリでSIX ロックを取得する。現にキー値
のもう1つのインスタンスが別のトランザクションT1に
より確約されない削除状態にある場合、現在のトランザ
クションT2はその挿入動作の実行を許可されるべきでは
ない。なぜならば、挿入を許可することによりT2がその
キー値を大域インデックスに挿入するからである。その
後、T1はロールバックできるので、同じキー値を大域イ
ンデックスに戻す(T1はそのエントリを順方向処理で削
除しているであろう)。従って、大域インデックスに
は、それが同じキー値及び同じ区画の重複したエントリ
を含むべきではないときに、前記重複したエントリがあ
るであろう。
【0093】この非一意的なローカルインデックスに大
域インデックスが存在し且つこのインデックスで次のエ
ントリのキー値が挿入すべきエントリのキー値と同じ場
合、進行中の別のトランザクションによりそのキー値の
最初のインスタンスが確約されない状態ではないことを
確かめる。最初のインスタンスが確約されない状態であ
る場合、そのインスタンスを挿入したトランザクション
のみが次のエントリを挿入でき且つそのトランザクショ
ンが全ての既存のインスタンスでXロックを保持してい
るであろう。現在のトランザクションが挿入すべきキー
値の最初のインスタンスを挿入したものである場合、ロ
ックマネジャからの戻りコードは、瞬時IXロックが次の
エントリで要求されると、現在のトランザクションが既
にそのエントリでXロックを保持していることを示す。
この場合、現在のトランザクションも挿入中のインデッ
クスエントリでXロックを取得する。これは確約されな
い最初のインスタンスの左側伝播と呼ばれる。これはロ
ーカルインデックスが一意的なインデックスである場合
には必ずしもそうではない。その場合、最初の挿入者は
IXロックのみを取得する必要があり且つその後の挿入ト
ランザクションを試みる者は、一意的なキー違反がある
かどうかを判定するために既に存在するエントリのSロ
ックを要求するであろう。一意的なキー違反を報告でき
る前に、最初のインスタンスが確約状態であるか又はそ
れが現在のトランザクションによる挿入であるかが判定
されなければならない。
域インデックスが存在し且つこのインデックスで次のエ
ントリのキー値が挿入すべきエントリのキー値と同じ場
合、進行中の別のトランザクションによりそのキー値の
最初のインスタンスが確約されない状態ではないことを
確かめる。最初のインスタンスが確約されない状態であ
る場合、そのインスタンスを挿入したトランザクション
のみが次のエントリを挿入でき且つそのトランザクショ
ンが全ての既存のインスタンスでXロックを保持してい
るであろう。現在のトランザクションが挿入すべきキー
値の最初のインスタンスを挿入したものである場合、ロ
ックマネジャからの戻りコードは、瞬時IXロックが次の
エントリで要求されると、現在のトランザクションが既
にそのエントリでXロックを保持していることを示す。
この場合、現在のトランザクションも挿入中のインデッ
クスエントリでXロックを取得する。これは確約されな
い最初のインスタンスの左側伝播と呼ばれる。これはロ
ーカルインデックスが一意的なインデックスである場合
には必ずしもそうではない。その場合、最初の挿入者は
IXロックのみを取得する必要があり且つその後の挿入ト
ランザクションを試みる者は、一意的なキー違反がある
かどうかを判定するために既に存在するエントリのSロ
ックを要求するであろう。一意的なキー違反を報告でき
る前に、最初のインスタンスが確約状態であるか又はそ
れが現在のトランザクションによる挿入であるかが判定
されなければならない。
【0094】非一意的なローカルインデックスで、最初
のインスタンスの最初のトランザクションT1の挿入がま
だ確約されないとき2番目のトランザクションT2による
キー挿入動作を許可しない理由は、T1がロールバックし
T2が確約することになっていた場合に大域インデックス
に関して一貫性がなくなるローカルインデックスを処理
する必要があるためである。ローカルインデックスでそ
のキー値の挿入中に大域インデックスにエントリを挿入
したT1は、大域インデックスで挿入を実行しなかったT2
がたとえ確約しても大域インデックスへのその挿入動作
を取消すであろう。T2は、ローカルインデックスでのそ
の挿入がそのキー値の最初のインスタンスではなかった
ので大域インデックスでの挿入を実行せず、従って大域
インデックスでの対応するエントリなしにローカルイン
デックスにそのキー値を取り残す。
のインスタンスの最初のトランザクションT1の挿入がま
だ確約されないとき2番目のトランザクションT2による
キー挿入動作を許可しない理由は、T1がロールバックし
T2が確約することになっていた場合に大域インデックス
に関して一貫性がなくなるローカルインデックスを処理
する必要があるためである。ローカルインデックスでそ
のキー値の挿入中に大域インデックスにエントリを挿入
したT1は、大域インデックスで挿入を実行しなかったT2
がたとえ確約しても大域インデックスへのその挿入動作
を取消すであろう。T2は、ローカルインデックスでのそ
の挿入がそのキー値の最初のインスタンスではなかった
ので大域インデックスでの挿入を実行せず、従って大域
インデックスでの対応するエントリなしにローカルイン
デックスにそのキー値を取り残す。
【0095】前のエントリのロッキングプロトコルの理
由は下記の通りである。意図は、挿入中のキー値の最初
のインスタンスの挿入者が確約したことを確かめるか又
はキー値の最初のインスタンスが現在のトランザクショ
ン自身による確約されない挿入動作であると判定する必
要がある場合にLSN 確約の着想を利用することである。
これが挿入中のキー値の最初のインスタンスではなく且
つ、最初の挿入トランザクションが確約されたに違いな
いと結論付けるのに十分な情報を次のエントリのロッキ
ングが提供しないので前のエントリを処理するトランザ
クションを必要とする場合でさえも、前のエントリが確
約された状態であると判定するのをLSN確約法が助ける
場合には前のエントリの余分なロックをなお回避するこ
とができる。その最初のインスタンスの挿入トランザク
ションがまだ確約されない場合は、そのキー値の全ての
他のインスタンスも同じトランザクションによる確約さ
れない挿入である場合でなければならない。更に、その
トランザクションは同じキー値を有する全てのインデッ
クスエントリのXロックを保持していなければならな
い。現在のトランザクションが挿入すべきキー値の最初
のインスタンスを挿入したトランザクションである場
合、瞬時ISロックが前のエントリで要求されるとき、ロ
ックマネジャからの戻りコードは現在のトランザクショ
ンが既に前のエントリにXロックを保持していることを
示す。この場合、現在のトランザクションも挿入中のイ
ンデックスエントリでXロックを取得する。これは確約
されない最初のインスタンス情報の右側伝播と呼ばれ
る。一意的なインデックスでは、この問題を処理する必
要はない。
由は下記の通りである。意図は、挿入中のキー値の最初
のインスタンスの挿入者が確約したことを確かめるか又
はキー値の最初のインスタンスが現在のトランザクショ
ン自身による確約されない挿入動作であると判定する必
要がある場合にLSN 確約の着想を利用することである。
これが挿入中のキー値の最初のインスタンスではなく且
つ、最初の挿入トランザクションが確約されたに違いな
いと結論付けるのに十分な情報を次のエントリのロッキ
ングが提供しないので前のエントリを処理するトランザ
クションを必要とする場合でさえも、前のエントリが確
約された状態であると判定するのをLSN確約法が助ける
場合には前のエントリの余分なロックをなお回避するこ
とができる。その最初のインスタンスの挿入トランザク
ションがまだ確約されない場合は、そのキー値の全ての
他のインスタンスも同じトランザクションによる確約さ
れない挿入である場合でなければならない。更に、その
トランザクションは同じキー値を有する全てのインデッ
クスエントリのXロックを保持していなければならな
い。現在のトランザクションが挿入すべきキー値の最初
のインスタンスを挿入したトランザクションである場
合、瞬時ISロックが前のエントリで要求されるとき、ロ
ックマネジャからの戻りコードは現在のトランザクショ
ンが既に前のエントリにXロックを保持していることを
示す。この場合、現在のトランザクションも挿入中のイ
ンデックスエントリでXロックを取得する。これは確約
されない最初のインスタンス情報の右側伝播と呼ばれ
る。一意的なインデックスでは、この問題を処理する必
要はない。
【0096】現在用いられているエントリロック擬似コ
ードは挿入中のエントリで取得する必要があるロックの
種類を決定する。他のトランザクションが確約されない
データを読取らないことを保証するために、挿入された
エントリに少なくともIXロックが取得する必要がある。
確約されないデータの読取りを欲しない読取り者はSロ
ックを取得するものと仮定する。それは確約されないエ
ントリに削除者が墓石を生成しないことを保証するため
にも用いられる。なぜなら、確約されないエントリの挿
入トランザクションがその挿入をロールバックすること
になっていた場合、このような墓石は消えるからであ
る。
ードは挿入中のエントリで取得する必要があるロックの
種類を決定する。他のトランザクションが確約されない
データを読取らないことを保証するために、挿入された
エントリに少なくともIXロックが取得する必要がある。
確約されないデータの読取りを欲しない読取り者はSロ
ックを取得するものと仮定する。それは確約されないエ
ントリに削除者が墓石を生成しないことを保証するため
にも用いられる。なぜなら、確約されないエントリの挿
入トランザクションがその挿入をロールバックすること
になっていた場合、このような墓石は消えるからであ
る。
【0097】削除動作中に次のエントリのロックを取得
する理由は下記の通りである。キー削除中に、確約され
ない削除があることを他の読取り者トランザクションに
知らせる墓石を取り残すことが重要である。読取り者は
Sロックを要求すると仮定する。墓石(次のエントリ)の
ロックは、(1) 墓石エントリの背後の削除されたキー値
よりも高いキー値を有するエントリを挿入することによ
り削除動作が起きた場所から墓石を隠し、且つ(2) 墓石
をそれを削除することにより除去することができる他の
トランザクションがないものでなければならない。墓石
を隠す最初のインスタンスでは、次のエントリで瞬時IX
ロックを挿入者に取得させることによりそれが処理され
る。墓石を除去する2番目のインスタンスでは、削除す
べきエントリでXロックを削除者に取得させることによ
りそれが処理される。最初の削除動作を実行した同じト
ランザクションが墓石の背後にエントリを挿入する場
合、それは挿入中の次のエントリロックでロックマネジ
ャを介して最初の墓石の回りに戻りコードを見つける。
そして、それは通常のIXロックの代わりに新たなエント
リでSIX 又はXロックを取得することにより新たに挿入
されたエントリに墓石を複製する。同じトランザクショ
ンにより墓石が削除中である場合、削除中の次のエント
リで取得されるSIX ロックにより最初の墓石の次のエン
トリに墓石が複製される。ローカルインデックスが一意
的なインデックスである場合、次のエントリロックは同
じキー値の潜在的な将来の挿入者にそのキー値を含む確
約されない削除動作に関して知らせる。前述のように、
挿入者は次のエントリでIXロックを取得する。
する理由は下記の通りである。キー削除中に、確約され
ない削除があることを他の読取り者トランザクションに
知らせる墓石を取り残すことが重要である。読取り者は
Sロックを要求すると仮定する。墓石(次のエントリ)の
ロックは、(1) 墓石エントリの背後の削除されたキー値
よりも高いキー値を有するエントリを挿入することによ
り削除動作が起きた場所から墓石を隠し、且つ(2) 墓石
をそれを削除することにより除去することができる他の
トランザクションがないものでなければならない。墓石
を隠す最初のインスタンスでは、次のエントリで瞬時IX
ロックを挿入者に取得させることによりそれが処理され
る。墓石を除去する2番目のインスタンスでは、削除す
べきエントリでXロックを削除者に取得させることによ
りそれが処理される。最初の削除動作を実行した同じト
ランザクションが墓石の背後にエントリを挿入する場
合、それは挿入中の次のエントリロックでロックマネジ
ャを介して最初の墓石の回りに戻りコードを見つける。
そして、それは通常のIXロックの代わりに新たなエント
リでSIX 又はXロックを取得することにより新たに挿入
されたエントリに墓石を複製する。同じトランザクショ
ンにより墓石が削除中である場合、削除中の次のエント
リで取得されるSIX ロックにより最初の墓石の次のエン
トリに墓石が複製される。ローカルインデックスが一意
的なインデックスである場合、次のエントリロックは同
じキー値の潜在的な将来の挿入者にそのキー値を含む確
約されない削除動作に関して知らせる。前述のように、
挿入者は次のエントリでIXロックを取得する。
【0098】次のエントリのキー値が削除すべきエント
リのキー値と同じ場合、そのキー値の少なくとも1つの
インスタンスは現在のトランザクションが終了するまで
他のトランザクションにより削除されないことを確かめ
る。削除者が削除すべきエントリでXロックを取得する
から、別のトランザクションによる将来の動作は次のエ
ントリを削除できない。次のエントリが現に確約されな
い状態である場合、その挿入者はこの時点でそれにIX又
はXロックを保持している。これはトランザクションT1
が最後ではないインスタンスを削除し、且つトランザク
ションT2が最後のインスタンスを削除し、キー値を大域
インデックスから除去したのち確約する状況にはならな
いことを保証するために必要である。T1はロールバック
することによりそのキー値をローカルインデックスに再
挿入する。これらの状況の下では、ローカルインデック
スのキー値は大域インデックスには存在しない。
リのキー値と同じ場合、そのキー値の少なくとも1つの
インスタンスは現在のトランザクションが終了するまで
他のトランザクションにより削除されないことを確かめ
る。削除者が削除すべきエントリでXロックを取得する
から、別のトランザクションによる将来の動作は次のエ
ントリを削除できない。次のエントリが現に確約されな
い状態である場合、その挿入者はこの時点でそれにIX又
はXロックを保持している。これはトランザクションT1
が最後ではないインスタンスを削除し、且つトランザク
ションT2が最後のインスタンスを削除し、キー値を大域
インデックスから除去したのち確約する状況にはならな
いことを保証するために必要である。T1はロールバック
することによりそのキー値をローカルインデックスに再
挿入する。これらの状況の下では、ローカルインデック
スのキー値は大域インデックスには存在しない。
【0099】キー値のインスタンスのみが削除中である
場合、他のトランザクションはそのキー値のインスタン
スを削除中のトランザクションが終了するまで挿入でき
ないことを保証する。これは挿入者が次のエントリでIX
ロックを取得するから保証される。このステップで望ま
れることは下記のシナリオを回避することである。T1は
最後のインスタンスをローカルインデックスから削除し
且つキー値を大域インデックスから除去する。そしてT2
はローカルインデックスの最初のインスタンスを挿入し
且つキー値を大域インデックスに挿入する。T1はロール
バックし且つ複製エントリを大域インデックスに導入す
る。なぜなら、それは大域インデックスからのその早期
の削除動作を取消す。T1が複製の挿入を回避して終了す
る場合、T2はロールバックできるので、ローカルインデ
ックスと大域インデックスの間に非一貫性を生成する。
なぜなら、T2はそれが大域インデックスに挿入したキー
値を除去するからである。
場合、他のトランザクションはそのキー値のインスタン
スを削除中のトランザクションが終了するまで挿入でき
ないことを保証する。これは挿入者が次のエントリでIX
ロックを取得するから保証される。このステップで望ま
れることは下記のシナリオを回避することである。T1は
最後のインスタンスをローカルインデックスから削除し
且つキー値を大域インデックスから除去する。そしてT2
はローカルインデックスの最初のインスタンスを挿入し
且つキー値を大域インデックスに挿入する。T1はロール
バックし且つ複製エントリを大域インデックスに導入す
る。なぜなら、それは大域インデックスからのその早期
の削除動作を取消す。T1が複製の挿入を回避して終了す
る場合、T2はロールバックできるので、ローカルインデ
ックスと大域インデックスの間に非一貫性を生成する。
なぜなら、T2はそれが大域インデックスに挿入したキー
値を除去するからである。
【0100】削除中に前のエントリでロックを取得する
理由は下記の通りである。その意図は確約された状態に
ある削除中のキー値の少なくとも1つのインスタンスが
インデックスに現に存在するかどうかを調べること又は
当該キー値の全ての既存のインスタンスが現在のトラン
ザクションによる未確約の挿入であると判定することで
ある。現在のトランザクションがキー値の唯一のインス
タンスを削除中ではないので大域インデックスからエン
トリを削除する必要がない場合、現在のトランザクショ
ンは、後にキー値の全ての残りのインスタンスはそれら
が全て未確約の挿入であったので削除されず、且つ全て
の挿入トランザクションは誤って大域インデックスにキ
ー値を取り残してこれらの挿入をロールバックしたこと
を確かめる必要がある。キー値の全ての残りのインスタ
ンスが現在のトランザクション以外のトランザクション
の未確約の挿入である場合、現在のトランザクション
は、前のエントリでSロックを要求することにより、こ
れらのトランザクションの少なくとも1つのトランザク
ションが終了し且つ再びキーの状態を検査するまで待つ
必要がある。前のエントリでSロックが直ちに許可でき
ないことは必ずしも前のエントリが未確約挿入であるこ
とを意味しない。他のトランザクションは要求されたS
ロックと衝突する前のエントリに現にロックを保持する
ことがある。よって、これらの状態で待機することは従
来のアプローチである。
理由は下記の通りである。その意図は確約された状態に
ある削除中のキー値の少なくとも1つのインスタンスが
インデックスに現に存在するかどうかを調べること又は
当該キー値の全ての既存のインスタンスが現在のトラン
ザクションによる未確約の挿入であると判定することで
ある。現在のトランザクションがキー値の唯一のインス
タンスを削除中ではないので大域インデックスからエン
トリを削除する必要がない場合、現在のトランザクショ
ンは、後にキー値の全ての残りのインスタンスはそれら
が全て未確約の挿入であったので削除されず、且つ全て
の挿入トランザクションは誤って大域インデックスにキ
ー値を取り残してこれらの挿入をロールバックしたこと
を確かめる必要がある。キー値の全ての残りのインスタ
ンスが現在のトランザクション以外のトランザクション
の未確約の挿入である場合、現在のトランザクション
は、前のエントリでSロックを要求することにより、こ
れらのトランザクションの少なくとも1つのトランザク
ションが終了し且つ再びキーの状態を検査するまで待つ
必要がある。前のエントリでSロックが直ちに許可でき
ないことは必ずしも前のエントリが未確約挿入であるこ
とを意味しない。他のトランザクションは要求されたS
ロックと衝突する前のエントリに現にロックを保持する
ことがある。よって、これらの状態で待機することは従
来のアプローチである。
【0101】更に、現在のトランザクションがキー値の
前のエントリ及びたぶん全ての他のインスタンスを挿入
したトランザクションである場合、現在のトランザクシ
ョンは現在のエントリを安全に削除できる。なぜなら、
現在のトランザクションがロールバックする場合、それ
は現在のエントリを再挿入するからである。その結果、
大域インデックスを変更する必要がない。他方、現在の
トランザクションは、それが後に順方向処理の際に全て
の他のインスタンスを削除することになっていた場合、
その時点で大域インデックス内の対応するエントリを削
除する。
前のエントリ及びたぶん全ての他のインスタンスを挿入
したトランザクションである場合、現在のトランザクシ
ョンは現在のエントリを安全に削除できる。なぜなら、
現在のトランザクションがロールバックする場合、それ
は現在のエントリを再挿入するからである。その結果、
大域インデックスを変更する必要がない。他方、現在の
トランザクションは、それが後に順方向処理の際に全て
の他のインスタンスを削除することになっていた場合、
その時点で大域インデックス内の対応するエントリを削
除する。
【0102】インデックスエントリのロッキングプロト
コルは下記の表に要約される。
コルは下記の表に要約される。
【0103】
【表7】
【0104】
【表8】
【0105】
【表9】
【0106】エントリロッキングプロトコルの所与の説
明に基づいて、下記の表に要約されるキー値ロッキング
プロトコルのロッキング規則の背後の理由が容易に理解
されるであろう。
明に基づいて、下記の表に要約されるキー値ロッキング
プロトコルのロッキング規則の背後の理由が容易に理解
されるであろう。
【0107】
【表10】
【0108】
【表11】
【0109】
【表12】
【0110】
【表13】
【0111】要するに、オブジェクトの区画毎にローカ
ルインデックスが生成・維持され且つ大まか大域インデ
ックスがオプションとして生成・維持される並列又は分
散データベースシステムで区画化されたデータが直接供
給される新規の多層インデックス法が提供される。大ま
か大域インデックスは区画識別子(PID) によりインデッ
クス付き区画を識別する。大まか大域インデックスは個
々のインデックスキー値をそれらの目標区画と関連づ
け、インデックスキーに関する高度の区画選択探索属性
を有するアクセス要求を迅速且つ容易に目標区画に指向
し処理できるようにする。インデックス維持ロッキング
プロトコルも提供され、異なるトランザクションによる
同時インデックスアクセス中にローカルインデックスエ
ントリと大まか大域インデックスエントリの間の一貫性
を保証する。ロッキングプロトコルはインデックスエン
トリの挿入及び削除を簡単に且つ効率的に処理する。挿
入又は削除されたキーを含む場合に且つ挿入又は削除さ
れたキーに続くキー及びたぶんそれらに先行するキーに
のみロッキングを最小化する一意的及び非一意的なロー
カルインデックス方式のロッキングプロトコルは、同時
に起きる読取り者、挿入者及び削除者の間の非常に高い
同時性を可能にする。大まか大域インデックスでの実行
を必要とする挿入又は削除動作は、実際に大まか大域イ
ンデックス更新動作が必要かどうかを正しく判定するた
めに、対応するローカルインデックス動作の実行に必要
な全てのロッキングが終了した後にのみ開始できる。
ルインデックスが生成・維持され且つ大まか大域インデ
ックスがオプションとして生成・維持される並列又は分
散データベースシステムで区画化されたデータが直接供
給される新規の多層インデックス法が提供される。大ま
か大域インデックスは区画識別子(PID) によりインデッ
クス付き区画を識別する。大まか大域インデックスは個
々のインデックスキー値をそれらの目標区画と関連づ
け、インデックスキーに関する高度の区画選択探索属性
を有するアクセス要求を迅速且つ容易に目標区画に指向
し処理できるようにする。インデックス維持ロッキング
プロトコルも提供され、異なるトランザクションによる
同時インデックスアクセス中にローカルインデックスエ
ントリと大まか大域インデックスエントリの間の一貫性
を保証する。ロッキングプロトコルはインデックスエン
トリの挿入及び削除を簡単に且つ効率的に処理する。挿
入又は削除されたキーを含む場合に且つ挿入又は削除さ
れたキーに続くキー及びたぶんそれらに先行するキーに
のみロッキングを最小化する一意的及び非一意的なロー
カルインデックス方式のロッキングプロトコルは、同時
に起きる読取り者、挿入者及び削除者の間の非常に高い
同時性を可能にする。大まか大域インデックスでの実行
を必要とする挿入又は削除動作は、実際に大まか大域イ
ンデックス更新動作が必要かどうかを正しく判定するた
めに、対応するローカルインデックス動作の実行に必要
な全てのロッキングが終了した後にのみ開始できる。
【0112】
【発明の効果】本発明の方法は複雑な照会評価及びイン
デックス維持の効率を高め且つトランザクション処理の
高いスループットを取得する。
デックス維持の効率を高め且つトランザクション処理の
高いスループットを取得する。
【図1】区画をインデックスするがレコードはインデッ
クスしない大まか大域インデックスを、少なくとも1つ
のローカルインデックスを参照し次いでオブジェクト区
画内のレコードを参照する区画IDとともに維持する、本
発明の2層インデックス階層を示す図である。
クスしない大まか大域インデックスを、少なくとも1つ
のローカルインデックスを参照し次いでオブジェクト区
画内のレコードを参照する区画IDとともに維持する、本
発明の2層インデックス階層を示す図である。
【図2】図2に示されたデータベーステーブルに関する
本発明のローカルインデックステーブル毎に名前エント
リ及び関連したレコード識別子、即ちRID を示す図であ
る。
本発明のローカルインデックステーブル毎に名前エント
リ及び関連したレコード識別子、即ちRID を示す図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャンドラセハラン・モーン アメリカ合衆国カリフォルニア州、サ ン・ノゼ、ポーツウッド・ドライブ 727番地 (56)参考文献 日経エレクトロニクスNO.378 (1985−9−23)P.235−280
Claims (4)
- 【請求項1】一意的なインデックス内へのインデックス
エントリの挿入を処理するために多層インデックス構造
におけるローカルインデックステーブル及び大域インデ
ックステーブルの間の一貫性を維持する方法であって、 前記多層インデックス構造は区画化されたデータベース
の各区画に対応するインデックスキー値のローカルイン
デックステーブル及び各ローカルインデックステーブル
内の各インデックスキー値毎に少なくとも1つの一意的
な大域インデックスエントリを含む大域インデックステ
ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
クス識別子及びローカルインデックスエントリを含み、
前記ローカルインデックスエントリの各々は前記ローカ
ルインデックステーブルに対応する各データベース区画
内のオブジェクトを識別する識別子及び識別されたオブ
ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
ステーブル内の異なるローカルインデックスキー値毎に
少なくとも1つの大域インデックスエントリを有し、各
大域インデックスエントリはローカルインデックステー
ブルを識別するローカルインデックス識別子及び識別さ
れたローカルインデックステーブル内のローカルインデ
ックスキー値の1つに関する大域インデックスキー値を
有し、 前記方法は、 (a)挿入されるべきインデックスエントリ内のローカル
インデックスキー値が既に前記ローカルインデックステ
ーブル内に存在するか否かを判定し、 (b)もしそれが既に存在すれば挿入を拒絶し、 (c)さもなければ (c-1) そのインデックスエントリを前記ローカルインデ
ックステーブルに挿入し、 (c-2) 前記ローカルインデックスキー値に関する前記大
域インデックスキー値が既に前記大域インデックステー
ブル内に存在するか否かを判定し、 (cー3)もしそれが既に存在すれば (c-3-1)挿入されたローカルインデックスエントリを前
記ローカルインデックステーブルから削除し、 (c-3-2)挿入を拒絶し、 (c-4) 前記ローカルインデックスキー値に関する大域イ
ンデックスキー値が前記大域インデックステーブル内に
存在するか否かを判定し、 (c-5)もしそれが存在しなければ、前記大域インデック
ステーブル内に (c-5-1)前記ローカルインデックスキー値に関する大域
インデックスキー値を挿入し、 (c-5-2)前記ローカルインデックステーブルを識別する
ローカルインデックス識別子を挿入するステップを含む
多層インデックス構造におけるローカルインデックステ
ーブル及び大域インデックステーブルの間の一貫性を維
持する方法。 - 【請求項2】一意的なインデックス内のインデックスエ
ントリの削除を処理するために多層インデックス構造に
おけるローカルインデックステーブル及び大域インデッ
クステーブルの間の一貫性を維持する方法であって、 前記多層インデックス構造は区画化されたデータベース
の各区画に対応するインデックスキー値のローカルイン
デックステーブル及び各ローカルインデックステーブル
内の各インデックスキー値毎に少なくとも1つの一意的
な大域インデックスエントリを含む大域インデックステ
ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
クス識別子及びローカルインデックスエントリを含み、
前記ローカルインデックスエントリの各々は前記ローカ
ルインデックステーブルに対応する各データベース区画
内のオブジェクトを識別する識別子及び識別されたオブ
ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
ステーブル内の異なるローカルインデックスキー値毎に
少なくとも1つの大域インデックスエントリを有し、各
大域インデックスエントリはローカルインデックステー
ブルを識別するローカルインデックス識別子及び識別さ
れたローカルインデックステーブル内のローカルインデ
ックスキー値の1つに関する大域インデックスキー値を
有し、 前記方法は、 (a)挿入されるべきインデックスエントリ内のローカル
インデックスキー値が既に前記ローカルインデックステ
ーブル内に存在するか否かを判定し、 (b)もしそれが存在しなければ (b-1)そのインデックスエントリを前記ローカルインデ
ックステーブルから削除し、 (b-2)ローカルインデックスキー値及びローカルインデ
ックス識別子に関する大域インデックスエントリを前記
大域インデックステーブルから削除する、 ステップを含む多層インデックス構造におけるローカル
インデックステーブル及び大域インデックステーブルの
間の一貫性を維持する方法。 - 【請求項3】非一意的なインデックス内へのインデック
スエントリの挿入を処理するために多層インデックス構
造におけるローカルインデックステーブル及び大域イン
デックステーブルの間の一貫性を維持する方法であっ
て、 前記多層インデックス構造は区画化されたデータベース
の各区画に対応するインデックスキー値のローカルイン
デックステーブル及び各ローカルインデックステーブル
内の各インデックスキー値毎に少なくとも1つの一意的
な大域インデックスエントリを含む大域インデックステ
ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
クス識別子及びローカルインデックスエントリを含み、
前記ローカルインデックスエントリの各々は前記ローカ
ルインデックステーブルに対応する各データベース区画
内のオブジェクトを識別する識別子及び識別されたオブ
ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
ステーブル内の異なるローカルインデックスキー値毎に
少なくとも1つの大域インデックスエントリを有し、各
大域インデックスエントリはローカルインデックステー
ブルを識別するローカルインデックス識別子及び識別さ
れたローカルインデックステーブル内のローカルインデ
ックスキー値の1つに関する大域インデックスキー値を
有し、 前記方法は、 (a)挿入されるべきインデックスエントリ内のローカル
インデックスキー値が既に前記ローカルインデックステ
ーブル内に存在するか否かを判定し、 (b)もしそれが存在しなければ (b-1)そのインデックスエントリを前記ローカルインデ
ックステーブルに挿入し、 (b-2)ローカルインデックスキー値に関する大域インデ
ックスキー値及びローカルインデックステーブルを識別
するローカルインデックス識別子を前記大域インデック
ステーブルに挿入するステップを含む多層インデックス
構造におけるローカルインデックステーブル及び大域イ
ンデックステーブルの間の一貫性を維持する方法。 - 【請求項4】非一意的なインデックス内のインデックス
エントリの削除を処理するために多層インデックス構造
におけるローカルインデックステーブル及び大域インデ
ックステーブルの間の一貫性を維持する方法であって、 前記多層インデックス構造は区画化されたデータベース
の各区画に対応するインデックスキー値のローカルイン
デックステーブル及び各ローカルインデックステーブル
内の各インデックスキー値毎に少なくとも1つの一意的
な大域インデックスエントリを含む大域インデックステ
ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
クス識別子及びローカルインデックスエントリを含み、
前記ローカルインデックスエントリの各々は前記ローカ
ルインデックステーブルに対応する各データベース区画
内のオブジェクトを識別する識別子及び識別されたオブ
ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
ステーブル内の異なるローカルインデックスキー値毎に
少なくとも1つの大域インデックスエントリを有し、各
大域インデックスエントリはローカルインデックステー
ブルを識別するローカルインデックス識別子及び識別さ
れたローカルインデックステーブル内のローカルインデ
ックスキー値の1つに関する大域インデックスキー値を
有し、 前記方法は、 (a)前記ローカルインデックステーブルからインデック
スエントリを削除し、 (b)削除したインデックスエントリ内のローカルインデ
ックスキー値が前記ローカルインデックステーブル内に
まだ存在するか否かを判定し、 (c)もしそれがもはや存在しなければローカルインデッ
クスキー値に関する大域インデックスキー値を持つ大域
インデックスエントリ及びローカルインデックステーブ
ルを識別するローカルインデックス識別子を前記大域イ
ンデックステーブルから削除するステップを含む多層イ
ンデックス構造におけるローカルインデックステーブル
及び大域インデックステーブルの間の一貫性を維持する
方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US149193A | 1993-01-07 | 1993-01-07 | |
US001491 | 1993-01-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07129450A JPH07129450A (ja) | 1995-05-19 |
JP2583010B2 true 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) |
Families Citing this family (364)
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 |
US7353396B2 (en) | 1995-10-02 | 2008-04-01 | Corestreet, Ltd. | Physical access control |
US7600129B2 (en) | 1995-10-02 | 2009-10-06 | Corestreet, Ltd. | Controlling access using additional data |
US6766450B2 (en) * | 1995-10-24 | 2004-07-20 | Corestreet, Ltd. | Certificate revocation system |
US7337315B2 (en) | 1995-10-02 | 2008-02-26 | Corestreet, Ltd. | Efficient certificate revocation |
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 |
US6487658B1 (en) | 1995-10-02 | 2002-11-26 | Corestreet Security, Ltd. | Efficient certificate revocation |
US7822989B2 (en) * | 1995-10-02 | 2010-10-26 | Corestreet, Ltd. | Controlling access to an area |
US6097811A (en) * | 1995-11-02 | 2000-08-01 | Micali; Silvio | Tree-based certificate revocation system |
US8261319B2 (en) | 1995-10-24 | 2012-09-04 | Corestreet, Ltd. | Logging access attempts to an area |
US5727197A (en) * | 1995-11-01 | 1998-03-10 | Filetek, Inc. | Method and apparatus for segmenting a database |
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 |
CN1144127C (zh) * | 1995-11-10 | 2004-03-31 | 索尼公司 | 信息处理装置及信息处理方法 |
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 |
US6427147B1 (en) * | 1995-12-01 | 2002-07-30 | Sand Technology Systems International | Deletion of ordered sets of keys in a compact O-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 |
US5852820A (en) * | 1996-08-09 | 1998-12-22 | Digital Equipment Corporation | Method for optimizing entries for searching an index |
US5745890A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Sequential searching of a database index using constraints on word-location pairs |
US5745898A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for generating a compressed index of information of records of a database |
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 |
US5765168A (en) * | 1996-08-09 | 1998-06-09 | Digital Equipment Corporation | Method for maintaining 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 |
US5765158A (en) * | 1996-08-09 | 1998-06-09 | Digital Equipment Corporation | Method for sampling a compressed index to create a summarized index |
US5864863A (en) * | 1996-08-09 | 1999-01-26 | Digital Equipment Corporation | Method for parsing, indexing and searching world-wide-web pages |
US5832500A (en) * | 1996-08-09 | 1998-11-03 | Digital Equipment Corporation | Method for searching an index |
US5809502A (en) * | 1996-08-09 | 1998-09-15 | Digital Equipment Corporation | Object-oriented interface for an index |
US5787435A (en) * | 1996-08-09 | 1998-07-28 | Digital Equipment Corporation | Method for mapping an index of a database into an array of files |
US5745899A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing information of a database |
US5745900A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing duplicate database records using a full-record fingerprint |
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 |
US7480653B2 (en) * | 1996-10-22 | 2009-01-20 | International Business Machines Corporation | System and method for selective partition locking |
US6754656B1 (en) * | 1996-10-22 | 2004-06-22 | 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 |
AU5915698A (en) * | 1997-01-13 | 1998-08-03 | 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 |
US6043827A (en) * | 1998-02-06 | 2000-03-28 | Digital Equipment Corporation | Technique for acknowledging multiple objects using a computer generated face |
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 |
US6240197B1 (en) | 1998-02-06 | 2001-05-29 | Compaq Computer Corporation | Technique for disambiguating proximate objects within an image |
US6052132A (en) * | 1998-02-06 | 2000-04-18 | Digital Equipment Corporation | Technique for providing a computer generated face having coordinated eye and head movement |
US6421462B1 (en) | 1998-02-06 | 2002-07-16 | Compaq Computer Corporation | Technique for differencing an image |
US6434271B1 (en) | 1998-02-06 | 2002-08-13 | Compaq Computer Corporation | Technique for locating objects within an image |
US6141434A (en) * | 1998-02-06 | 2000-10-31 | Christian; Andrew Dean | Technique for processing images |
US6184858B1 (en) | 1998-02-06 | 2001-02-06 | Compaq Computer Corporation | Technique for updating a background image |
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 |
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 |
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 |
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 |
JP2000259522A (ja) * | 1999-03-08 | 2000-09-22 | Nec Corp | ネットワーク管理システムおよび管理情報転送方法 |
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 |
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 |
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 |
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 |
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 |
US6380947B1 (en) * | 1999-07-22 | 2002-04-30 | At&T Corp. | Method and apparatus for displaying and tree scrolling a hierarchical data structure |
US6272498B1 (en) * | 1999-07-22 | 2001-08-07 | Lucent Technologies Inc. | Method for partitioning multi-dimensional data sets into rectangular partitions |
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 |
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 |
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 |
JP3752945B2 (ja) * | 2000-02-17 | 2006-03-08 | 日本電気株式会社 | ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 |
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 |
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 |
US6708161B2 (en) * | 2000-09-26 | 2004-03-16 | I2 Technologies Us, Inc. | System and method for selective database indexing |
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 |
GB2406681B (en) * | 2000-11-30 | 2005-05-18 | Coppereye 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 |
US6801904B2 (en) * | 2001-10-19 | 2004-10-05 | Microsoft Corporation | System for keyword based searching over relational databases |
US6792414B2 (en) * | 2001-10-19 | 2004-09-14 | Microsoft Corporation | Generalized keyword matching 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 |
US7185003B2 (en) * | 2002-11-14 | 2007-02-27 | Seisint, Inc. | Query scheduling in a parallel-processing database system |
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 |
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 |
US7146365B2 (en) | 2003-01-27 | 2006-12-05 | International Business Machines Corporation | Method, system, and program for optimizing database query execution |
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 |
US7657540B1 (en) | 2003-02-04 | 2010-02-02 | Seisint, Inc. | Method and system for linking and delinking 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 |
US7403942B1 (en) | 2003-02-04 | 2008-07-22 | Seisint, Inc. | Method and system for processing data records |
US7912842B1 (en) | 2003-02-04 | 2011-03-22 | Lexisnexis Risk Data Management Inc. | Method and system for processing and linking data records |
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 |
EP1627488A4 (en) * | 2003-05-13 | 2008-06-04 | Corestreet Ltd | EFFICIENT AND SECURE DATA ACTUALITY SYSTEMS |
WO2005001653A2 (en) * | 2003-06-24 | 2005-01-06 | Corestreet, Ltd. | Access control |
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 |
US7254580B1 (en) * | 2003-07-31 | 2007-08-07 | Google Inc. | System and method for selectively searching partitions of a database |
US6885930B2 (en) * | 2003-07-31 | 2005-04-26 | Siemens Energy & Automation, Inc. | System and method for slip slide control |
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 |
CA2537270C (en) * | 2003-08-29 | 2014-02-18 | 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 |
US8064647B2 (en) | 2006-03-03 | 2011-11-22 | Honeywell International Inc. | System for iris detection tracking and recognition at a distance |
US8090157B2 (en) | 2005-01-26 | 2012-01-03 | Honeywell International Inc. | Approaches and apparatus for eye detection in a digital image |
US7761453B2 (en) * | 2005-01-26 | 2010-07-20 | Honeywell International Inc. | Method and system for indexing and searching an iris image database |
US8050463B2 (en) | 2005-01-26 | 2011-11-01 | Honeywell International Inc. | Iris recognition system having image quality metrics |
US8442276B2 (en) | 2006-03-03 | 2013-05-14 | Honeywell International Inc. | Invariant radial iris segmentation |
US7593550B2 (en) | 2005-01-26 | 2009-09-22 | Honeywell International Inc. | Distance iris recognition |
US8098901B2 (en) | 2005-01-26 | 2012-01-17 | Honeywell International Inc. | Standoff iris recognition system |
US8705808B2 (en) * | 2003-09-05 | 2014-04-22 | Honeywell International Inc. | Combined face and iris recognition system |
KR20060097131A (ko) * | 2003-11-19 | 2006-09-13 | 코아스트리트 리미티드 | 분산 위임 인증 경로 획득 및 검증 |
CA2872032A1 (en) * | 2004-01-09 | 2005-08-04 | Corestreet, Ltd. | Signature-efficient real time credentials for ocsp and distributed ocsp |
US20050210023A1 (en) * | 2004-03-18 | 2005-09-22 | Renato Barrera | Query optimizer using implied predicates |
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 |
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) |
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 |
US8266234B1 (en) * | 2004-06-11 | 2012-09-11 | Seisint, Inc. | System and method for enhancing system reliability using multiple channels and multicast |
US7917495B1 (en) | 2004-06-11 | 2011-03-29 | Seisint, Inc. | System and method for processing query requests 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 |
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 |
US7693826B1 (en) | 2004-06-11 | 2010-04-06 | Seisint, Inc. | System and method for pre-compiling a query and pre-keying a database system |
US7801911B1 (en) * | 2004-06-11 | 2010-09-21 | Seisint, Inc. | System and method for using activity identifications in a database system |
US7739287B1 (en) | 2004-06-11 | 2010-06-15 | Seisint, Inc. | System and method for dynamically creating keys 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 | 富士ゼロックス株式会社 | データ管理システム及びデータサーバ |
JP4839706B2 (ja) * | 2005-07-12 | 2011-12-21 | 株式会社日立製作所 | データベース管理システムのインデックス運用方法 |
CN100442282C (zh) * | 2005-08-16 | 2008-12-10 | 杭州华三通信技术有限公司 | 分布式系统中数据查询的方法及板间数据同步的方法 |
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 |
WO2007101275A1 (en) * | 2006-03-03 | 2007-09-07 | Honeywell International, Inc. | Camera with auto-focus capability |
WO2008019169A2 (en) | 2006-03-03 | 2008-02-14 | Honeywell International, Inc. | Iris encoding system |
WO2007101276A1 (en) | 2006-03-03 | 2007-09-07 | Honeywell International, Inc. | Single lens splitter camera |
GB2450024B (en) * | 2006-03-03 | 2011-07-27 | Honeywell Int Inc | Modular biometrics collection system architecture |
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 |
US7644062B2 (en) * | 2006-03-15 | 2010-01-05 | Oracle International Corporation | Join factorization of union/union all queries |
US7809713B2 (en) * | 2006-03-15 | 2010-10-05 | Oracle International Corporation | Efficient search space analysis for join factorization |
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 |
JP4891657B2 (ja) * | 2006-05-29 | 2012-03-07 | 株式会社野村総合研究所 | データ記憶システム、ファイル検索装置およびプログラム |
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 |
JP4931547B2 (ja) * | 2006-10-26 | 2012-05-16 | 中国電力株式会社 | 情報管理システム |
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 |
US8209294B2 (en) * | 2007-06-15 | 2012-06-26 | Oracle International Corporation | Dynamic creation of database partitions |
US8135688B2 (en) * | 2007-06-15 | 2012-03-13 | Oracle International Corporation | Partition/table allocation on demand |
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 |
US8335767B2 (en) | 2007-10-17 | 2012-12-18 | Oracle International Corporation | Maintaining and utilizing SQL execution plan histories |
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 |
CN102027468B (zh) * | 2008-05-16 | 2014-04-23 | 上海惠普有限公司 | 提供用于检索的地理图像 |
US8290917B2 (en) * | 2008-06-02 | 2012-10-16 | Microsoft Corporation | Reordering of data elements in a data parallel system |
GB2472358A (en) | 2008-07-02 | 2011-02-02 | Lexisnexis Risk & Information Analytics Group Inc | Database system and methods |
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 |
CN102317938B (zh) | 2008-12-22 | 2014-07-30 | 谷歌公司 | 用于复制内容可寻址存储集群的异步分布式去重 |
US8630464B2 (en) * | 2009-06-15 | 2014-01-14 | Honeywell International Inc. | Adaptive iris matching using database indexing |
US8472681B2 (en) | 2009-06-15 | 2013-06-25 | Honeywell International Inc. | Iris and ocular recognition system using trace transforms |
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. |
US10262050B2 (en) | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US9740762B2 (en) * | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US9881034B2 (en) | 2015-12-15 | 2018-01-30 | Mongodb, Inc. | Systems and methods for automating management of distributed databases |
US10346430B2 (en) | 2010-12-23 | 2019-07-09 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US10740353B2 (en) | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10713280B2 (en) | 2010-12-23 | 2020-07-14 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10614098B2 (en) | 2010-12-23 | 2020-04-07 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US11544288B2 (en) | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10977277B2 (en) | 2010-12-23 | 2021-04-13 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US10997211B2 (en) | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US9805108B2 (en) | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US10366100B2 (en) | 2012-07-26 | 2019-07-30 | Mongodb, Inc. | Aggregation framework system architecture and method |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US8572031B2 (en) | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
US11615115B2 (en) | 2010-12-23 | 2023-03-28 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
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 |
US10872095B2 (en) | 2012-07-26 | 2020-12-22 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11403317B2 (en) | 2012-07-26 | 2022-08-02 | 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 |
WO2014180178A1 (en) * | 2013-05-07 | 2014-11-13 | Huawei Technologies Co., Ltd. | Method, apparatus and system for establishing secondary index in distributed storage system |
US9069987B2 (en) * | 2013-06-21 | 2015-06-30 | International Business Machines Corporation | Secure data access using SQL query rewrites |
JP6111337B2 (ja) | 2013-08-22 | 2017-04-05 | 株式会社日立製作所 | データベース管理システム及びデータベース管理方法 |
WO2015077951A1 (en) * | 2013-11-28 | 2015-06-04 | Intel Corporation | Techniques for block-based indexing |
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 |
US9805079B2 (en) | 2014-08-22 | 2017-10-31 | Xcalar, Inc. | Executing constant time relational queries against structured and semi-structured 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 |
US10713275B2 (en) | 2015-07-02 | 2020-07-14 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US10423626B2 (en) | 2015-09-25 | 2019-09-24 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US10846411B2 (en) | 2015-09-25 | 2020-11-24 | Mongodb, Inc. | Distributed database systems and methods with encrypted storage engines |
US10394822B2 (en) | 2015-09-25 | 2019-08-27 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US10673623B2 (en) | 2015-09-25 | 2020-06-02 | Mongodb, Inc. | Systems and methods for hierarchical key management in encrypted distributed databases |
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 |
US10296235B2 (en) | 2016-06-27 | 2019-05-21 | International Business Machines Corporation | Partial volume reorganization to increase data availability |
US10621050B2 (en) | 2016-06-27 | 2020-04-14 | Mongodb, Inc. | Method and apparatus for restoring data from snapshots |
EP3483738A1 (en) | 2017-05-12 | 2019-05-15 | 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
Non-Patent Citations (1)
Title |
---|
日経エレクトロニクスNO.378(1985−9−23)P.235−280 |
Also Published As
Publication number | Publication date |
---|---|
JPH07129450A (ja) | 1995-05-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 | |
US20210042286A1 (en) | Transactional key-value store | |
US9830109B2 (en) | Materializing data from an in-memory array to an on-disk page structure | |
Kornacker et al. | High-concurrency locking in R-trees | |
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 | |
Graefe | Sorting And Indexing With Partitioned B-Trees. | |
US6411964B1 (en) | Methods for in-place online reorganization of a database | |
DeWitt et al. | Implementation techniques for main memory database systems | |
US6792432B1 (en) | Database system with methods providing high-concurrency access in B-Tree structures | |
Lu et al. | T-tree or b-tree: Main memory database index structure revisited | |
US8010497B2 (en) | Database management system with efficient version control | |
EP0303231B1 (en) | Method and device for enabling concurrent access of indexed sequential data files | |
US7577658B2 (en) | Hierarchical locking in B-tree indexes | |
US6480848B1 (en) | Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements | |
US20150142733A1 (en) | System and method for efficient management of big data in a database using streaming tables | |
Bober et al. | Multiversion query locking | |
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 | |
WO2022206398A1 (en) | Method and apparatus for reading data maintained in tree data structures | |
Taniar et al. | Global parallel index for multi-processors database systems | |
Graefe | Hierarchical locking in B-tree indexes | |
Kuno et al. | Deferred maintenance of indexes and of materialized views |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |