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
Application number
JP5316885A
Other languages
English (en)
Other versions
JPH07129450A (ja
Inventor
デービッド・エム・チョイ
チャンドラセハラン・モーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07129450A publication Critical patent/JPH07129450A/ja
Application granted granted Critical
Publication of JP2583010B2 publication Critical patent/JP2583010B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般に区画化されたデー
タに対する多層インデックス法、特に多層インデックス
構造におけるローカルインデックステーブル及び大域イ
ンデックステーブルの間の一貫性を維持する方法に関す
る。
【0002】
【従来の技術】データベースシステムに頻繁に記憶させ
たい情報量が増大するにつれて、データ即ち完全なレコ
ードはしばしば2以上のデータベース記憶サイトに記憶
される。データベースプログラムの1つの重要な側面は
個々のデータベースにあるレコードに迅速かつ効率的に
アクセスできる能力である。データの配置及び検索を適
切に扱うために、データ処理システムはしばしばデータ
ベース管理プログラムを含む。これらのプログラムは多
くのノード又はサイトに記憶された複数のレコードから
成ることがある各データベース情報に対するアクセスを
容易にする。リレーショナルデータベース管理プログラ
ムはこの能力を提供する。
【0003】1つの一般的なデータベースの構成はテー
ブル毎に行及び列の情報を含む種々のテーブルから成る
構成である。テーブル内の1つの行を横切って記憶され
た情報は1つのレコードを構成し、該レコードのフィー
ルドは該テーブル内の列を構成する。すなわち、テーブ
ルは個々のレコードの行及びレコードフィールドの列を
含む。1つのレコードは2以上のフィールドの情報を含み
うるので、フィールドの情報はデータベーステーブルの
列を構成する。技術的には他のデータベース構成も存在
する。データベース管理プログラムは複数のユーザを支
援し、各ユーザが同時に同じテーブルをアクセスするこ
とを可能にする。
【0004】関連するテーブルのレコードの迅速且つ効
率的なアクセスを可能にするために一般にデータベース
管理プログラムによりインデックスファイルが用いられ
る。一般にこれらのインデックスファイルはBツリー構
造で構成される。Bツリー構造は多くのレベルのノード
が分岐する根ノードを含む。これらのノードに含まれた
情報は、ツリーの次のレベルにあるノードを指すポイン
タを含むか、又はデータベース内に記憶された2以上の
レコードを指すポインタを含む。これらのポインタはデ
ータベース内に記憶されたレコードを参照する追加のキ
ーレコード情報を含む。レコードキーはツリーの種々の
分岐点にノードを通じて配列された形式で記憶される。
例えば、社員名のアルファベット順リストに対するイン
デックスツリーが存在しうる。根ノードは該ツリー内の
次のレベルのノードにより間接又は直接に参照できる個
々のレコード情報に関連する参照キーデータを含む。参
照キーはインデックスフィールドに関する情報、例えば
社員名のアルファベットのスペリングを含む。よって、
根ノード内の配列されたキーはノードの連続する次のレ
ベルを指す。すなわち、連続する次のノードはA、B及び
Cで始まる全ての社員名を間接又は直接に参照する。連
続する最初のノードと並行する、連続する次のノードは
姓が文字D〜Mで始まる社員レコードを含む。このレベル
の連続する最後のノードはN〜Zで始まる姓を有する社員
のレコードを参照する。インデックスツリーによる探索
が開始されると、最後には下部のノードに達する。下部
のノードの内容は記憶装置内の個々のレコードを指すレ
コードキー情報を含むか又はツリーのなかの分岐ノード
の1つを再指定できる。
【0005】並列データベース又は分散データベースシ
ステムでは、複数の記憶サイトにわたって区画化された
テーブルをアクセスする問題はより複雑になる。1つの
サイトは少なくとも1つの区画テーブルを記憶できる。
テーブルの各区画は一般に物理記憶装置のグループと関
連づけられる。一般に区画はテーブルのレコードの水平
部分である。データベースオブジェクトを水平に区画化
する動機はユーザ照会の並列処理を容易にし又はそれ自
身の局所的に記憶されたレコードの効率的なアクセスを
各ノードが保持しうるように複数の記憶サイトの間で非
常に大きいテーブルの情報、例えば大会社の全社員の情
報を区画化することである。別の動機は物理的な記憶容
量のより良好な管理を容易にするように複数の管理サイ
トにわたる大きなデータベーステーブルを区画化するこ
とである。
【0006】データベースオブジェクトはそのレコード
及びフィールドの内容により水平又は垂直に区画化され
る。水平区画化はテーブルの一定の行を1つの記憶サイ
トに記憶するが該テーブルの他の行は別の記憶サイトに
記憶することを意味する。垂直区画化はテーブルの一定
の列即ちフィールドを1つの記憶サイトに記憶するが他
のフィールドは別のサイトに記憶することを意味する。
各区画に別々のインデックスツリーを構築できる。1つ
のツリーは社員A〜Jの氏名及び住所を含むが別のツリー
は社員K〜Lの氏名及び住所を含む。以下、同様である。
このように、記憶された情報のタイプ及びアプリケーシ
ョンにより、極めて大量のレコード情報をテーブル区画
化法により複数の記憶サイトにわたり記憶することがで
きる。
【0007】複数の区画又はノードに分散されているデ
ータ情報を管理するためにリレーショナルデータベース
管理システム(RDBMS) を用いることができる。データベ
ーステーブルをそのレコードの内容で区画化する場合、
特定のテーブルレコードの少なくとも1つのフィールド
を当該個々のレコードの区画キーとして指定できる。あ
る場合には、当該社員のレコードの区画キーとして社員
番号を指定し一定の値の範囲内の社員番号を含むレコー
ドのセットを各区画に記憶する。異なる区画基準がそれ
らのレコードをそれらの区画キー値(社員の勤務地のよ
うなレコードに含まれた他の情報の1つでもよい)により
直接にグループ化し、勤務地フィールドの値でハッシュ
することにより区画を決定する。他方、社員のレコード
に含まれた情報とは無関係なむしろ記憶サイト又はノー
ドに関係する情報のような内容に基づかない基準を用い
て、データベーステーブルが区画化されることもある。
【0008】従来技術の1つの問題として、関連する探
索の効率的な支援に関するものがある。関連探索の効率
性を高めるために、探索フィールド又は記憶されたデー
タのフィールドにしばしばインデックスが維持される。
【0009】一般にインデックスは別個のテーブル、即
ち(インデックスキー、レコードポインタの)形式を有す
るエントリのリストを含む。このインデックステーブル
は一般にレコード情報のある特定の部分であるインデッ
クスキー値により配置され、そして一般に前述のような
Bツリー構造に構築される。インデックスキー値は社員
番号又は他のレコード情報でよい。インデックスキーエ
ントリの値によるインデックステーブルの配置は候補レ
コードのリストを制限し探索を容易にするので、ユーザ
が必要とするレコードのアクセス時間を短縮する。レコ
ードポインタはもう1つのインデックステーブルエント
リであり、レコード識別子(RID) と呼ばれるシステム割
当てトークンのような固定長の1つの情報である。ある
データベース構成では、レコードポインタをユーザが与
えることがある。いずれの場合も、レコードポインタは
データレコードを一意的に識別する。
【0010】区画化されたデータの場合、個々のテーブ
ル区画毎に別個にローカルインデックスと呼ばれるイン
デックスが維持される。複数の区画に存在するデータを
参照する単一のインデックスが維持されない場合、これ
は関連アクセス効率問題に対するローカルインデックス
のみの解法として知られている。ローカルインデックス
のみの解法は区画化されたデータに対するインデックス
機能を提供する簡単な方法である。この解法では、ロー
カルインデックスは前述のインデックステーブルに類似
のテーブル又はリストでもよい。
【0011】ローカルインデックスのみの解法の簡明さ
には非常に大きいデータベースでは致命的な厳しい性能
上のペナルティが付随している。各区画サイトにはロー
カルインデックスのみが存在するから、大抵のアクセス
要求は処理のため全ての区画に同報通信される。各ノー
ドはそのテーブルを検査し所望のレコード情報が当該ノ
ードに存在するかどうかを調べなければならない。ロー
カルインデックスのみの解法も大部分のアクセス要求を
正しく評価するためにテーブルの全区画が使用できるこ
とを必要とする。複数のノードを有するシステムにわた
り、貴重な処理資源が無用な活動により消費されること
がある。
【0012】処理資源を消費するのはユーザだけではな
い。各サイトに送られたアクセス要求は必ずしもユーザ
が明白に指定したものだけとは限らない。高いレベルの
ユーザ要求を処理し評価する際にデータベース管理シス
テムにより生成された低いレベルの要求があるかも知れ
ない。複数の記憶サイトにわたる参照の完全性を維持す
る一定のデータベース拘束を強制するシステム要求もあ
るかも知れない。加えて、アクセス要求はキーの一意性
を強制する特定のキー値の存在の検査のような全オブジ
ェクトに関する一定の情報を得る必要があるかも知れな
い。更に、次の命令セットに着手する前に全てのローカ
ルノードがそれらのそれぞれの動作を終了するまで待つ
時間のために照会応答時間が延長される。複数の区画に
わたる多くの情報がアクセスされる照会時間の延長はか
なりの性能低下をもたらす。性能の影響はテーブルを構
成する区画の数とともに急速に増すことがある。その結
果、データベースワークロードがかなり増加するのでシ
ステム効率スループットが低下し、このようなシステム
はユーザには動作が鈍いものに見える。
【0013】無用な活動のために、ローカルインデック
スのみの解法は関連探索には評価できる解法ではない。
すなわち、テーブルの区画の数が急激に増加し始めると
ローカルインデックスのみの解法の良好な実行は続かな
い。
【0014】区画化されたデータに更に効率的なインデ
ックス支援を提供するために、インデックスされるテー
ブルの全ての区画をカバーするインデックスである完全
大域インデックスが利用できる。完全大域インデックス
はテーブル内の関連するオブジェクト毎に少なくとも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: インデックス論理積
/論理和及び属性の再評価が論述されている。
【0017】
【発明が解決しようとする課題】本発明の第1の目的
は、複雑な照会評価及びインデックス維持を高めるため
にローカルインデックスエントリが同じノードにある対
応する区画と同じ場所に配置された場合に各区画の大ま
か大域インデックス及びローカルインデックスを有する
区画化されたデータに対する多層インデックス法を提供
することにある。
【0018】本発明の第2の目的は、異なるトランザク
ションによる同時インデックスアクセスが最大化される
ようにローカルインデックスと大まか大域インデックス
の間の一貫性を保証するインデックス管理の方法を提供
することにある。
【0019】本発明の第3の目的は、挿入又は削除され
たキー及びたぶん前記挿入又は削除されたキーに先行す
るキーの場合にのみロッキングを最小化する一意的及び
非一意的のローカルインデックス方式のロッキングプロ
トコルを有するインデックス管理法を提供し、同時に存
在する読取装置、挿入装置及び削除装置の間に非常に高
い同時性を可能にすることにある。
【0020】本発明の第4の目的は、インデックスキー
の高度の区画選択探索属性を有するアクセス要求を迅速
且つ容易に目標区画に指向し処理できるように、個々の
インデックスキー値をそれらの目標区画と関連づける大
まか大域インデックスを提供することにある。
【0021】
【課題を解決するための手段】本発明の実施例に従って
前記目的を達成するために、区画化されたデータに対す
る分散データベース多層インデックス方式はテーブルの
区画毎にローカルインデックスを生成・維持し、更に大
まか大域インデックスが生成・維持される。大まか大域
インデックスは区画識別子(PID) によりインデックス区
画を識別する。インデックス維持アルゴリズムは、イン
デックスの挿入及び削除を簡単かつ効率的に扱うロッキ
ングプロトコルにより、異なるトランザクションによる
同時インデックスアクセス中のローカルインデックスエ
ントリ及び大まか大域インデックスエントリの間の一貫
性を保証する。実際に大まか大域インデックス更新動作
が必要かどうかを正しく判定するために対応するローカ
ルインデックス動作の実行に必要な全てのロックが終了
して初めて、大まか大域インデックスで実行する必要が
ある挿入及び削除動作を開始することができる。
【0022】本発明により提供される区画化されたデー
タに対する多層インデックスの第1の利点は、各区画を
それ自身のアクセス法を含む別個のデータモジュールと
してパッケージできるように個々の区画のローカルイン
デックスを維持することにより除去/移動可能なデータ
ベース装置を提供し、そして、データベースネットワー
ク故障の場合にもローカルインデックスが使用できるの
でデータベースのオブジェクト区画がローカル照会の評
価にも使用でき、全ローカルデータの使用可能度を増す
ことである。
【0023】本発明により提供される区画化されたデー
タに対する多層インデックスの第2の利点は、データベ
ースシステムでレコードの全てのインデックスエントリ
をそのレコードと同じノードに保持することによりデー
タ集中検索を行うのでプロセッサ間通信を少なくすると
同時にデータページの非同期的プリフェッチング及びロ
ーカルインデックス動作を可能にし、ローカルノードが
より確実に処理を実行し、並行動作を最大化するととも
にノード不均一及び自主性に適応し促進することであ
る。
【0024】本発明の第3の利点は、もし特定のインデ
ックスキーが区画選択でなければ、大まか大域インデッ
クスなしにローカルインデックスのみを用いるオプショ
ンをデータベース設計者に提供するので当該特定のキー
に関する情報の維持が不要となり、データベース設計の
柔軟性を高め且つデータベース最適化の機会を増すこと
である。
【0025】本発明により提供される区画化されたデー
タに対する多層インデックスの第4の利点は、複数のア
クセス法を有するデータベースシステムに転送できるよ
うに、データが区画化されなかったかのように各区画内
の各要求を迅速に評価することである。
【0026】本発明により提供される区画化されたデー
タに対する多層インデックスの第5の利点は、種々のデ
ータ区画化方式と互換性があり、種々の非キー反転ロー
カルアクセス法、例えばハッシング、Rツリー及び符号
に容易に適応するので、厄介な制約を付加されずに使用
可能なアクセス法のなかから照会を処理する方法を最適
化機能が自由に選択し、キーの一意性を検査する大域イ
ンデックス単独アクセス、及び複数の大域インデックス
から得られたPID を組合わせる大域インデックス論理積
/論理和動作を含むように容易に拡張され、そして同じ
場所に配置されたオブジェクトについては、ローカルイ
ンデックスを使用可能に維持し協同動作を容易にするこ
とである。
【0027】本発明の第6の利点は、大域インデックス
サイトにホットスポットを生成する確率を減らすために
大まか大域インデックスを用いて目標区画に直接にアク
セス要求を経路指定するので、全容量を増やして非一意
的なインデックスの場合にアクセスをより効率的にし且
つ大域インデックスサイトに記憶された情報の量をより
最小化することである。
【0028】本発明の第7の利点は、区画化の程度に比
例する効率的で動的なインデックス解法を提供すること
によりデータアクセス効率を高め且つ区画化されたデー
タベースの比例性を最終的にかなり改善することであ
る。
【0029】
【実施例】リレーショナルデータベース管理システム(R
DBMS)により管理されるテーブルのようなデータベース
オブジェクトは、オブジェクトの多くの区画の1つにオ
ブジェクトの各レコードが記憶されるように水平に区画
化される。一般にオブジェクトの各区画は他の区画のも
のと共通の要素を持たず且つ別個のプロセッサにより管
理されることもありされないこともある物理的な記憶装
置のグループに関連づけられる。区画は一意的な区画識
別子即ちPID を有する。データベースを水平に区画化す
る動機は、DBMS照会の並列処理を容易にするように1つ
のDBMSシステム内の複数のノード又はプロセッサの間で
データを区画化し、各ノードがローカルレコードのアク
セス効率を保持できるようにDBMSネットワーク内の複数
のノード又はサイトの間に分散されたオブジェクトを支
援し、そして物理的な記憶装置容量の管理を容易にする
ように複数の記憶グループにわたる大きなデータベース
オブジェクトを区画化することにある。データベースオ
ブジェクトの各区画が別々のローカルDBMSノードにより
管理される前記パラダイムは本発明の良好な実施例の場
合に想定されるが、本発明は他の形式の区画化されたデ
ータにも等しく適用できる。
【0030】関連探索効率を支援するために、少なくと
も1つの探索フィールドにしばしばインデックスが維持
される。インデックスは探索フィールド上で反転され
る。それは論理的にはエントリのリストである。本発明
の大域インデックステーブルは大まかであるのが好まし
い。それは、このテーブルがインデックスキー値をエント
リとするリスト及びPIDのセットのみを含むからである。
インデックスキー値に関連づけられたPID のリストは重
複したものを含まないので、たとえ対応するローカルイ
ンデックステーブルがインデックスキーの複数のインス
タンスを含んでいても、特定のキー値が存在する所与の
区画に対する大域インデックステーブルには1つのエン
トリしか存在しない。一意的な大域インデックスが決め
られると、大域インデックスエントリは効率のために区
画IDの他にレコード識別子(RID) を含むことができる。
【0031】RID を包含するための追加のインデックス
維持費用は少なく、RID を使用できることはローカルイ
ンデックスアクセスを省くので、一般に1つの一意的な
キーを用いて数レコードをアクセスするトランザクショ
ン処理の性能を改善する。一意的な大域インデックスに
任意に記憶できるRID は、ノードの自主性に対する影響
及び通常は割高な通信費用のために、分散データベース
にとってはあまり魅力的ではない。データベースアプリ
ケーションによっては、一意的な大域インデックステー
ブルにRID を記憶しないことが又はRID をそれらが使用
できるときに用いずにローカルインデックステーブルを
アクセスすることが望ましいことがある。更に、大域イ
ンデックステーブルにRID を記憶することは主キーが用
いられない限り分散データベースのノード自主性を低下
させ、RID を送りそして検索されたレコードを再認定す
る費用がデータ集中照会に見合うものとなる。区画が認
識されると、RID を含む一意的な大域インデックスだけ
が更新を必要とするが他の全ての大域インデックスは影
響を受けないことが利点である。
【0032】各区画内では、あたかもデータが区画化さ
れていなかいかのように通常の方法で要求が評価され
る。これは物理的なレコードの集合、非同期入出力及び
大きなバッファのような使用できる全てのアクセス法の
利用を含む。DBMSノード間のデータアクセスインタフェ
ースはコンパクトであり従来のDBMS APIにより近いの
で、アクセス要求は高いレベルに留まる。
【0033】大域インデックスをインデックスとして生
成すべきか又はドロップすべきかをユーザが指定できる
ように、DBMSのSQL DDL インタフェースは、例えば、イ
ンデックス生成、インデックスドロップ及びインデック
ス変更ステートメントに特別のキーワードを含むように
拡張できる。あるいは、明白な生成ステートメント及び
ドロップステートメントが直接に大域インデックスとし
て定義できる。他方、DBMSは予想されたシステムの必要
性に基づきそれ自身で大域インデックスを生成するよう
に決定しシステム性能を高めることもできる。これはDD
L 処理の一部として実行するか又は照会コンパイル時間
に最適化機能により実行することができる。インデック
スを用いる全てのアクセス要求が大域インデックス単独
でも区画選択でもない場合、大域インデックスは無効で
ある。この場合、ローカルインデックスのみの解法はこ
のインデックスについて完全に適切であるので、維持費
用及び大域インデックスに対する記憶装置を完全に不要
にする。もし特定のインデックスキーが区画選択ではな
くかつそのキーに関する大域情報を維持する必要がなけ
れば、データベース設計者は大まか大域インデックスな
しにローカルインデックスだけを生成するオプションを
有する。本発明のインデックス方式はどちらの場合にも
適用できる。
【0034】本発明の大まか大域インデックスの意図的
な使用は、インデックスキーの高度に区画選択的な探索
属性によるアクセス要求が処理のために目標区画に指向
されるように、個々のインデックスキーをそれらの目標
区画と関連づけることである。それはインデックスキー
に関する大域情報の維持にも用いられ、該大域情報が、
例えば、キー値の存在を検査し又は異なるキー値の数を
カウントするために、インデックス単独アクセスにより
検索できるようにする。
【0035】本発明のインデックス法の良好な実施例は
区画化されたデータベースのオブジェクトに対する2層
インデックス法である。この良好な方法は、データベー
スの各区画に対するローカルインデックステーブルの生
成、及び各ローカルインデックステーブル内の異なるロ
ーカルインデックスキー毎に1つの一意的な大域インデ
ックスエントリを含む大まか大域インデックステーブル
の生成を含む。ローカルインデックステーブルは該テー
ブルの対応する区画内の関連するオブジェクト毎に1つ
のローカルインデックスエントリを含む。各ローカルイ
ンデックスエントリは、対応する区画内の関連するオブ
ジェクトを識別するオブジェクト識別子、例えばレコー
ドポインタ、及び識別された関連するオブジェクトに関
するローカルインデックスキー値を含む。
【0036】図1に示すように、オブジェクトの各区画
にローカルインデックスが維持される。RID 又は主キー
はレコードポインタとして用いられる。区画をインデッ
クスするがレコードは維持しない大まか大域インデック
スが維持され、区画IDが少なくとも1つのローカルイン
デックスを参照し該ローカルインデックスはオブジェク
ト区画内のインデックスレコードを参照する。
【0037】既存のオブジェクトにインデックスを生成
するためには、オブジェクトを走査しインデックスキー
及び対応するレコードポインタを捕捉する必要がある。
ローカルインデックスを生成するためにインデックスキ
ー値及びレコードポインタが各区画に記憶される。大域
インデックスが用いられると仮定して、異なるキー値の
分類されたリストが大域インデックスノードに送られ
る。分類されたキー値のリストを組合せて各リストと関
連したPID を付加することにより大まか大域インデック
ステーブルが生成される。区画内の複数のレコードが同
じインデックスキー値を有する場合、大まか大域インデ
ックスには1つのエントリだけがある。よって、キー値
の最初のインスタンスがローカルインデックステーブル
に挿入されるときにのみ、大域インデックステーブルに
エントリが挿入される。同様に、キー値の最後のインス
タンスがローカルインデックスから削除されるときにの
み、大域インデックステーブルからエントリが削除され
る。これはインデックス維持費用を軽減する。
【0038】一意的なインデックスに対しては、大域イ
ンデックステーブルはローカルインデックステーブルア
クセスのスキップを可能にするようにインデックスされ
たレコードの識別子を含むができる。大まか大域インデ
ックスがレコードポインタを含む場合、アクセス要求は
それに仮のRID= 又は主キー=選択属性が付加された
後、目標区画に送られる。付加された属性は目標レコー
ドを取出す高速経路として使用できる。走査された大域
インデックステーブルエントリがロックされない、反復
できない読取り動作のようなトランザクションでは、大
域インデックスに付加された選択属性は後に、即ち高速
経路から検索されたレコードが原始探索属性を用いて再
認定されねばならないときに再検査されねばならない。
他のデータベースオブジェクトのように、大まか大域イ
ンデックステーブルは必要ならそれ自身区画化されても
よい。
【0039】簡単なアクセス要求が適切な大域インデッ
クスを用いて区画のサブセットに対する探索範囲を縮小
する探索キーのみを含む場合、目標PID のリストを含む
ために大域探索テーブルが正規のインデックスとほとん
ど同じに探索される。重複するPID が除去された後、ロ
ーカル評価のためにこれらのPID により識別された目標
区画に同じアクセス要求が送られる。適切な大域インデ
ックスがない場合、評価のために全ての区画に該要求が
同報通信される。
【0040】本発明の大域及びローカルインデックステ
ーブルの例として表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 区画に関連する。
【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つのエントリを有する。
【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に
配置されている。従って、各社員名は対応する区画に生
成されたローカルインデックステーブルに現われる。
【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"に対する一回の参照のみを含む。
【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つのローカルインデックスに関連して重複
して現われることはない。
【0046】図1、図2及び表1、表2に示された2層イン
デックス方式の構成で分かるように、大まか大域インデ
ックスは仕事をローカルノードに分散する傾向がある。
更新トランザクションの場合、大まか大域インデックス
はレコード変更に対する反応がずっと低くなる。照会処
理の際の典型的なデータ集中検索の場合、本発明はイン
デックスされたレコードと同じノードに全てのローカル
インデックスエントリを維持するので、通信費用を少な
くし、データページの非同期の事前取出し及び並行ロー
カルインデックス動作を可能にする。インデックスペー
ジの編集及び書込を含む、ローカルインデックス及び大
域インデックスの物理的な構成の費用は、本発明の2層
インデックス法にローカルインデックスの並行構成の利
点を与えるインデックスの全サイズに比例する。
【0047】大まか大域インデックスは、単に照会結果
を列挙する代わりに、処理する目標区画にアクセス要求
を経路指定するのに主として用いられる。大まか大域イ
ンデックスは (例えば、所与のキー値の存在を証明し、
キーの一意性を保証し、又は関連制約又はキー濃度をサ
ポートする) インデックスキーに関する大域情報を得る
ために用いられることもある。その結果、インデックス
されたオブジェクトのサイズとともに区画の数が増すと
き、区画当りのワークロード及び全経過時間は割合に安
定している。従って、大まか大域インデックスはデータ
アクセス効率を高め且つ資源消費を少なくする。更に、
区画の柔軟性が成長を有効に扱う能力に寄与する。従っ
て、大まか大域インデックス法は区画化されたデータベ
ースの伸縮性(スケイラビリティ)をかなり改善する。
【0048】下記の動作は選択されたレコードをオブジ
ェクトから検索する本発明のインデックス法の実現を容
易にする。
【0049】もしPID として評価できる区画キーに関す
る選択属性があれば、その属性を評価する。もし適切に
選択できる大まか大域インデックスが使用可能であれ
ば、資格のあるPID をその大まか大域インデックスから
取得する。PID を分類し、重複を除去し、そして、区画
キーに基づいたPID があれば、それらと組合わせる。一
意的なインデックスのレコード識別子を取得する。追加
の大まか大域インデックスがそれらから取得されたPID
の論理積/論理和の演算により用いられることもある。
もしPID リストがあまりに長くなれば、即ち、それがも
はや選択的ではなくなれば、DBMSは大域インデックスの
使用を停止し、保持されているSロックをもしあれば解
放し、そして代わりに照会の同報通信を開始する。もし
照会が区画選択でなければ、PID は論理的に全区画のリ
ストにされる。識別された各区画に照会を送り評価す
る。任意の使用可能なローカルアクセス法、例えばロー
カルインデックス等を利用する。どのローカルインデッ
クスを使用するかの選択は使用された大域インデックス
と異なることがある。任意の適切なローカル評価手法、
例えば、インデックス論理積/論理和、リスト分類又は
非同期I/O を用いる。各ノードは、そのデータベース統
計、レコード集合方式及び使用可能なアクセス法により
異なる照会評価計画を用いてもよい。走査された大域イ
ンデックスエントリがロックされない反復不可能な読取
りトランザクションでは、一意的な大域インデックスか
ら得られたレコード識別子を用いて検索されるレコード
は再認定されるべきである。最後に、複数のノードで照
会が評価された場合、それらの結果を組合わせる。
【0050】良好な実施例の2層インデックス法の場
合、非一意的なインデックスの大域インデックスは必ず
しも用いられるとは限らず、又は実施例によっては維持
すらされない。ローカルインデックスはインデックスさ
れたデータレコードを識別する実インデックスである。
データ検索の場合、非一意的な大域インデックスは主と
して目標区画選択に用いられる。次にこれらの目標区画
から得られたローカル結果が組合わされて実際の結果を
形成する。内部ポインタ(RID) は公開されないので、保
全性公開即ち保全違反の危険を少なくする。もし大域イ
ンデックスが同報通信により又は大域インデックス論理
積により照会のための区画選択をかなり改善する見込み
がなければ、それは使用されない。すなわち、ローカル
処理を省くために大域インデックスのみが使用される。
他方、もし大域インデックスが使用されれば、その対応
するローカルインデックスは必ずしも使用されない。例
えば、大域インデックスをインデックス単独アクセスに
使用し、ローカルインデックスを使用しないことがあ
る。なぜなら、ローカルインデックスは照会のために集
合されないか又は低いレコード選択を有するためであ
る。
【0051】レコード選択性に関しては、もしローカル
インデックス内のキー値のインデックスエントリの数の
平均がnならば、ローカルインデックス更新動作が新た
なキー値を挿入するか又はキー値のインスタンスを削除
するので、大域インデックス挿入又は削除は通常は1/n
よりも少なくされる。例えば、社員テーブルの部門フィ
ールドに関するインデックスの場合、社員の入社、所属
部門の移動又は退社の度に、インデックスが更新され
る。しかしながら、新たな部門に加わる最初の社員、及
び部門を(例えば、部門が解散されるとき)去る最後の社
員を除き、1つの勤務地での全ての他の社員の移動は、
部門の平均サイズにかかわらず大域インデックス更新を
生じない。
【0052】更に、ローカル照会プロセッサは、ローカ
ルインデックスが大まか大域インデックスから得られた
キー統計、例えば区画に関する資格のあるキー値の数に
基づいて用いられるべきかどうかを動的に判定する。前
記走行時間ローカル最適化がデータスキューを処理する
のに非常に役立つ。
【0053】この2層インデックス法は区画化されたデ
ータを現にサポートしない多くの既存のDBMS、即ち区画
化されたデータに対するインデックスに用いる仮のロー
カルインデックスのみの解法のみを有するDBMSと互換性
がある利点がある。なぜなら、この方法は一次アクセス
法としてローカルインデックスを用い続けるが大域イン
デックスは任意選択とみなされるからである。既存のDB
MSロジック関連コードの大部分は再使用可能である、即
ちこの2層インデックス法を組込むように容易に変更さ
れる。既存の未区画のデータベースは性能低下の危険な
しに同じロジックによりサポートされる。よって、DBMS
開発費用は低くなる。
【0054】既存の最適化機能が先ず拡張され、簡単な
方法で大域インデックスを利用する、例えば、キーの一
意性を検査し且つ望ましい選択属性を用いて目標区画を
選択することがある。例えば、テーブルを結合する時間
にわたり、大域インデックスがより多く利用されるの
で、その実現は同期して行うこともできる。
【0055】ローカルインデックスは個々の区画につい
て維持されるから、各区画はそれ自身のアクセス法を含
む別々のデータモジュールとしてパッケージできる。こ
のような組み込みのデータモジュールは、例えば大規模
な分散データベースシステムで、移動式データベース装
置として用いることができる。データモジュールが取付
けられた後、大域インデックスを更新するためのローカ
ルインデックスは高速かつ容易に走査される。データレ
コードが挿入、削除又は更新されるとき、少なくとも1
つのインデックスを更新せねばならないこともある。大
域インデックスの更新は、もしそれがプロセッサ空間を
横切るならば、ローカルインデックスの更新よりも費用
が高い。大域インデックスは任意選択である。それは新
たなキー値がローカルインデックスに挿入されるとき又
はキー値の最後のインスタンスがローカルインデックス
から削除されるときにのみ更新される。よって、非一意
的なインデックスの大まか大域インデックス更新費用が
低くなる利点がある。
【0056】一意的なインデックスの場合、この方法は
大域インデックスに加えてローカルインデックスを維持
する必要がある。ローカルインデックスは冗長性があり
かつそれらの維持費用及び記憶空間を節減するように除
去できるけれども、この節減は、ある場合には、一意的
なインデックス及び非一意的なインデックス、例えば、
インデックス管理ロジック、照会処理ロジック、ユーテ
ィリティ、使用可能度及びノード自主性の間に結果とし
て生じる非均一性により生成された影響に及ぼす価値が
ないかも知れない。他方、一意的なキーに関する探索要
求が区画選択ではないために大域インデックスが用いら
れないとき、ローカルインデックスを照会評価のために
用いることができる。更に、ローカルインデックスはロ
ーカル照会の評価に使用でき、かつキーが大域インデッ
クスアクセスを最小化するように挿入されるときキー値
のローカル存在に使用できる。
【0057】ノード不均一性及びノード自主性は分散デ
ータベースにとって重要である。不均一性はローカルア
クセス法、レコードポインタの形式、集合法、ハードウ
ェア及び環境の相違、ならびに実現された最適化アルゴ
リズムを含む。この方法は大域インデックス内の各区画
の最低量の情報を保持しかつ処理の大部分の実行をロー
カルノードに依存する。よって、ノード不均一性及び自
主性を最もよく適応させることができる。区画化されな
いローカルオブジェクトをアクセスする既存のアプリケ
ーションはたとえそのオブジェクトが分散オブジェクト
の区画になっても機能し続けるであろう。
【0058】本発明の2層インデックス法が実現される
分散データベースのオブジェクト区画は、DBMSネットワ
ークが故障してもなおローカル照会の評価に使用でき
る。なぜなら、ローカルインデックスは依然として容易
に使用可能であり、ローカルデータのアクセス可能性を
高めるからである。探索範囲を縮小する区画キーならび
にレコードを見つけるインデックスを用いる照会評価計
画は使用できるノードの数がより少なくて済むようにす
ることができる。なぜならば、インデックスは目標デー
タにとってローカル的であるからである。同様に、更新
動作のデータベースの使用可能度も高くなる。なぜなら
ば、新しいキー値がローカルインデックスに挿入されな
いか又はキー値の最後のインスタンスがローカルインデ
ックステーブルから削除されない限り大域インデックス
はアクセスされないからである。
【0059】更に、本発明のインデックス法は物理的な
データベース設計を最適化するアクセスパターンに適合
するデータ集合代替法の完全な利用を可能にする。一例
として、テーブル間集合は関係及び複雑なオブジェクト
をより効率的にサポートするのに使用できる。あらゆる
レコード及びそのローカルインデックスエントリは常に
同じノードで同時に発見されるので、複雑な照会評価及
びインデックス維持の効率が高められる。
【0060】本発明は新たな最適化の機会を提供する。
より多くのアクセス経路選択のため、より効率的なアク
セス計画が可能になり得る。サイン、Rツリー及びハッ
シングのような、キー変換(インデックス)のほかの他の
タイプのアクセス法が実現できる。大域インデックスは
全ワークロードを少なくする区画選択照会に使用できる
のに対し、同報通信は大域インデックスアクセスの費用
を回避するためにより少ない区画選択照会に使用でき
る。使用する大域インデックスの最適選択は使用された
ローカルインデックスの最適選択と異なることがある。
なぜならば、大域レベルで使用できるインデックスなら
びにアクセス目標はローカルレベルでのものと異なるこ
とがあるからである。
【0061】データスキュー、ワークロード又は非均一
性のためローカルアクセス計画は互いに異なることがあ
るのに対し、インデックスが使用されることになってい
る場合、従来技術の方法が提供する代替法は殆どない。
例えば、各大域インデックスから得られた長いリストの
レコードポインタは区画基準により分類する必要があ
る。そして分類されたサブリストは目標区画に配分され
る。区画キー法及び主キー法はより長い可変長のポイン
タの処理を必要とすることがあり、実現された区画方式
により、それらが区画基準をあらゆるポインタに個々に
適用する必要があり得るのに対し、本発明の2層インデ
ックス法は、大域インデックスが大まかであるために、
より短いポインタ(PID) リストを有するので、重複する
PID は既知の分類、例えば、トーナメント式分類を用い
て徐々に除去される。更に、単一のPID がより短く且つ
固定長であるので、その処理は容易になる。大域インデ
ックスは大まかであり且つより短いPID を用いるから、
それは完全な大域インデックスが有するよりも1少ないB
ツリーレベルを有することがあるので、そのインデック
スをアクセスするには1少ないI/O を必要とすることが
ある。同様に、ローカルインデックスもより少ないエン
トリを有し且つより短いレコードポインタを用いるの
で、それがアクセスするのに要するI/O は少なくて済
む。
【0062】良好な実施例は2層インデックスの状況で
論議されているが、良好な実施例の2層インデックス方
式は一般化されて多層方式にすることができる。よっ
て、多層インデックス方式は本明細書では本発明の範囲
内で論議される。
【0063】例えば、分散データベース内のオブジェク
トは幾つかのDBMSサイトの間で水平に区画化し、これら
の区画の各々は更にローカルサイトで並行照会処理のた
めに区画化することができる。分散データベースはそれ
自身がネットワーク、施設、ローカルエリアネットワー
ク又は他の構成の階層として位相的に構成できる。この
オブジェクトにインデックスを生成するために、オブジ
ェクトの葉ノード区画毎にローカルインデックスが生成
される。この階層内のあらゆる非葉ノードについて、大
まか大域インデックスが生成されることがある。一般
に、1つのレベルの大域インデックスはその階層内の次
に高いレベルのローカルインデックスかも知れない。イ
ンデックス階層を維持するために、階層内のインデック
スのみが、データレコード又はローカルインデックスの
ようなそれがインデックスする目標アイテム、及びもし
存在すればその大域インデックスを知る必要がある。そ
の情報により2層インデックス維持アルゴリズムが使用
できるので多層階層が正しく維持される。全維持費用は
基本ローカルインデックスが更新されるとき更新される
大域インデックスの数による。各大域インデックスの粗
さはより高いレベルの大域インデックスに対するレコー
ド更新の影響を徐々に減少する。
【0064】多層インデックスは必ずしもオブジェクト
の多層区画を必要としない。動作上、大まか大域インデ
ックスはあらゆるインデックスが1つの親大域インデッ
クスのみを有する限り適合するインデックスキーを有す
るインデックスの任意のセットに生成できる。インデッ
クスの識別子又は論理的にそれと等価なものが大域イン
デックス内の目標PID として使用できる。しかしなが
ら、大域インデックスの生成及び維持は、それが一定の
可能な照会の評価に役立つ探索範囲を定義する場合にの
み価値がある。これは、探索範囲がユーザによって理解
され、DBMSインタフェースにより記述され、そして最適
化機能により認識され得るものでなければならないこと
を意味する。よって、大域インデックスにとって重要な
のは論理的なグループ分けである(通常それは最初に区
画化されたデータ及び葉レベルローカルインデックスを
生成する物理的な区画である)。従って、本明細書で
は、たとえデータ区画のレベルが1つしかなく且つ各葉
レベルローカルインデックスの特定の範囲がユーザの関
心を失っている場合でも、複数のレベルの探索範囲を定
義する本多層インデックス方式が前述のように使用され
る試みがなされる。
【0065】階層内の高いレベルの大域インデックスを
用いるデータ検索では、多くのインデックス(下位レベ
ル当り1つ)が探索されなければならない。性能を改善す
るために、複数の親大域インデックスを有するインデッ
クスを可能にすることにより階層を制限するか又はそれ
を平坦にすることができる。後者は下記のようにローカ
ルインデックス維持アルゴリズムのロジックに若干の付
加を必要とする。それが挿入又は削除トランザクション
要求をその大域インデックスに送るとき、それを全ての
大域インデックスにも送るべきである。
【0066】例えば、研究所により区画化される職員テ
ーブルをインデックスするために、最初に研究所毎にロ
ーカルインデックスが生成される。そして幾つかの研究
所を含む部門毎に大まか大域インデックスが生成される
ことがある。最後に、全社の部門インデックス上に大ま
か大域インデックスが生成されることがある。最上レベ
ルの大域インデックスは全社的な探索に役立つが次のレ
ベルの大域インデックスは部門特有の探索に役立つ。
【0067】会社インデックスが研究所インデックスに
直に生成されることがある。階層を平坦にする外に、多
層アプローチは非階層グループ分け又は部分重複探索範
囲をサポートする能力を導入する、即ち地理的な領域に
より研究所をグループ分けするために地域の大域インデ
ックスを研究所インデックス上に生成することがある。
このようなグループ分けは部門グループ分けと直交する
であろう。
【0068】本発明の方法は一意的及び非一意的なイン
デックスエントリの挿入及び削除を処理する方法を含む
利点がある。下記の表に示す擬似コードは本明細書に開
示された良好な実施例の理解及び実現を容易にする(表
中に現れる英文字の列はコマンドなどを表す記号であ
り、翻訳できない)。
【0069】
【表3】一意的なインデックスキー挿入: IF 挿入中のキー値が既にローカルインデックステーブ
ルに存在する THEN 既に存在するキーが確約されているか又はそれは
Sモードでそれをロックすることによりこのトランザク
ションの確約されない挿入である IF ロックが取得されている THEN 一意的なキー違反
誤りコードとともに返送する ELSE キーをローカルインデックスに挿入 IF 当該キー値は大域インデックスにまだ存在しない
THEN キーを大域インデックスに挿入する ELSE ローカルインデックスに挿入されたキーを除去し
かつ一意的なキー違反誤りコードを返送する 非一意的なインデックスキー挿入: キーをローカルインデックスに挿入する IF 挿入中のキーが現にローカルインデックステーブル
内にあるキーのどれかにまだ存在しない値を有する TH
EN キーをこの区画の当該キー値とともに大域インデッ
クステーブルに挿入する 一意的なインデックスキー削除: キーをローカルインデックスから削除する キーをこの区画の当該キー値とともに大域インデックス
から削除する 非一意的なインデックスキー削除: キーをローカルインデックスから削除する IF 削除中のキーが現にローカルインデックス内にある
どれか他のキー内に存在しない値を有する THEN キー
をこの区画の当該キー値とともに大域インデックスから
削除する。
【0070】一意的なインデックスの場合の挿入の良好
な実施例は、挿入されるインデックスエントリ内のロー
カルインデックスキー値がローカルインデックス内に既
に存在するかどうかの最初の判定を含み、もしそれが既
に存在すれば挿入を拒絶する。さもなければ、インデッ
クスエントリをローカルインデックステーブルに挿入
し、ローカルインデックスキー値に関する大域インデッ
クスキー値が既に大域インデックステーブルに存在する
かどうかを判定し、もしそれが既に存在すれば、挿入さ
れたローカルインデックスエントリをローカルインデッ
クステーブルから削除してその挿入を拒絶する。もしロ
ーカルインデックスキー値に関する大域インデックスキ
ー値が大域インデックステーブル内に存在しなければ、
ローカルインデックスキー値に関する大域インデックス
キー値とローカルインデックステーブルを識別するロー
カルインデックス識別子とを含む大域インデックスエン
トリを大域インデックステーブルに挿入する。
【0071】非一意的なインデックスの場合の挿入はイ
ンデックスエントリをローカルインデックステーブルに
挿入することを含む。そして、もし当該キー値がローカ
ルインデックス内にまだ存在していなかったならば、ロ
ーカルインデックスキー値に関する大域インデックスキ
ー値とローカルインデックステーブルを識別するローカ
ルインデックス識別子とを含む大域インデックスエント
リを大域インデックステーブルに挿入する。
【0072】一意的なインデックスエントリを削除する
方法は、ローカルインデックステーブルからキーを削除
し且つローカルインデックスキー値に関する大域インデ
ックスエントリとローカルインデックス識別子とを大域
インデックステーブルから削除することを含む。
【0073】非一意的なインデックスエントリを削除す
る方法は、ローカルインデックスからキーを削除し且つ
削除されるインデックスエントリ内のローカルインデッ
クスキー値がもはやローカルインデックステーブル内に
存在しないかどうかを判定し、そしてもしそれがもはや
存在しなければ、ローカルインデックスキー値に関する
大域インデックスキー値とローカルインデックステーブ
ルを識別するローカルインデックス識別子とを含む大域
インデックスエントリを大域インデックステーブルから
削除するステップを含む。
【0074】この方法の挿入及び削除動作の説明から、
大域インデックスとローカルインデックスの間の一貫性
を維持する必要がある。大域インデックスとローカルイ
ンデックスの間の一貫性を保証するために、インデック
スエントリの挿入及び削除を正しく処理するロッキング
プロトコルが指定されなければならない。これは2つの
状態の維持を必要とする。すなわち、特定のキー値が特
定の区画に存在することを大域インデックスが示す場
合、その区画のローカルインデックスはそのキー値を含
むべきであり、特定のキー値が特定の区画に存在しない
ことを大域インデックスが示す場合、その区画のローカ
ルインデックスはそのキー値を含むべきではない。
【0075】特定のキー挿入動作がキー値の真に最初の
インスタンスの挿入を生じるか又は特定のキー削除動作
がキー値の現に存在するインスタンスのみの削除を実行
するかを判定する前述の検査を行うと同時に、後に前記
推理を裏切ることがある他のトランザクションによる確
約されない挿入又は削除動作がないことが確認されなけ
ればならない。本発明の方法が新規の方法でロッキング
を用いるのはこれらの判定を行う際である。
【0076】一般に、同時に起きる活動を同期させるた
めにロック及びラッチが用いられる。ラッチはデータの
物理的な一貫性を保証するのに用いられるのに対し、ロ
ックはデータの論理的な一貫性を保証するのに用いられ
る。一般にラッチはプロセスにより所有され通常はロッ
クよりもずっと短い時間の周期のあいだ保持される。ロ
ックはトランザクションにより所有される。デッドロッ
ク検出器はラッチ待ちについては知らされない。ラッチ
はラッチのみを含むか又はラッチ及びロックを含むデッ
ドロックを回避するような方法で要求される。ラッチの
取得はロックの取得よりもずっと安価である。なぜなら
ば、ラッチ制御情報は常に仮想メモリ内の一定の場所に
あり且つラッチ情報に対する直接アドレス可能性はラッ
チ名が与えられると可能である。他方、ロックの記憶は
動的に管理されるのでロックを取得し解除するためによ
り多くの命令を実行する必要がある。
【0077】大域インデックスに対するインデックス単
独アクセスを可能にするために、例えば、キー存在検査
の実行又は異なる照会カウント実行のために、大域イン
デックス動作中にロッキングが実行される。一意的な大
域インデックスでは、大域インデックスとローカルイン
デックスの間の一貫性を維持するために、大域インデッ
クスで試みられたキー挿入動作が一意的なキー違反によ
り拒絶される場合、ローカルインデックス挿入、即ち最
初の大域インデックス動作の試みをトリガしたローカル
インデックス挿入は、制御がそのローカルインデックス
挿入の呼出し者に戻される前に取消される。
【0078】ロック要求は条件付き又は無条件オプショ
ンにより行うことができる。条件付き要求は、要求が処
理される時点でロックを直ちに許可できない場合に要求
者が待機する意志がないことを意味する。無条件要求
は、ロックが許可できるようになるまで要求者が待機す
る意志があることを意味する。ロックが保持される持続
時間は異なることがある。瞬時持続時間無条件ロック要
求は、ロックが実際には許可されないことを意味する
が、ロックマネジャはロックが許可できるようになるま
でロック要求の成功状態の返送を遅延させなければなら
ない。持続時間手動ロックは、それらが取得された後の
ある時点で且つ一般にトランザクション終了よりもかな
り以前に解除される。確約持続時間ロックは、トランザ
クションの終了時点で、即ち、確約又は放棄が終了した
後にのみ解除される。資源のロック要求がうまく返送さ
れた後、ロックマネジャは、現在のトランザクションが
既に保持されていたか且つ現在の要求が出される前にそ
の資源のロックがまだ解除されていなかったかどうかを
示す。この場合、前に取得されたロックのモードが返送
される。
【0079】通常、ラッチ及びロックは共有情報に対す
るアクセスの制御に用いられる。ロックは異なるモー
ド、例えば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ロックを明白に要求することが
できる。
【0081】現に挿入又は削除されるべきインデックス
エントリに取得されるロックのほかにインデックス挿入
及び削除動作では、ロックも次のエントリに取得され
る。非一意的なローカルインデックス単独では、ときに
はロックが前のエントリに取得されることもある。これ
らのロックが取得される順序は次のエントリ、(もし必
要なら)前のエントリ及び現在のエントリの順である。
本発明のロックモードは読取り者、挿入者及び削除者の
間の非常に高い同時性を可能にする。
【0082】瞬時ロックが取得される毎に、対応するエ
ントリを保持するページのラッチは、そのページでキー
挿入又は削除動作が終了するまで保持されなければなら
ない。このようなページラッチは、ラッチ保持中に要求
されたロックが直ちに許可できない場合、ラッチを含む
デッドロックを回避するために解除されなければならな
い。もしページラッチを保持しないうちにロックが取得
されれば、ラッチは再取得されかつ全プロセスが反復さ
れなければならない。大域インデックスでの実行を必要
とするキー挿入又は削除動作は、対応するローカルイン
デックス動作の実行に必要な全てのロッキングが終了し
た後にのみ開始できる。後者のステップの終了後にの
み、大域インデックス動作が必要かどうかを正しく判定
することができる。
【0083】簡単に言えば、技術的に既知の多くのDBMS
は、トランザクションにより行われた更新の結果として
記述されるログレコードに関してページ状態を追跡す
る。各ページはそれに関連したフィールドを有し、更新
トランザクションはそれがページの最後の更新で記述し
たログレコードのログシーケンス番号(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モードで挿入すべきエントリを確約持続時間ロックす
る。
【0086】ローカルインデックスでキー削除中のロッ
キングは下記の表のようになる。
【0087】
【表6】次のエントリロック: SIX モードで確約持続時間ロックする 前のエントリロック: IF (非一意的なインデックス) AND (次のエントリのキ
ー値 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 に変更される。この反復は、新たに挿入されたキ
ー値が脱落した値よりも小さい場合には必要ではないで
あろうが、挿入者は、脱落した値が何であるか又は何で
あったかが分からないから、この観察からは何も得るこ
とができない。
【0091】ローカルインデックスが一意的なインデッ
クスである場合、挿入すべきものと同じキー値を有する
もう1つのエントリの別のトランザクションにより確約
されない削除がないことを確かめる。エントリの削除者
は次のエントリでSIX ロックを取得する。これが一意的
なインデックスであり且つ同じトランザクションが同じ
キー値の別のインスタンスを早期に削除していた場合、
現在の挿入動作の実行は問題を生じない。なぜならば、
このトランザクションの前のインデックスは最初に取消
される現在の挿入トランザクションなしには取消されな
いからである。これはロールバックが逆年代順に実行さ
れなければならないことによる。
【0092】ローカルインデックスに大域インデックス
が存在し且つこのインデックスには挿入すべきキー値の
他のインスタンスが存在しない場合、同じキー値を有す
るもう1つのエントリの別のトランザクションにより確
約されない削除がないことを確かめる。エントリの削除
者は次のエントリでSIX ロックを取得する。現にキー値
のもう1つのインスタンスが別のトランザクションT1に
より確約されない削除状態にある場合、現在のトランザ
クションT2はその挿入動作の実行を許可されるべきでは
ない。なぜならば、挿入を許可することによりT2がその
キー値を大域インデックスに挿入するからである。その
後、T1はロールバックできるので、同じキー値を大域イ
ンデックスに戻す(T1はそのエントリを順方向処理で削
除しているであろう)。従って、大域インデックスに
は、それが同じキー値及び同じ区画の重複したエントリ
を含むべきではないときに、前記重複したエントリがあ
るであろう。
【0093】この非一意的なローカルインデックスに大
域インデックスが存在し且つこのインデックスで次のエ
ントリのキー値が挿入すべきエントリのキー値と同じ場
合、進行中の別のトランザクションによりそのキー値の
最初のインスタンスが確約されない状態ではないことを
確かめる。最初のインスタンスが確約されない状態であ
る場合、そのインスタンスを挿入したトランザクション
のみが次のエントリを挿入でき且つそのトランザクショ
ンが全ての既存のインスタンスでXロックを保持してい
るであろう。現在のトランザクションが挿入すべきキー
値の最初のインスタンスを挿入したものである場合、ロ
ックマネジャからの戻りコードは、瞬時IXロックが次の
エントリで要求されると、現在のトランザクションが既
にそのエントリでXロックを保持していることを示す。
この場合、現在のトランザクションも挿入中のインデッ
クスエントリでXロックを取得する。これは確約されな
い最初のインスタンスの左側伝播と呼ばれる。これはロ
ーカルインデックスが一意的なインデックスである場合
には必ずしもそうではない。その場合、最初の挿入者は
IXロックのみを取得する必要があり且つその後の挿入ト
ランザクションを試みる者は、一意的なキー違反がある
かどうかを判定するために既に存在するエントリのSロ
ックを要求するであろう。一意的なキー違反を報告でき
る前に、最初のインスタンスが確約状態であるか又はそ
れが現在のトランザクションによる挿入であるかが判定
されなければならない。
【0094】非一意的なローカルインデックスで、最初
のインスタンスの最初のトランザクションT1の挿入がま
だ確約されないとき2番目のトランザクションT2による
キー挿入動作を許可しない理由は、T1がロールバックし
T2が確約することになっていた場合に大域インデックス
に関して一貫性がなくなるローカルインデックスを処理
する必要があるためである。ローカルインデックスでそ
のキー値の挿入中に大域インデックスにエントリを挿入
したT1は、大域インデックスで挿入を実行しなかったT2
がたとえ確約しても大域インデックスへのその挿入動作
を取消すであろう。T2は、ローカルインデックスでのそ
の挿入がそのキー値の最初のインスタンスではなかった
ので大域インデックスでの挿入を実行せず、従って大域
インデックスでの対応するエントリなしにローカルイン
デックスにそのキー値を取り残す。
【0095】前のエントリのロッキングプロトコルの理
由は下記の通りである。意図は、挿入中のキー値の最初
のインスタンスの挿入者が確約したことを確かめるか又
はキー値の最初のインスタンスが現在のトランザクショ
ン自身による確約されない挿入動作であると判定する必
要がある場合にLSN 確約の着想を利用することである。
これが挿入中のキー値の最初のインスタンスではなく且
つ、最初の挿入トランザクションが確約されたに違いな
いと結論付けるのに十分な情報を次のエントリのロッキ
ングが提供しないので前のエントリを処理するトランザ
クションを必要とする場合でさえも、前のエントリが確
約された状態であると判定するのをLSN確約法が助ける
場合には前のエントリの余分なロックをなお回避するこ
とができる。その最初のインスタンスの挿入トランザク
ションがまだ確約されない場合は、そのキー値の全ての
他のインスタンスも同じトランザクションによる確約さ
れない挿入である場合でなければならない。更に、その
トランザクションは同じキー値を有する全てのインデッ
クスエントリのXロックを保持していなければならな
い。現在のトランザクションが挿入すべきキー値の最初
のインスタンスを挿入したトランザクションである場
合、瞬時ISロックが前のエントリで要求されるとき、ロ
ックマネジャからの戻りコードは現在のトランザクショ
ンが既に前のエントリにXロックを保持していることを
示す。この場合、現在のトランザクションも挿入中のイ
ンデックスエントリでXロックを取得する。これは確約
されない最初のインスタンス情報の右側伝播と呼ばれ
る。一意的なインデックスでは、この問題を処理する必
要はない。
【0096】現在用いられているエントリロック擬似コ
ードは挿入中のエントリで取得する必要があるロックの
種類を決定する。他のトランザクションが確約されない
データを読取らないことを保証するために、挿入された
エントリに少なくともIXロックが取得する必要がある。
確約されないデータの読取りを欲しない読取り者はSロ
ックを取得するものと仮定する。それは確約されないエ
ントリに削除者が墓石を生成しないことを保証するため
にも用いられる。なぜなら、確約されないエントリの挿
入トランザクションがその挿入をロールバックすること
になっていた場合、このような墓石は消えるからであ
る。
【0097】削除動作中に次のエントリのロックを取得
する理由は下記の通りである。キー削除中に、確約され
ない削除があることを他の読取り者トランザクションに
知らせる墓石を取り残すことが重要である。読取り者は
Sロックを要求すると仮定する。墓石(次のエントリ)の
ロックは、(1) 墓石エントリの背後の削除されたキー値
よりも高いキー値を有するエントリを挿入することによ
り削除動作が起きた場所から墓石を隠し、且つ(2) 墓石
をそれを削除することにより除去することができる他の
トランザクションがないものでなければならない。墓石
を隠す最初のインスタンスでは、次のエントリで瞬時IX
ロックを挿入者に取得させることによりそれが処理され
る。墓石を除去する2番目のインスタンスでは、削除す
べきエントリでXロックを削除者に取得させることによ
りそれが処理される。最初の削除動作を実行した同じト
ランザクションが墓石の背後にエントリを挿入する場
合、それは挿入中の次のエントリロックでロックマネジ
ャを介して最初の墓石の回りに戻りコードを見つける。
そして、それは通常のIXロックの代わりに新たなエント
リでSIX 又はXロックを取得することにより新たに挿入
されたエントリに墓石を複製する。同じトランザクショ
ンにより墓石が削除中である場合、削除中の次のエント
リで取得されるSIX ロックにより最初の墓石の次のエン
トリに墓石が複製される。ローカルインデックスが一意
的なインデックスである場合、次のエントリロックは同
じキー値の潜在的な将来の挿入者にそのキー値を含む確
約されない削除動作に関して知らせる。前述のように、
挿入者は次のエントリでIXロックを取得する。
【0098】次のエントリのキー値が削除すべきエント
リのキー値と同じ場合、そのキー値の少なくとも1つの
インスタンスは現在のトランザクションが終了するまで
他のトランザクションにより削除されないことを確かめ
る。削除者が削除すべきエントリでXロックを取得する
から、別のトランザクションによる将来の動作は次のエ
ントリを削除できない。次のエントリが現に確約されな
い状態である場合、その挿入者はこの時点でそれにIX又
はXロックを保持している。これはトランザクションT1
が最後ではないインスタンスを削除し、且つトランザク
ションT2が最後のインスタンスを削除し、キー値を大域
インデックスから除去したのち確約する状況にはならな
いことを保証するために必要である。T1はロールバック
することによりそのキー値をローカルインデックスに再
挿入する。これらの状況の下では、ローカルインデック
スのキー値は大域インデックスには存在しない。
【0099】キー値のインスタンスのみが削除中である
場合、他のトランザクションはそのキー値のインスタン
スを削除中のトランザクションが終了するまで挿入でき
ないことを保証する。これは挿入者が次のエントリでIX
ロックを取得するから保証される。このステップで望ま
れることは下記のシナリオを回避することである。T1は
最後のインスタンスをローカルインデックスから削除し
且つキー値を大域インデックスから除去する。そしてT2
はローカルインデックスの最初のインスタンスを挿入し
且つキー値を大域インデックスに挿入する。T1はロール
バックし且つ複製エントリを大域インデックスに導入す
る。なぜなら、それは大域インデックスからのその早期
の削除動作を取消す。T1が複製の挿入を回避して終了す
る場合、T2はロールバックできるので、ローカルインデ
ックスと大域インデックスの間に非一貫性を生成する。
なぜなら、T2はそれが大域インデックスに挿入したキー
値を除去するからである。
【0100】削除中に前のエントリでロックを取得する
理由は下記の通りである。その意図は確約された状態に
ある削除中のキー値の少なくとも1つのインスタンスが
インデックスに現に存在するかどうかを調べること又は
当該キー値の全ての既存のインスタンスが現在のトラン
ザクションによる未確約の挿入であると判定することで
ある。現在のトランザクションがキー値の唯一のインス
タンスを削除中ではないので大域インデックスからエン
トリを削除する必要がない場合、現在のトランザクショ
ンは、後にキー値の全ての残りのインスタンスはそれら
が全て未確約の挿入であったので削除されず、且つ全て
の挿入トランザクションは誤って大域インデックスにキ
ー値を取り残してこれらの挿入をロールバックしたこと
を確かめる必要がある。キー値の全ての残りのインスタ
ンスが現在のトランザクション以外のトランザクション
の未確約の挿入である場合、現在のトランザクション
は、前のエントリでSロックを要求することにより、こ
れらのトランザクションの少なくとも1つのトランザク
ションが終了し且つ再びキーの状態を検査するまで待つ
必要がある。前のエントリでSロックが直ちに許可でき
ないことは必ずしも前のエントリが未確約挿入であるこ
とを意味しない。他のトランザクションは要求されたS
ロックと衝突する前のエントリに現にロックを保持する
ことがある。よって、これらの状態で待機することは従
来のアプローチである。
【0101】更に、現在のトランザクションがキー値の
前のエントリ及びたぶん全ての他のインスタンスを挿入
したトランザクションである場合、現在のトランザクシ
ョンは現在のエントリを安全に削除できる。なぜなら、
現在のトランザクションがロールバックする場合、それ
は現在のエントリを再挿入するからである。その結果、
大域インデックスを変更する必要がない。他方、現在の
トランザクションは、それが後に順方向処理の際に全て
の他のインスタンスを削除することになっていた場合、
その時点で大域インデックス内の対応するエントリを削
除する。
【0102】インデックスエントリのロッキングプロト
コルは下記の表に要約される。
【0103】
【表7】
【0104】
【表8】
【0105】
【表9】
【0106】エントリロッキングプロトコルの所与の説
明に基づいて、下記の表に要約されるキー値ロッキング
プロトコルのロッキング規則の背後の理由が容易に理解
されるであろう。
【0107】
【表10】
【0108】
【表11】
【0109】
【表12】
【0110】
【表13】
【0111】要するに、オブジェクトの区画毎にローカ
ルインデックスが生成・維持され且つ大まか大域インデ
ックスがオプションとして生成・維持される並列又は分
散データベースシステムで区画化されたデータが直接供
給される新規の多層インデックス法が提供される。大ま
か大域インデックスは区画識別子(PID) によりインデッ
クス付き区画を識別する。大まか大域インデックスは個
々のインデックスキー値をそれらの目標区画と関連づ
け、インデックスキーに関する高度の区画選択探索属性
を有するアクセス要求を迅速且つ容易に目標区画に指向
し処理できるようにする。インデックス維持ロッキング
プロトコルも提供され、異なるトランザクションによる
同時インデックスアクセス中にローカルインデックスエ
ントリと大まか大域インデックスエントリの間の一貫性
を保証する。ロッキングプロトコルはインデックスエン
トリの挿入及び削除を簡単に且つ効率的に処理する。挿
入又は削除されたキーを含む場合に且つ挿入又は削除さ
れたキーに続くキー及びたぶんそれらに先行するキーに
のみロッキングを最小化する一意的及び非一意的なロー
カルインデックス方式のロッキングプロトコルは、同時
に起きる読取り者、挿入者及び削除者の間の非常に高い
同時性を可能にする。大まか大域インデックスでの実行
を必要とする挿入又は削除動作は、実際に大まか大域イ
ンデックス更新動作が必要かどうかを正しく判定するた
めに、対応するローカルインデックス動作の実行に必要
な全てのロッキングが終了した後にのみ開始できる。
【0112】
【発明の効果】本発明の方法は複雑な照会評価及びイン
デックス維持の効率を高め且つトランザクション処理の
高いスループットを取得する。
【図面の簡単な説明】
【図1】区画をインデックスするがレコードはインデッ
クスしない大まか大域インデックスを、少なくとも1つ
のローカルインデックスを参照し次いでオブジェクト区
画内のレコードを参照する区画IDとともに維持する、本
発明の2層インデックス階層を示す図である。
【図2】図2に示されたデータベーステーブルに関する
本発明のローカルインデックステーブル毎に名前エント
リ及び関連したレコード識別子、即ちRID を示す図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャンドラセハラン・モーン アメリカ合衆国カリフォルニア州、サ ン・ノゼ、ポーツウッド・ドライブ 727番地 (56)参考文献 日経エレクトロニクスNO.378 (1985−9−23)P.235−280

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項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. 【請求項2】一意的なインデックス内のインデックスエ
    ントリの削除を処理するために多層インデックス構造に
    おけるローカルインデックステーブル及び大域インデッ
    クステーブルの間の一貫性を維持する方法であって、 前記多層インデックス構造は区画化されたデータベース
    の各区画に対応するインデックスキー値のローカルイン
    デックステーブル及び各ローカルインデックステーブル
    内の各インデックスキー値毎に少なくとも1つの一意的
    な大域インデックスエントリを含む大域インデックステ
    ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
    クス識別子及びローカルインデックスエントリを含み、
    前記ローカルインデックスエントリの各々は前記ローカ
    ルインデックステーブルに対応する各データベース区画
    内のオブジェクトを識別する識別子及び識別されたオブ
    ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
    ステーブル内の異なるローカルインデックスキー値毎に
    少なくとも1つの大域インデックスエントリを有し、各
    大域インデックスエントリはローカルインデックステー
    ブルを識別するローカルインデックス識別子及び識別さ
    れたローカルインデックステーブル内のローカルインデ
    ックスキー値の1つに関する大域インデックスキー値を
    有し、 前記方法は、 (a)挿入されるべきインデックスエントリ内のローカル
    インデックスキー値が既に前記ローカルインデックステ
    ーブル内に存在するか否かを判定し、 (b)もしそれが存在しなければ (b-1)そのインデックスエントリを前記ローカルインデ
    ックステーブルから削除し、 (b-2)ローカルインデックスキー値及びローカルインデ
    ックス識別子に関する大域インデックスエントリを前記
    大域インデックステーブルから削除する、 ステップを含む多層インデックス構造におけるローカル
    インデックステーブル及び大域インデックステーブルの
    間の一貫性を維持する方法。
  3. 【請求項3】非一意的なインデックス内へのインデック
    スエントリの挿入を処理するために多層インデックス構
    造におけるローカルインデックステーブル及び大域イン
    デックステーブルの間の一貫性を維持する方法であっ
    て、 前記多層インデックス構造は区画化されたデータベース
    の各区画に対応するインデックスキー値のローカルイン
    デックステーブル及び各ローカルインデックステーブル
    内の各インデックスキー値毎に少なくとも1つの一意的
    な大域インデックスエントリを含む大域インデックステ
    ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
    クス識別子及びローカルインデックスエントリを含み、
    前記ローカルインデックスエントリの各々は前記ローカ
    ルインデックステーブルに対応する各データベース区画
    内のオブジェクトを識別する識別子及び識別されたオブ
    ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
    ステーブル内の異なるローカルインデックスキー値毎に
    少なくとも1つの大域インデックスエントリを有し、各
    大域インデックスエントリはローカルインデックステー
    ブルを識別するローカルインデックス識別子及び識別さ
    れたローカルインデックステーブル内のローカルインデ
    ックスキー値の1つに関する大域インデックスキー値を
    有し、 前記方法は、 (a)挿入されるべきインデックスエントリ内のローカル
    インデックスキー値が既に前記ローカルインデックステ
    ーブル内に存在するか否かを判定し、 (b)もしそれが存在しなければ (b-1)そのインデックスエントリを前記ローカルインデ
    ックステーブルに挿入し、 (b-2)ローカルインデックスキー値に関する大域インデ
    ックスキー値及びローカルインデックステーブルを識別
    するローカルインデックス識別子を前記大域インデック
    ステーブルに挿入するステップを含む多層インデックス
    構造におけるローカルインデックステーブル及び大域イ
    ンデックステーブルの間の一貫性を維持する方法。
  4. 【請求項4】非一意的なインデックス内のインデックス
    エントリの削除を処理するために多層インデックス構造
    におけるローカルインデックステーブル及び大域インデ
    ックステーブルの間の一貫性を維持する方法であって、 前記多層インデックス構造は区画化されたデータベース
    の各区画に対応するインデックスキー値のローカルイン
    デックステーブル及び各ローカルインデックステーブル
    内の各インデックスキー値毎に少なくとも1つの一意的
    な大域インデックスエントリを含む大域インデックステ
    ーブルを含み、 前記ローカルインデックステーブルはローカルインデッ
    クス識別子及びローカルインデックスエントリを含み、
    前記ローカルインデックスエントリの各々は前記ローカ
    ルインデックステーブルに対応する各データベース区画
    内のオブジェクトを識別する識別子及び識別されたオブ
    ジェクトに関するローカルインデックスキー値を有し、 前記大域インデックステーブルは各ローカルインデック
    ステーブル内の異なるローカルインデックスキー値毎に
    少なくとも1つの大域インデックスエントリを有し、各
    大域インデックスエントリはローカルインデックステー
    ブルを識別するローカルインデックス識別子及び識別さ
    れたローカルインデックステーブル内のローカルインデ
    ックスキー値の1つに関する大域インデックスキー値を
    有し、 前記方法は、 (a)前記ローカルインデックステーブルからインデック
    スエントリを削除し、 (b)削除したインデックスエントリ内のローカルインデ
    ックスキー値が前記ローカルインデックステーブル内に
    まだ存在するか否かを判定し、 (c)もしそれがもはや存在しなければローカルインデッ
    クスキー値に関する大域インデックスキー値を持つ大域
    インデックスエントリ及びローカルインデックステーブ
    ルを識別するローカルインデックス識別子を前記大域イ
    ンデックステーブルから削除するステップを含む多層イ
    ンデックス構造におけるローカルインデックステーブル
    及び大域インデックステーブルの間の一貫性を維持する
    方法。
JP5316885A 1993-01-07 1993-12-16 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 Expired - Lifetime JP2583010B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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