JPH07104813B2 - 分散型コンピュータ・データベースの打ち込み時刻を一致させるシステムおよび方法 - Google Patents
分散型コンピュータ・データベースの打ち込み時刻を一致させるシステムおよび方法Info
- Publication number
- JPH07104813B2 JPH07104813B2 JP3117658A JP11765891A JPH07104813B2 JP H07104813 B2 JPH07104813 B2 JP H07104813B2 JP 3117658 A JP3117658 A JP 3117658A JP 11765891 A JP11765891 A JP 11765891A JP H07104813 B2 JPH07104813 B2 JP H07104813B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- time
- cohort
- distributed
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明は、一般的に分散型データ
ベース・システムおよびマルチバージョン・データベー
スに関し、さらに詳しくは、この種のデータベースに入
力したデータに一貫したタイム・スタンプのタグを付け
る方法とシステムに関する。
ベース・システムおよびマルチバージョン・データベー
スに関し、さらに詳しくは、この種のデータベースに入
力したデータに一貫したタイム・スタンプのタグを付け
る方法とシステムに関する。
【0002】
【従来の技術】マルチバージョン・データベースとは、
指定した時間におけるデータベースの状態がどのような
ものであったかを照会(すなわち、質問または調査)す
ることのできるデータベースである。この種のマルチバ
ージョン・データベースは、一時データベースとも呼ば
れ、更新されたデータには、全て時間値、通常はデータ
を更新した時間に対応する時間値が「打ち込まれる」。
適当な支援(すなわち、ソフトウエア)によって、時刻
を打ち込んだデータベースを照会することで、特定の時
刻に存在していたこのデータベースのトランザクション
の一貫した表示を与えることができる。この種の一時照
会は、金融上の用途、医療用の記録システム、技術設計
等に使用することができる。
指定した時間におけるデータベースの状態がどのような
ものであったかを照会(すなわち、質問または調査)す
ることのできるデータベースである。この種のマルチバ
ージョン・データベースは、一時データベースとも呼ば
れ、更新されたデータには、全て時間値、通常はデータ
を更新した時間に対応する時間値が「打ち込まれる」。
適当な支援(すなわち、ソフトウエア)によって、時刻
を打ち込んだデータベースを照会することで、特定の時
刻に存在していたこのデータベースのトランザクション
の一貫した表示を与えることができる。この種の一時照
会は、金融上の用途、医療用の記録システム、技術設計
等に使用することができる。
【0003】本発明は、トランザクション時刻に焦点を
合わせている。トランザクションによってデータベース
に対して行われた更新には、全て同じ時刻が打ち込まれ
る。この打ち込まれた時刻は、このデータの属性として
記憶される。トランザクションのタイムスタンプは、こ
のタイムスタンプの順序がトランザクションの正しい連
続化(serialization)を表わすように、正しく並べなけ
ればならない。
合わせている。トランザクションによってデータベース
に対して行われた更新には、全て同じ時刻が打ち込まれ
る。この打ち込まれた時刻は、このデータの属性として
記憶される。トランザクションのタイムスタンプは、こ
のタイムスタンプの順序がトランザクションの正しい連
続化(serialization)を表わすように、正しく並べなけ
ればならない。
【0004】トランザクション時刻は、またデータを組
織するために使用することもできる。この考え方は、も
はや現在のデータではないデータを、現在のデータとは
独立して記憶することができると言うものである。この
「歴史的」データは決して更新されず、したがって「一
回書き込み可能、読み取り自由」("write-once, read
many")(WORM)光ディスクに記憶することができ
る。現在のデータは継続して更新することが可能であ
り、したがって磁気ディスクおよびランダム・アクセス
・メモリに記憶され、その結果、現在のデータを容易に
変更することができる。しかし、当業者が理解するよう
に、タイムスタンプ・データは全て磁気ディスクに記憶
することができ、または全てWORMディスクに保存す
ることもできる。
織するために使用することもできる。この考え方は、も
はや現在のデータではないデータを、現在のデータとは
独立して記憶することができると言うものである。この
「歴史的」データは決して更新されず、したがって「一
回書き込み可能、読み取り自由」("write-once, read
many")(WORM)光ディスクに記憶することができ
る。現在のデータは継続して更新することが可能であ
り、したがって磁気ディスクおよびランダム・アクセス
・メモリに記憶され、その結果、現在のデータを容易に
変更することができる。しかし、当業者が理解するよう
に、タイムスタンプ・データは全て磁気ディスクに記憶
することができ、または全てWORMディスクに保存す
ることもできる。
【0005】入力された時のトランザクションの時刻
で、データに時刻を打ち込むことは新しい概念ではな
く、この件に関する多くの文献がコンピュータ科学文献
に登場する。タイムスタンプは、並行制御を行う方法と
して提案されてきた。しかし、このような方法でタイム
スタンプを使用しようとする努力の大部分は、システム
の具現化にはつながらなかった。
で、データに時刻を打ち込むことは新しい概念ではな
く、この件に関する多くの文献がコンピュータ科学文献
に登場する。タイムスタンプは、並行制御を行う方法と
して提案されてきた。しかし、このような方法でタイム
スタンプを使用しようとする努力の大部分は、システム
の具現化にはつながらなかった。
【0006】本発明の提供するもの、すなわち従来技術
では提供されなかったものは、システムの性能を不当に
損なうことなく分散型データベース内のデータに一貫し
て時刻を打ち込む方法であり、また使用されているデー
タの信頼性やデータの時刻打ち込みの一貫性のいずれに
対しても妥協せずに、時間において部分的に重なり合う
多重トランザクションの処理を容易にする「遅延ロッ
ク」機構である。
では提供されなかったものは、システムの性能を不当に
損なうことなく分散型データベース内のデータに一貫し
て時刻を打ち込む方法であり、また使用されているデー
タの信頼性やデータの時刻打ち込みの一貫性のいずれに
対しても妥協せずに、時間において部分的に重なり合う
多重トランザクションの処理を容易にする「遅延ロッ
ク」機構である。
【0007】
【課題を解決する手段】要約すれば、本発明は、分散型
データベース・システム内で一貫したタイム・スタンプ
を保証するシステムおよび方法である。本システムは、
多数の異なる節点に位置するデータベースを有し、これ
らの節点の内少なくとも2つは、時刻を打ち込んだデー
タベース、すなわち、更新されたデータにトランザクシ
ョン時刻が打込まれ、指定された時刻のデータベースの
状態に関して照会することのできるマルチバージョン・
データベースを有する。
データベース・システム内で一貫したタイム・スタンプ
を保証するシステムおよび方法である。本システムは、
多数の異なる節点に位置するデータベースを有し、これ
らの節点の内少なくとも2つは、時刻を打ち込んだデー
タベース、すなわち、更新されたデータにトランザクシ
ョン時刻が打込まれ、指定された時刻のデータベースの
状態に関して照会することのできるマルチバージョン・
データベースを有する。
【0008】分散されたトランザクションは、2相式
(two phase)コミット・プロトコルを使用して委任(co
mmit) または中断される。準備間隔と呼ばれるこのプロ
トコルの第1相の期間、このトランザクションに対する
各群は、このトランザクションを委任するか中断するか
どうかを決定し、またこのトランザクションが委任され
る最初の時刻と最後の時刻も決定する。もしトランザク
ションに対する群が全てこのトランザクションを委任す
ると決定し、この決定された時刻の範囲の交点が存在す
るならば、このトランザクションはプロトコルの第2相
の期間に委任される。または、トランザクション時刻は
この決定された時刻範囲の交点から選択され、この選択
したトランザクション時刻は、更新されたデータ全てに
時刻を打込むことに使用され、このデータはこのトラン
ザクションが委任された場合永続的に記憶される。
(two phase)コミット・プロトコルを使用して委任(co
mmit) または中断される。準備間隔と呼ばれるこのプロ
トコルの第1相の期間、このトランザクションに対する
各群は、このトランザクションを委任するか中断するか
どうかを決定し、またこのトランザクションが委任され
る最初の時刻と最後の時刻も決定する。もしトランザク
ションに対する群が全てこのトランザクションを委任す
ると決定し、この決定された時刻の範囲の交点が存在す
るならば、このトランザクションはプロトコルの第2相
の期間に委任される。または、トランザクション時刻は
この決定された時刻範囲の交点から選択され、この選択
したトランザクション時刻は、更新されたデータ全てに
時刻を打込むことに使用され、このデータはこのトラン
ザクションが委任された場合永続的に記憶される。
【0009】各群にトランザクションを委任する時刻範
囲を決定させることによって、このプロトコルは全ての
群によって使用することのできるタイム・スタンプが選
択されることを保証する。本発明の他の特徴は、分散さ
れたトランザクションによってデータをロックすること
に関する。特に、2相式コミット・プロトコルの準備間
隔の前に、各トランザクションは、読み取りまたは書き
込みアクセスを必要とする各節点のデータを読み取りロ
ックまたは書き込みロックすることである。トランザク
ションが、コミット・プロトコルの第1相(準備間隔)
に入った時は常に、そのトランザクションに対する読み
取りロックはここで遅延ロックと呼ぶ新しい種類のデー
タ・ロックに変換される。遅延ロックは、これによって
他のトランザクションがデータに書き込みロックを得る
ことが可能になる点を除いて、読み取りロックと同様で
ある。しかし、遅延ロックされたデータに書き込みロッ
クを得るトランザクションはいずれも「遅延したトラン
ザクション」である。委任(commit)プロトコル
の第1フェーズ中に、遅延ロックされたデータに書込み
ロックを含む遅延トランザクションにおけるコーホート
は、遅延ロックを持つトランザクションによって決定さ
れた「最も遅い」値よりも遅い「最も早い」値を有して
いる時間範囲を決定する。換言すると、遅延トランザク
ションは、遅延ロックを有するトランザクションが委任
するかまたは中断する時間よりも遅い時間で、それ(遅
延トランザクション)が委任することを保証する時間範
囲を決定する。
囲を決定させることによって、このプロトコルは全ての
群によって使用することのできるタイム・スタンプが選
択されることを保証する。本発明の他の特徴は、分散さ
れたトランザクションによってデータをロックすること
に関する。特に、2相式コミット・プロトコルの準備間
隔の前に、各トランザクションは、読み取りまたは書き
込みアクセスを必要とする各節点のデータを読み取りロ
ックまたは書き込みロックすることである。トランザク
ションが、コミット・プロトコルの第1相(準備間隔)
に入った時は常に、そのトランザクションに対する読み
取りロックはここで遅延ロックと呼ぶ新しい種類のデー
タ・ロックに変換される。遅延ロックは、これによって
他のトランザクションがデータに書き込みロックを得る
ことが可能になる点を除いて、読み取りロックと同様で
ある。しかし、遅延ロックされたデータに書き込みロッ
クを得るトランザクションはいずれも「遅延したトラン
ザクション」である。委任(commit)プロトコル
の第1フェーズ中に、遅延ロックされたデータに書込み
ロックを含む遅延トランザクションにおけるコーホート
は、遅延ロックを持つトランザクションによって決定さ
れた「最も遅い」値よりも遅い「最も早い」値を有して
いる時間範囲を決定する。換言すると、遅延トランザク
ションは、遅延ロックを有するトランザクションが委任
するかまたは中断する時間よりも遅い時間で、それ(遅
延トランザクション)が委任することを保証する時間範
囲を決定する。
【0010】このように時刻範囲の決定と遅延ロック機
構とを組み合わせることによって、トランザクションの
タイム・スタンプの順序が分散型データベース全体を通
じて一貫し、このトランザクションの真の連続している
順序と一致することが保証される。このことによって、
またコミット・プロトコル自体の最適化が可能になり、
これによってこのシステムの性能が強化される。
構とを組み合わせることによって、トランザクションの
タイム・スタンプの順序が分散型データベース全体を通
じて一貫し、このトランザクションの真の連続している
順序と一致することが保証される。このことによって、
またコミット・プロトコル自体の最適化が可能になり、
これによってこのシステムの性能が強化される。
【0011】本発明の他の目的と特徴は、図面と関連さ
せた場合、以下の詳細な説明および上記の特許請求の範
囲から容易に理解できる。
せた場合、以下の詳細な説明および上記の特許請求の範
囲から容易に理解できる。
【0012】
【実施例】図1を参照して、分散型データベース・シス
テム100が示される。一般的な分散型データベースの
例には、搭乗券予約システム、銀行や卸売り業者によっ
て維持される金融データベース、および大組織によって
維持される医療記録データベースがある。本システム
は、多数の個別節点102ないし108を有し、これら
はバス、区域内情報通信網、または広域情報通信網11
0によって相互接続されたデータ処理装置である。シス
テム100内のこれらのデータ処理装置は、一般的にワ
ークステーションおよびより強力なミニコンコンピュー
タまたは大型コンピュータの両方を有する。複数のデー
タ処理装置は、分散型データベースの部分112ないし
116を処理装置自身のメモリ内に記憶する。
テム100が示される。一般的な分散型データベースの
例には、搭乗券予約システム、銀行や卸売り業者によっ
て維持される金融データベース、および大組織によって
維持される医療記録データベースがある。本システム
は、多数の個別節点102ないし108を有し、これら
はバス、区域内情報通信網、または広域情報通信網11
0によって相互接続されたデータ処理装置である。シス
テム100内のこれらのデータ処理装置は、一般的にワ
ークステーションおよびより強力なミニコンコンピュー
タまたは大型コンピュータの両方を有する。複数のデー
タ処理装置は、分散型データベースの部分112ないし
116を処理装置自身のメモリ内に記憶する。
【0013】さらに、分散型データベース内の各々のデ
ータすなわち記録120には、時刻が打込まれ、このこ
とはデータすなわち記録と共に、これらの記録の時刻値
が最後に更新された順番を表わす調和した時刻値の組を
記憶することを意味する。さらに、このデータベース内
に記憶された記録の現在値に対して、このデータベース
は、また更新されて以来の記録122の古いバージョン
も記憶することが好ましい。更新された値によって上塗
りされたデータを記憶することによって、このデータベ
ースは、過去の特定の時刻でのこのデータベースの状態
を判定させることができる。定 義 この説明の目的のため、幾つかの用語は以下のように定
義する。
ータすなわち記録120には、時刻が打込まれ、このこ
とはデータすなわち記録と共に、これらの記録の時刻値
が最後に更新された順番を表わす調和した時刻値の組を
記憶することを意味する。さらに、このデータベース内
に記憶された記録の現在値に対して、このデータベース
は、また更新されて以来の記録122の古いバージョン
も記憶することが好ましい。更新された値によって上塗
りされたデータを記憶することによって、このデータベ
ースは、過去の特定の時刻でのこのデータベースの状態
を判定させることができる。定 義 この説明の目的のため、幾つかの用語は以下のように定
義する。
【0014】トランザクションを「委任する」("commi
t") とは、トランザクションの結果がデータベース内に
インストールされることを意味する。委任する能力と
は、もしこのトランザクションが中断されたならば、こ
のデータベース・システムが、トランザクションの結果
をインストールしない能力を持たなければならないこと
を意味する。
t") とは、トランザクションの結果がデータベース内に
インストールされることを意味する。委任する能力と
は、もしこのトランザクションが中断されたならば、こ
のデータベース・システムが、トランザクションの結果
をインストールしない能力を持たなければならないこと
を意味する。
【0015】「競合トランザクション」とは、2つ以上
のトランザクションが存在し、これらのトランザクショ
ンはその中の他の1つのトランザクションによって更新
されたデータを少なくとも潜在的にアクセスすることが
できる少なくとも1つのトランザクションを含んでいる
ことを意味する。したがって、競合トランザクションの
内の少なくとも1つによって生じた結果は、これらのト
ランザクションが実行される順番によって決まる。
のトランザクションが存在し、これらのトランザクショ
ンはその中の他の1つのトランザクションによって更新
されたデータを少なくとも潜在的にアクセスすることが
できる少なくとも1つのトランザクションを含んでいる
ことを意味する。したがって、競合トランザクションの
内の少なくとも1つによって生じた結果は、これらのト
ランザクションが実行される順番によって決まる。
【0016】「データ・ロック」とは、データベース内
の複数のデータすなわち記録に対して独占的権利を割り
当てる機構である。したがって、第1トランザクション
は、委任または中断を行うまでいずれの他のトランザク
ションもデータをアクセスしないことを保証するため、
データの特定の部分をロックすることができる。従来技
術は多種類のデータ・ロック機構を有し、これらは時に
データ・インタロックと呼ばれる。
の複数のデータすなわち記録に対して独占的権利を割り
当てる機構である。したがって、第1トランザクション
は、委任または中断を行うまでいずれの他のトランザク
ションもデータをアクセスしないことを保証するため、
データの特定の部分をロックすることができる。従来技
術は多種類のデータ・ロック機構を有し、これらは時に
データ・インタロックと呼ばれる。
【0017】トランザクションを「準備する」とは、こ
のトランザクションを委任するか、すなわち、このトラ
ンザクションによって生じる新しいデータ値を全て永続
的に記憶するか、またはこのトランザクションを中断す
るかを決定する処理を開始することを意味する。トラン
ザクションの「準備間隔」とは、トランザクションの準
備によって開始され、このトランザクションが委任また
は中断される場合に終了する時間間隔を意味する。2相式コミット・プロトコル 図2を参照して古典的な「2相式委任」を説明するが、
ここではこれを「2PC」と呼ぶ。2PCは、分散型シ
ステム内のトランザクションを連続化(serialize)する
ために最も広く利用されるプロトコルである。基本的
に、2相式コミット・プロトコルは以下のように動作す
る。トランザクションT1は、少なくとも2つのデータ
処理装置を有する。例えば、トランザクションはシステ
ム内に3つのデータ処理装置を含むことができ、ここで
は群(Cohort) A130、群B132、群C134と呼
ぶ。トランザクションT1の実行中に何も間違いが生じ
ないと仮定すれば、各群はこのトランザクションに関連
する計算を実行し、このトランザクションをなお反転す
なわち中断することのできるような方法で、このトラン
ザクションの全ての結果を一時的に記憶し、これによっ
てこのデータベースを変更しない状態にする。当業者が
理解しているように、これを実行するには多くの異なっ
た方法が存在し、トランザクションを逆転するために使
用する特定の方法は本発明にとっては重要ではない。
のトランザクションを委任するか、すなわち、このトラ
ンザクションによって生じる新しいデータ値を全て永続
的に記憶するか、またはこのトランザクションを中断す
るかを決定する処理を開始することを意味する。トラン
ザクションの「準備間隔」とは、トランザクションの準
備によって開始され、このトランザクションが委任また
は中断される場合に終了する時間間隔を意味する。2相式コミット・プロトコル 図2を参照して古典的な「2相式委任」を説明するが、
ここではこれを「2PC」と呼ぶ。2PCは、分散型シ
ステム内のトランザクションを連続化(serialize)する
ために最も広く利用されるプロトコルである。基本的
に、2相式コミット・プロトコルは以下のように動作す
る。トランザクションT1は、少なくとも2つのデータ
処理装置を有する。例えば、トランザクションはシステ
ム内に3つのデータ処理装置を含むことができ、ここで
は群(Cohort) A130、群B132、群C134と呼
ぶ。トランザクションT1の実行中に何も間違いが生じ
ないと仮定すれば、各群はこのトランザクションに関連
する計算を実行し、このトランザクションをなお反転す
なわち中断することのできるような方法で、このトラン
ザクションの全ての結果を一時的に記憶し、これによっ
てこのデータベースを変更しない状態にする。当業者が
理解しているように、これを実行するには多くの異なっ
た方法が存在し、トランザクションを逆転するために使
用する特定の方法は本発明にとっては重要ではない。
【0018】トランザクション内のある点で、これらの
群のうちの1つ、ここでは群Cは、2相式コミット・プ
ロトコルの「調整子」の役割を当てられる。この調整子
は、準備メッセージ140と呼ばれる第1メッセージを
送り、このメッセージは、分散型データベースに対する
群全てに対して、このトランザクションがここに終了
し、委任されるのが望ましいことを通知する。このトラ
ンザクションに対する各々の群は、次に自分自身を準備
しようと試みる。トランザクション前のデータベースの
状態とトランザクション後のデータベースの状態との両
方を永続的に記憶することを保証することが可能である
ことをこの群が確認にしなければならないことを、この
ことは基本的に意味する。したがって、これらの状態の
内のいずれが1つがインストールされることを保証する
ことができることを、この群は、トランザクションがC
OMMIT(委任)したかまたはABORT(中断)し
たかによって調べる。
群のうちの1つ、ここでは群Cは、2相式コミット・プ
ロトコルの「調整子」の役割を当てられる。この調整子
は、準備メッセージ140と呼ばれる第1メッセージを
送り、このメッセージは、分散型データベースに対する
群全てに対して、このトランザクションがここに終了
し、委任されるのが望ましいことを通知する。このトラ
ンザクションに対する各々の群は、次に自分自身を準備
しようと試みる。トランザクション前のデータベースの
状態とトランザクション後のデータベースの状態との両
方を永続的に記憶することを保証することが可能である
ことをこの群が確認にしなければならないことを、この
ことは基本的に意味する。したがって、これらの状態の
内のいずれが1つがインストールされることを保証する
ことができることを、この群は、トランザクションがC
OMMIT(委任)したかまたはABORT(中断)し
たかによって調べる。
【0019】次に、各々の群は、READYメッセージ
またはABORTメッセージ142を調整子に送り返す
ことによって、このトランザクションの処理を決定す
る。もし群による準備の試みが失敗したならば、または
先行するトランザクションのいずれかのステップが失敗
したならば、この群はABORTすることを決定する。
もし、準備の試みが成功したならば、次に群はCOMM
ITすることを決定する。COMMITすると決定した
いずれの群も準備したと呼ばれる。
またはABORTメッセージ142を調整子に送り返す
ことによって、このトランザクションの処理を決定す
る。もし群による準備の試みが失敗したならば、または
先行するトランザクションのいずれかのステップが失敗
したならば、この群はABORTすることを決定する。
もし、準備の試みが成功したならば、次に群はCOMM
ITすることを決定する。COMMITすると決定した
いずれの群も準備したと呼ばれる。
【0020】調整子がトランザクション内に参考した全
ての群からの決定を受け取ると、この調整子はこのトラ
ンザクションの処理を認識する。もし全ての群がCOM
MITすると決定したならば、この調整子はこのトラン
ザクションをCOMMITする。もし、いずれかの群が
ABORTすると決定したならば、または1つの群が所
定の時間内に準備メッセージに応答することに失敗した
ならば、次に調整子はこのトランザクションをABOR
Tする。いずれの場合でも、調整子はトランザクション
処理メッセージ144(すなわち、COMMITまたは
ABORT)を全ての群に送る。
ての群からの決定を受け取ると、この調整子はこのトラ
ンザクションの処理を認識する。もし全ての群がCOM
MITすると決定したならば、この調整子はこのトラン
ザクションをCOMMITする。もし、いずれかの群が
ABORTすると決定したならば、または1つの群が所
定の時間内に準備メッセージに応答することに失敗した
ならば、次に調整子はこのトランザクションをABOR
Tする。いずれの場合でも、調整子はトランザクション
処理メッセージ144(すなわち、COMMITまたは
ABORT)を全ての群に送る。
【0021】群がトランザクション処理メッセージを受
け取ると、その群はその指示によってこのトランザクシ
ョンを終了する。もし処理がCOMMITであるなら
ば、この群はデータベース内に更新されたデータ値をイ
ンストールする。もし処理がABORTであるならば、
トランザクション前のデータベースの状態が再びインス
トールされる。これらの群は、トランザクションの処理
を安定して記憶すると、確認メッセージ146を調整子
134に送り返す。
け取ると、その群はその指示によってこのトランザクシ
ョンを終了する。もし処理がCOMMITであるなら
ば、この群はデータベース内に更新されたデータ値をイ
ンストールする。もし処理がABORTであるならば、
トランザクション前のデータベースの状態が再びインス
トールされる。これらの群は、トランザクションの処理
を安定して記憶すると、確認メッセージ146を調整子
134に送り返す。
【0022】調整子として動作する群134は、このト
ランザクションを委任できるかどうかを処理の開始時に
認識している点を除き、2PCプロトコルの期間中は他
の群と同じ機能を果たすことに留意するべきである。さ
らに、この群は、このトランザクションの準備相と委任
相を行う。全ての意図と目的について、この調整子は、
たとえこれらの群の内の1つによって占拠されたシステ
ムの節点で動作していても、独立した存在として考える
ことができる。
ランザクションを委任できるかどうかを処理の開始時に
認識している点を除き、2PCプロトコルの期間中は他
の群と同じ機能を果たすことに留意するべきである。さ
らに、この群は、このトランザクションの準備相と委任
相を行う。全ての意図と目的について、この調整子は、
たとえこれらの群の内の1つによって占拠されたシステ
ムの節点で動作していても、独立した存在として考える
ことができる。
【0023】技術上周知の多相式コミット・プロトコル
が多数存在することに留意するべきである。さらに、上
述の2相式コミット・プロトコルには異なったバージョ
ンが多数存在する。本発明は、各群がトランザクション
調整子と通信し、調整子がトランザクション処理を全て
の群に知らせるものであれば、いずれのプロトコルを使
用することもできる。以下で説明するように、本発明は
これらのメッセージを使用してトランザクション時刻と
一致させる方法を提供する。トランザクション・タイムスタンプの選択 選択するべきトランザクションのタイムスタンプは、特
定のトランザクションによって生じた全てのデータの更
新と共に記憶される時刻値である。本発明で使用する基
本的な機構は、2個のメッセージで運ばれる情報を議論
することによって2PCプロトコルを拡張することであ
る。
が多数存在することに留意するべきである。さらに、上
述の2相式コミット・プロトコルには異なったバージョ
ンが多数存在する。本発明は、各群がトランザクション
調整子と通信し、調整子がトランザクション処理を全て
の群に知らせるものであれば、いずれのプロトコルを使
用することもできる。以下で説明するように、本発明は
これらのメッセージを使用してトランザクション時刻と
一致させる方法を提供する。トランザクション・タイムスタンプの選択 選択するべきトランザクションのタイムスタンプは、特
定のトランザクションによって生じた全てのデータの更
新と共に記憶される時刻値である。本発明で使用する基
本的な機構は、2個のメッセージで運ばれる情報を議論
することによって2PCプロトコルを拡張することであ
る。
【0024】一般的に、本発明は、各々の群がトランザ
クション時刻に対する要求をトランザクション調整子に
通知することを必要とする。この調整子は、次に群全て
の要件を満足する1つの時刻を発見しようと試みる。シ
ステム100内の各々のデータ処理装置は、単調に増加
するLAST(最後の)トランザクション時刻150を
記憶保持する。各データ処理装置は、これをLAST
(最後)の値を各々の委任されたトランザクションのタ
イムスタンプと比較することによって行う。これらのタ
イムスタンプの内の1つが、LAST値150より以降
である場合は、常にこのLASTはこのタイムスタンプ
の値に設定される。各々の群はまた内部クロック152
を有し、これはその群に対して局部(local)現在時刻を
指定する。
クション時刻に対する要求をトランザクション調整子に
通知することを必要とする。この調整子は、次に群全て
の要件を満足する1つの時刻を発見しようと試みる。シ
ステム100内の各々のデータ処理装置は、単調に増加
するLAST(最後の)トランザクション時刻150を
記憶保持する。各データ処理装置は、これをLAST
(最後)の値を各々の委任されたトランザクションのタ
イムスタンプと比較することによって行う。これらのタ
イムスタンプの内の1つが、LAST値150より以降
である場合は、常にこのLASTはこのタイムスタンプ
の値に設定される。各々の群はまた内部クロック152
を有し、これはその群に対して局部(local)現在時刻を
指定する。
【0025】図4を参照して、群が2PCプロトコルの
メッセージ番号2でトランザクションを委任すると決定
した場合に、この群は2つの時刻値、すなわち、このト
ランザクションが委任を許可されることのできるEAR
LIEST(最初の)時刻、およびこのトランザクショ
ンが委任を許可されることのできるLATEST(最後
の)時刻をまた伝達する。このEARLIEST(最初
の)時刻は、現在のトランザクションが依存するそのデ
ータベース内の他のいずれのトランザクションの時刻よ
りも以降でなければならない。群/データベースが調整
子から委任要求を受け取り、このトランザクションを委
任する準備をした場合、群/データベースはEARLI
ESTトランザクション時刻を決定するが、この時刻は
LASTタイムスタンプ値150およびその現在のクロ
ック時刻の両方よりも大きい。
メッセージ番号2でトランザクションを委任すると決定
した場合に、この群は2つの時刻値、すなわち、このト
ランザクションが委任を許可されることのできるEAR
LIEST(最初の)時刻、およびこのトランザクショ
ンが委任を許可されることのできるLATEST(最後
の)時刻をまた伝達する。このEARLIEST(最初
の)時刻は、現在のトランザクションが依存するそのデ
ータベース内の他のいずれのトランザクションの時刻よ
りも以降でなければならない。群/データベースが調整
子から委任要求を受け取り、このトランザクションを委
任する準備をした場合、群/データベースはEARLI
ESTトランザクション時刻を決定するが、この時刻は
LASTタイムスタンプ値150およびその現在のクロ
ック時刻の両方よりも大きい。
【0026】各々の節点によって指定されたLATES
T(最後の)トランザクション時刻は、節点間で分かれ
るトランザクション時刻の範囲を確立するために使用す
る。したがって、LATESTパラメータの目的は、連
続化ではなく、むしろクロック時刻とトランザクション
時刻の分離を制限することにある。この調整子は、これ
らの群によって決定された全ての「最初と最後」の時刻
範囲内にあるトランザクション時刻を発見する必要があ
る。もし、これらの範囲の交点が存在しないならば、こ
の調整子はこのトランザクションを中断する。
T(最後の)トランザクション時刻は、節点間で分かれ
るトランザクション時刻の範囲を確立するために使用す
る。したがって、LATESTパラメータの目的は、連
続化ではなく、むしろクロック時刻とトランザクション
時刻の分離を制限することにある。この調整子は、これ
らの群によって決定された全ての「最初と最後」の時刻
範囲内にあるトランザクション時刻を発見する必要があ
る。もし、これらの範囲の交点が存在しないならば、こ
の調整子はこのトランザクションを中断する。
【0027】使用頻度の高いデータベースは、使用頻度
の低いデータベースよりもより厳格な要求をすることが
可能である、すなわち各々の群によって指定される時刻
範囲がより狭いことを要求することができる。すなわ
ち、このトランザクションが不確実である時間の量を低
減することによって一致性を向上させるため、狭い範囲
を必要とする可能性がある。一方、トランザクション時
刻の順序とトランザクション時刻の連続性が一致する限
り、ワークステーションのデータベースは、分散された
トランザクションの期間中、ホスト・データベースが同
意する殆ど全てのタイムスタンプを許容する可能性があ
る。このようなデータベースは、LATEST範囲を決
定できない可能性がある。データ・ロック 図3を参照して、分散型データベース・システム内の各
節点102は、ロック・マネジャ200とロック・テー
ブル202を有し、これらは、データ・ロックのその節
点でデータベース210内に記憶されたデータに対さす
るデータ・ロックを追跡するために使用される。言い換
えれば、全ての節点は自分専用のロック・マネジャ20
0とロック・テーブル202を有する。
の低いデータベースよりもより厳格な要求をすることが
可能である、すなわち各々の群によって指定される時刻
範囲がより狭いことを要求することができる。すなわ
ち、このトランザクションが不確実である時間の量を低
減することによって一致性を向上させるため、狭い範囲
を必要とする可能性がある。一方、トランザクション時
刻の順序とトランザクション時刻の連続性が一致する限
り、ワークステーションのデータベースは、分散された
トランザクションの期間中、ホスト・データベースが同
意する殆ど全てのタイムスタンプを許容する可能性があ
る。このようなデータベースは、LATEST範囲を決
定できない可能性がある。データ・ロック 図3を参照して、分散型データベース・システム内の各
節点102は、ロック・マネジャ200とロック・テー
ブル202を有し、これらは、データ・ロックのその節
点でデータベース210内に記憶されたデータに対さす
るデータ・ロックを追跡するために使用される。言い換
えれば、全ての節点は自分専用のロック・マネジャ20
0とロック・テーブル202を有する。
【0028】この節点は、またデータ処理装置(CP
U)212、内部クロック152、およびにデータベー
ス210を記憶するのに使用するメモリ・モジュール2
14を有している。ここでの論議が1つの節点における
「データベース・システム」に関するものである場合、
これはデータベース・ソフトウエアおよび図3で参照番
号210によって示すデータを参照するものである。こ
のデータベース・システムは、一般的にCPU212で
実行される1つ以上の工程すなわち実行経路として具体
化される。幾つかのアプリケーションでは、このデータ
ベース・システムは、独自のCPU、メモリ等を有する
個別のハードウエアの組として具現化することができ
る。
U)212、内部クロック152、およびにデータベー
ス210を記憶するのに使用するメモリ・モジュール2
14を有している。ここでの論議が1つの節点における
「データベース・システム」に関するものである場合、
これはデータベース・ソフトウエアおよび図3で参照番
号210によって示すデータを参照するものである。こ
のデータベース・システムは、一般的にCPU212で
実行される1つ以上の工程すなわち実行経路として具体
化される。幾つかのアプリケーションでは、このデータ
ベース・システムは、独自のCPU、メモリ等を有する
個別のハードウエアの組として具現化することができ
る。
【0029】このメモリ・モジュール214は、ランダ
ム・アクセス・メモリとハード磁気ディスクのような大
型記憶装置の両方を有する。ネットワーク・インタフェ
ース216によって、節点は通信ネットワーク110
(これは一般的に区域内情報通信網または広域情報通信
網のバスである)を介して他の群と接続される。以下で
より詳細に説明するように、各々の節点102は、トラ
ンザクション・マネジャ220を有し、群間でのトラン
ザクションに対する全ての通信を取り扱う。節点102
のこれらの構成部品は一般的にはソフトウエアの一部で
あり、これは共通メモリに内蔵され、多重処理CPU2
12によって同時に実行される。
ム・アクセス・メモリとハード磁気ディスクのような大
型記憶装置の両方を有する。ネットワーク・インタフェ
ース216によって、節点は通信ネットワーク110
(これは一般的に区域内情報通信網または広域情報通信
網のバスである)を介して他の群と接続される。以下で
より詳細に説明するように、各々の節点102は、トラ
ンザクション・マネジャ220を有し、群間でのトラン
ザクションに対する全ての通信を取り扱う。節点102
のこれらの構成部品は一般的にはソフトウエアの一部で
あり、これは共通メモリに内蔵され、多重処理CPU2
12によって同時に実行される。
【0030】ある節点のあるデータを読取り、またはこ
れにデータを書き込む前に、トランザクションは、先ず
そのデータに対するロックを要求しなければならない。
アクセス中のデータがロックされていないかまたは他の
トランザクションに対して許容される読取りロックを有
している場合のみ、ロック・マネジャ200は読取りロ
ックに対する要求を許容する。アクセス中のデータがロ
ックされていない場合のみ、ロック・マネジャは書き込
みロックに対する要求を許容する。したがって、1つの
データに2つ以上の読取りロックが存在する可能性があ
るが、書き込みロックを有するこのデータはそのロック
1個のみを有することができる。許容された各々の新し
いロックは、ロック・テーブル202内の入力240に
よって表わされる。各々のロック入力240は、このデ
ータまたはロック中の他のシステム資源(reaource) の
アドレス・ロックを要求し「所有」するトランザクショ
ンの識別、およびロック・モード(例えば、読み取りま
たは書き込み)を表わす。トランザクションからの要求
であって、阻止され、ロックを待機しているものもまた
記録される。読取り専用群 読取り専用群は更新されない群であり、2PCプロトコ
ルではCOMMITメッセージを受け取る必要がない
が、その理由は、この群は通常インストールするべきデ
ータも実行する必要のある他のいずれの動作も有してい
ないからである。この群は、単にそのデータ・ロックを
準備時刻(すなわち、準備メッセージを調整子から受け
取る時刻)に解除するだけである。
れにデータを書き込む前に、トランザクションは、先ず
そのデータに対するロックを要求しなければならない。
アクセス中のデータがロックされていないかまたは他の
トランザクションに対して許容される読取りロックを有
している場合のみ、ロック・マネジャ200は読取りロ
ックに対する要求を許容する。アクセス中のデータがロ
ックされていない場合のみ、ロック・マネジャは書き込
みロックに対する要求を許容する。したがって、1つの
データに2つ以上の読取りロックが存在する可能性があ
るが、書き込みロックを有するこのデータはそのロック
1個のみを有することができる。許容された各々の新し
いロックは、ロック・テーブル202内の入力240に
よって表わされる。各々のロック入力240は、このデ
ータまたはロック中の他のシステム資源(reaource) の
アドレス・ロックを要求し「所有」するトランザクショ
ンの識別、およびロック・モード(例えば、読み取りま
たは書き込み)を表わす。トランザクションからの要求
であって、阻止され、ロックを待機しているものもまた
記録される。読取り専用群 読取り専用群は更新されない群であり、2PCプロトコ
ルではCOMMITメッセージを受け取る必要がない
が、その理由は、この群は通常インストールするべきデ
ータも実行する必要のある他のいずれの動作も有してい
ないからである。この群は、単にそのデータ・ロックを
準備時刻(すなわち、準備メッセージを調整子から受け
取る時刻)に解除するだけである。
【0031】しかし、これは、ロックを解除されたデー
タをどの位速やかに更新できるかという問題を提起す
る。トランザクション時刻を正しく順序づける必要があ
るので、このデータを更新する後続のトランザクション
が、このデータ・ロックを解除するトランザクションよ
り以降のタイムスタンプを与えられることを確認しなけ
ればならない。したがって、最初のトランザクションが
委任または中断を行う時刻よりも以降でのみ、これらの
読取りロックを解除することが恐らく好ましい。この問
題は、読取り専用ロックがこのトランザクションにどの
ようなタイムスタンプが割り当てられたかを決して教え
られない場合に、いかにしてこの読取り専用の最適化
(すなわち、読取り専用群に対してより少ないメッセー
ジを使用する)を保持するかということである。
タをどの位速やかに更新できるかという問題を提起す
る。トランザクション時刻を正しく順序づける必要があ
るので、このデータを更新する後続のトランザクション
が、このデータ・ロックを解除するトランザクションよ
り以降のタイムスタンプを与えられることを確認しなけ
ればならない。したがって、最初のトランザクションが
委任または中断を行う時刻よりも以降でのみ、これらの
読取りロックを解除することが恐らく好ましい。この問
題は、読取り専用ロックがこのトランザクションにどの
ようなタイムスタンプが割り当てられたかを決して教え
られない場合に、いかにしてこの読取り専用の最適化
(すなわち、読取り専用群に対してより少ないメッセー
ジを使用する)を保持するかということである。
【0032】これの解決法は、この読取り専用群が制限
された範囲の「最初と最後」のタイムスタンプに同意す
ることを委任する用意があることを示す自己のREAD
Yを送ることである。読取り専用群は、ここで自己のC
OMMITメッセージと共に送られたLATEST値に
設けた時刻よりも以前の時刻にトランザクションが終了
することを知る。したがって、トランザクションが終了
した正確な時刻を全て知らなくても、読取り専用群はL
ATEST時刻に読取りロック解除することができる。
この方法論によって、このトランザクションの実際の委
任時刻を知らなくても、競合トランザクションの「準備
間隔」が離れていることが保証される。さらに、このこ
とによって、タイムスタンプの順序(すなわち、データ
ベース内のタイムスタンプに関連する順序)が連続した
順序(すなわち、トランザクションが委任される実際の
順序)と一致することが保証される。トランザクション・テーブル 各データベースは、トランザクション・テーブル222
を保持する。データベースが群である各々のトランザク
ションの場合、このデータベースは、トランザクション
・テーブル222に入力すなわち記録240を作る。各
トランザクション記録240は、このトランザクション
の識別とこのトランザクションの状態、すなわち、活性
状態(すなわち、計算中すなわち準備中ではない)、準
備中、たまは委任中を表わす。この記録240は、また
その群によって決定された(または決定されるべき)E
ARLIEST(最初の)時刻とLAEST(最後の)
時刻を表わす。トランザクション・テーブル222内の
情報は、以下で説明するように、ロックされたデータを
使用するトランザクションを委任することに関連して使
用される。
された範囲の「最初と最後」のタイムスタンプに同意す
ることを委任する用意があることを示す自己のREAD
Yを送ることである。読取り専用群は、ここで自己のC
OMMITメッセージと共に送られたLATEST値に
設けた時刻よりも以前の時刻にトランザクションが終了
することを知る。したがって、トランザクションが終了
した正確な時刻を全て知らなくても、読取り専用群はL
ATEST時刻に読取りロック解除することができる。
この方法論によって、このトランザクションの実際の委
任時刻を知らなくても、競合トランザクションの「準備
間隔」が離れていることが保証される。さらに、このこ
とによって、タイムスタンプの順序(すなわち、データ
ベース内のタイムスタンプに関連する順序)が連続した
順序(すなわち、トランザクションが委任される実際の
順序)と一致することが保証される。トランザクション・テーブル 各データベースは、トランザクション・テーブル222
を保持する。データベースが群である各々のトランザク
ションの場合、このデータベースは、トランザクション
・テーブル222に入力すなわち記録240を作る。各
トランザクション記録240は、このトランザクション
の識別とこのトランザクションの状態、すなわち、活性
状態(すなわち、計算中すなわち準備中ではない)、準
備中、たまは委任中を表わす。この記録240は、また
その群によって決定された(または決定されるべき)E
ARLIEST(最初の)時刻とLAEST(最後の)
時刻を表わす。トランザクション・テーブル222内の
情報は、以下で説明するように、ロックされたデータを
使用するトランザクションを委任することに関連して使
用される。
【0033】トランザクション・マネジャ220は、ま
た準備されたがまだ終了していないトランザクション用
のトランザクション・テーブル224を保持する。非タ
イムスタンプのデータベースでは、このトランザクショ
ン・マネジャは、テーブル222内に「最後の委任」値
を記憶し、この値はタイムスタンプのデータベースが群
であった全てのトランザクションに対する最後のタイム
スタンプの時刻値に等しい。遅延ロック 本発明は、準備間隔の期間に後続のトランザクションに
使用できる読取り専用データ(すなわち、トランザクシ
ョンが読み取ることのできることが必要だが、更新でき
ることは必要でないデータ)を作る機構を提供する。さ
らに、この機構は、このデータをその後に使用する全て
の他のトランザクションの委任を遅延し、その結果、他
のトランザクションはこのトランザクションがこのデー
タを「解放する」後まで委任しない。
た準備されたがまだ終了していないトランザクション用
のトランザクション・テーブル224を保持する。非タ
イムスタンプのデータベースでは、このトランザクショ
ン・マネジャは、テーブル222内に「最後の委任」値
を記憶し、この値はタイムスタンプのデータベースが群
であった全てのトランザクションに対する最後のタイム
スタンプの時刻値に等しい。遅延ロック 本発明は、準備間隔の期間に後続のトランザクションに
使用できる読取り専用データ(すなわち、トランザクシ
ョンが読み取ることのできることが必要だが、更新でき
ることは必要でないデータ)を作る機構を提供する。さ
らに、この機構は、このデータをその後に使用する全て
の他のトランザクションの委任を遅延し、その結果、他
のトランザクションはこのトランザクションがこのデー
タを「解放する」後まで委任しない。
【0034】特に、本発明は、遅延ロックと呼ぶ新しい
データ・ロック・モードを提供する。この遅延ロックの
考え方は以下の通りである。準備時刻に、トランザクシ
ョンはその読取りロックを全て遅延ロックに変換する。
委任時刻に、この遅延ロックは解放される(すなわち、
ロック・テーブルから消去すなわち除去される)。遅延
ロックは、他のいずれのロック・モードとも競合しな
い。言い換えれば、もし1つのデータが「遅延ロックさ
れた」ならば、もう1つのトランザクションはそのデー
タに対する読取りロックまたは書き込みロックのいずれ
かを得ることができる。しかし、トランザクションが遅
延ロックされたデータを書き込みロックする場合、その
トランザクションは、この遅延ロックが終了する後まで
委任を許可されない。この要求は、トランザクションの
タイムスタンプ順序が、これの連続化の順序と一致する
ことを保証することが必要である。
データ・ロック・モードを提供する。この遅延ロックの
考え方は以下の通りである。準備時刻に、トランザクシ
ョンはその読取りロックを全て遅延ロックに変換する。
委任時刻に、この遅延ロックは解放される(すなわち、
ロック・テーブルから消去すなわち除去される)。遅延
ロックは、他のいずれのロック・モードとも競合しな
い。言い換えれば、もし1つのデータが「遅延ロックさ
れた」ならば、もう1つのトランザクションはそのデー
タに対する読取りロックまたは書き込みロックのいずれ
かを得ることができる。しかし、トランザクションが遅
延ロックされたデータを書き込みロックする場合、その
トランザクションは、この遅延ロックが終了する後まで
委任を許可されない。この要求は、トランザクションの
タイムスタンプ順序が、これの連続化の順序と一致する
ことを保証することが必要である。
【0035】第2トランザクション自体の委任処理を遅
延させるのではなくて、上述のタイムスタンプに対する
要求は以下のように実行される。トランザクションが遅
延ロックされたデータを書き込みロックする場合、トラ
ンザクション時刻に対する最初の時刻決定時にそのトラ
ンザクションは下限を確立する。さらに詳しくは、「遅
延された」トランザクションの準備期間中に書き込みロ
ックを得た群によって決定される最初の時刻は、以下の
時間値、(1)その群に対するLAST値(すなわち、
その節点内の委任するべき最後のトランザクションの時
刻)、(2)クロック時間、および(3)このトランザ
クションの処理期間中、群の遭遇するトランザクション
の遅延ロック全てのLATEST時刻、の内の最後の時
刻である。
延させるのではなくて、上述のタイムスタンプに対する
要求は以下のように実行される。トランザクションが遅
延ロックされたデータを書き込みロックする場合、トラ
ンザクション時刻に対する最初の時刻決定時にそのトラ
ンザクションは下限を確立する。さらに詳しくは、「遅
延された」トランザクションの準備期間中に書き込みロ
ックを得た群によって決定される最初の時刻は、以下の
時間値、(1)その群に対するLAST値(すなわち、
その節点内の委任するべき最後のトランザクションの時
刻)、(2)クロック時間、および(3)このトランザ
クションの処理期間中、群の遭遇するトランザクション
の遅延ロック全てのLATEST時刻、の内の最後の時
刻である。
【0036】各々の遅延ロックのLATEST時刻は以
下のように決定される。遅延ロックを有する1つのデー
タに対して書き込みロックが要求される場合、遅延ロッ
クを有する群内のロック・マネジャ220は、遅延ロッ
クを保有するトランザクションに告知する。書き込みト
ランザクションが委任する場合、その委任のタイムスタ
ンプは、もしトランザクションが依然として準備中であ
れば、そのトランザクションを保有する遅延ロックによ
って決定されるLATEST時刻、またはもしそのトラ
ンザクションが委任されてしまっているならば、そのト
ランザクションの委任時刻のいずれかよりも以降でなけ
ればならない。
下のように決定される。遅延ロックを有する1つのデー
タに対して書き込みロックが要求される場合、遅延ロッ
クを有する群内のロック・マネジャ220は、遅延ロッ
クを保有するトランザクションに告知する。書き込みト
ランザクションが委任する場合、その委任のタイムスタ
ンプは、もしトランザクションが依然として準備中であ
れば、そのトランザクションを保有する遅延ロックによ
って決定されるLATEST時刻、またはもしそのトラ
ンザクションが委任されてしまっているならば、そのト
ランザクションの委任時刻のいずれかよりも以降でなけ
ればならない。
【0037】書き込みロックを得る群によって決定され
るべき最初の時刻に下限を設定するこの方法によって、
競合トランザクションが継続して切り離された準備間隔
を有することと、したがってそのタイムスタンプの順序
と連続化順序が一致することが保証される。遅延ロック
を実行する好適な方法には2種類がある。その1つは、
トランザクション・マネジャ220が、トランザクショ
ンが準備できた時に常にロック・マネジャ200にトラ
ンザクションに対する読取りロックを遅延ロックに後退
させることを明確に要求することである。言い換えれ
ば、これらのロックに対するロックの種類は、「読取
り」から「遅延」に変更される。トランザクションが遅
延ロックされたデータに対する書き込みロックを要求す
る場合、上述のステップは書き込みロックを要求したト
ランザクションに対する最初の時刻の決定に下限を確立
するために上述のステップが実行される。
るべき最初の時刻に下限を設定するこの方法によって、
競合トランザクションが継続して切り離された準備間隔
を有することと、したがってそのタイムスタンプの順序
と連続化順序が一致することが保証される。遅延ロック
を実行する好適な方法には2種類がある。その1つは、
トランザクション・マネジャ220が、トランザクショ
ンが準備できた時に常にロック・マネジャ200にトラ
ンザクションに対する読取りロックを遅延ロックに後退
させることを明確に要求することである。言い換えれ
ば、これらのロックに対するロックの種類は、「読取
り」から「遅延」に変更される。トランザクションが遅
延ロックされたデータに対する書き込みロックを要求す
る場合、上述のステップは書き込みロックを要求したト
ランザクションに対する最初の時刻の決定に下限を確立
するために上述のステップが実行される。
【0038】遅延ロックを実行する第2の方法は、ロッ
ク・マネジャ200によって読取りロックを遅延ロック
に明確に後退させることを避け、したがってトランザク
ションを準備する場合、ロック・マネジャ200に対す
る他の呼びかけを避ける。この第2の方法では、読取り
ロックは、トランザクション(すなわち、ロックを所有
するトランザクション)が委任した場合にのみ解放され
る。
ク・マネジャ200によって読取りロックを遅延ロック
に明確に後退させることを避け、したがってトランザク
ションを準備する場合、ロック・マネジャ200に対す
る他の呼びかけを避ける。この第2の方法では、読取り
ロックは、トランザクション(すなわち、ロックを所有
するトランザクション)が委任した場合にのみ解放され
る。
【0039】読取りロックと遭遇し、ロックされたデー
タに書き込みロックを要求している後続の全てのトラン
ザクションは、ロックされたデータに読取りロック(ま
たは複数の読取りロック)を有するトランザクション
(または複数のトランザクション)の処理を決定するた
めにトランザクション・テーブル222に伺いを立て
る。言い換えれば、ロック・マネジャ200が読取りロ
ックされた1つのデータに対する後続のトランザクショ
ンから書き込みロック要求を受ける場合、このロック・
マネジャ200はロックされたデータに読取りロック
(または複数の読取りロック)を有するトランザクショ
ン(または複数のトランザクション)の処理を決定する
ためにトランザクション・テーブル222に伺いを立て
る。
タに書き込みロックを要求している後続の全てのトラン
ザクションは、ロックされたデータに読取りロック(ま
たは複数の読取りロック)を有するトランザクション
(または複数のトランザクション)の処理を決定するた
めにトランザクション・テーブル222に伺いを立て
る。言い換えれば、ロック・マネジャ200が読取りロ
ックされた1つのデータに対する後続のトランザクショ
ンから書き込みロック要求を受ける場合、このロック・
マネジャ200はロックされたデータに読取りロック
(または複数の読取りロック)を有するトランザクショ
ン(または複数のトランザクション)の処理を決定する
ためにトランザクション・テーブル222に伺いを立て
る。
【0040】もし読取りロックを保持するこのトランザ
クションが活性であれば(すなわち、準備中でなけれ
ば)、次に書き込み要求が標準読取り/書き込み不一致
として取り扱われ、要求しているトランザクションは阻
止される。読取りロックを保持するトランザクションが
準備された場合、この読取りロックは、トランザクショ
ン・テーブル222内に示されるようにトランザクショ
ンの状態を変更することによって無条件に遅延ロックに
後退する。現在遅延ロックされているデータに書き込み
ロックを要求するトランザクションは、前進することを
許可される。さらに、阻止された書き込み要求トランザ
クションは、ここで前進することを許可される。
クションが活性であれば(すなわち、準備中でなけれ
ば)、次に書き込み要求が標準読取り/書き込み不一致
として取り扱われ、要求しているトランザクションは阻
止される。読取りロックを保持するトランザクションが
準備された場合、この読取りロックは、トランザクショ
ン・テーブル222内に示されるようにトランザクショ
ンの状態を変更することによって無条件に遅延ロックに
後退する。現在遅延ロックされているデータに書き込み
ロックを要求するトランザクションは、前進することを
許可される。さらに、阻止された書き込み要求トランザ
クションは、ここで前進することを許可される。
【0041】もし、読取りロックを保有するトランザク
ションが準備されたならば、この読取りロックは遅延ロ
ックとして取り扱われ、要求された書き込みロックが許
可される。遅延ロックを保有するトランザクションは、
遅延トランザクション・リスト250に入力され、この
トランザクションを要求する。書き込みロックを要求し
たこのトランザクションに対する委任処理の期間中、群
がトランザクション時刻の決定を無視しなければならな
い場合、この群はこの従属リスト250に伺いを立て
る。この従属リストの委任されたトランザクションは無
視され、リスト250のトランザクション全てが委任さ
れたならば、次に全ての遅延ロック委任処理は飛び越さ
れる。それ以外は、全ての遅延トランザクションのLA
TESTの最後の値は、この群に対するEARLIES
T決定の下限となる。
ションが準備されたならば、この読取りロックは遅延ロ
ックとして取り扱われ、要求された書き込みロックが許
可される。遅延ロックを保有するトランザクションは、
遅延トランザクション・リスト250に入力され、この
トランザクションを要求する。書き込みロックを要求し
たこのトランザクションに対する委任処理の期間中、群
がトランザクション時刻の決定を無視しなければならな
い場合、この群はこの従属リスト250に伺いを立て
る。この従属リストの委任されたトランザクションは無
視され、リスト250のトランザクション全てが委任さ
れたならば、次に全ての遅延ロック委任処理は飛び越さ
れる。それ以外は、全ての遅延トランザクションのLA
TESTの最後の値は、この群に対するEARLIES
T決定の下限となる。
【0042】本発明のタイムスタンプ用の2相式コミッ
ト・プロトコルでは、各々のデータベース・システム
(すなわち、各々の節点すなわち群)はロックの獲得に
対して2相になっている。この局部的に2相になってい
る特性は、遅延ロックと共に、局部的に競合するトラン
ザクションが離れた準備間隔を有することを保証する。
したがって、局部的トランザクションは、正しく局部的
に並べられたトランザクション・タイムスタンプを有す
る。全体として、本発明のコミット・プロトコルは、ト
ランザクションのタイムスタンプの順序がトランザクシ
ョンを正しく並べることを保証するが、その理由は、選
択されたタイムスタンプの順序が全ての局部的連続化と
一致するからである。
ト・プロトコルでは、各々のデータベース・システム
(すなわち、各々の節点すなわち群)はロックの獲得に
対して2相になっている。この局部的に2相になってい
る特性は、遅延ロックと共に、局部的に競合するトラン
ザクションが離れた準備間隔を有することを保証する。
したがって、局部的トランザクションは、正しく局部的
に並べられたトランザクション・タイムスタンプを有す
る。全体として、本発明のコミット・プロトコルは、ト
ランザクションのタイムスタンプの順序がトランザクシ
ョンを正しく並べることを保証するが、その理由は、選
択されたタイムスタンプの順序が全ての局部的連続化と
一致するからである。
【0043】基本的に、2相式ロックは、トランザクシ
ョンを並べるために、準備時刻まで局部的に使用され
る。次に、タイムスタンプの順序を一致させる制御を使
用する。これによって、コミット・プロトコル自身を使
用してトランザクション群の通常の動作を「静止させ
る」効果によって、別の終了プロトコルを使用すること
なく、高いレベルの一致性がトランザクション間で提供
される。さらに、本発明は、トランザクションの連続性
をなお保証しながら、遅延された節約の評価(すなわ
ち、トランザクションの終了時に有効にしなければなら
ない制約)をトリガするために2PCプロトコル・メッ
セージを利用することを可能にする。
ョンを並べるために、準備時刻まで局部的に使用され
る。次に、タイムスタンプの順序を一致させる制御を使
用する。これによって、コミット・プロトコル自身を使
用してトランザクション群の通常の動作を「静止させ
る」効果によって、別の終了プロトコルを使用すること
なく、高いレベルの一致性がトランザクション間で提供
される。さらに、本発明は、トランザクションの連続性
をなお保証しながら、遅延された節約の評価(すなわ
ち、トランザクションの終了時に有効にしなければなら
ない制約)をトリガするために2PCプロトコル・メッ
セージを利用することを可能にする。
【0044】もしトランザクションに対する群によって
決定されたタイムスタンプの範囲が十分に大きくなけれ
ば、その範囲の交点が零(empty)であり、トランザクシ
ョンを中断することを強要する確率の高くなることに留
意しなければならない。このコミット・プロトコルの開
始に続いてより多くの動作が可能であれば、群がその多
様な動作を完了するためにより多くの時間が許可されな
ければならない。このことは、これらの群によって決定
されるタイムスタンプの範囲に反映されなければならな
い。
決定されたタイムスタンプの範囲が十分に大きくなけれ
ば、その範囲の交点が零(empty)であり、トランザクシ
ョンを中断することを強要する確率の高くなることに留
意しなければならない。このコミット・プロトコルの開
始に続いてより多くの動作が可能であれば、群がその多
様な動作を完了するためにより多くの時間が許可されな
ければならない。このことは、これらの群によって決定
されるタイムスタンプの範囲に反映されなければならな
い。
【0045】トランザクション・マネジャ 幾つかの分散型データベース・システムでは、トランザ
クションの群の全てが必ずしもそれらのデータに時刻を
打込むとは限らない。トランザクションが時刻を打込ん
だ群と時刻を打込まない群との両方を有する場合、この
種のシステムに対するコミット・プロトコルは正しく動
作しなければならない。もし、時刻を打込まない群が、
その決定メッセージに打込み時刻を含まないならば、問
題を生じる。たとえ、トランザクションが各々のデータ
ベースで正しく連続化されても、また全てのデータベー
スに対して全体的に連続化が有効であることが保証され
ても、タイムスタンプの順序は全体として有効な連続化
と一致することを保証されることはできない。
クションの群の全てが必ずしもそれらのデータに時刻を
打込むとは限らない。トランザクションが時刻を打込ん
だ群と時刻を打込まない群との両方を有する場合、この
種のシステムに対するコミット・プロトコルは正しく動
作しなければならない。もし、時刻を打込まない群が、
その決定メッセージに打込み時刻を含まないならば、問
題を生じる。たとえ、トランザクションが各々のデータ
ベースで正しく連続化されても、また全てのデータベー
スに対して全体的に連続化が有効であることが保証され
ても、タイムスタンプの順序は全体として有効な連続化
と一致することを保証されることはできない。
【0046】例えば、トランザクションT1は、タイム
スタンプ型データベースAと非タイムスタンプ型データ
ベースBで実行される。トランザクションT2は、非タ
イムスタンプ型データベースBとタイムスタンプ型デー
タベースCとで実行される。トランザクションT1はT
2に先行してBで委任を行う。しかし、AでT1に対し
て決定されたEARLIEST時刻(最初の時刻)は、
CでのT2に対しするEARLIEST時刻よりも遅
い。Bでは制約が確立されないのて、これらの時刻はA
およびBに対して時刻打ち込みされたトランザクション
時刻となる。これらは、AおよびCでの局部的な制約を
満足させるが、これらはT1とT2の有効な連続化とは
一致せず、T2の前にT1を並べなければならない。
スタンプ型データベースAと非タイムスタンプ型データ
ベースBで実行される。トランザクションT2は、非タ
イムスタンプ型データベースBとタイムスタンプ型デー
タベースCとで実行される。トランザクションT1はT
2に先行してBで委任を行う。しかし、AでT1に対し
て決定されたEARLIEST時刻(最初の時刻)は、
CでのT2に対しするEARLIEST時刻よりも遅
い。Bでは制約が確立されないのて、これらの時刻はA
およびBに対して時刻打ち込みされたトランザクション
時刻となる。これらは、AおよびCでの局部的な制約を
満足させるが、これらはT1とT2の有効な連続化とは
一致せず、T2の前にT1を並べなければならない。
【0047】この種の混合システムを取り扱い、コミッ
ト・プロトコル処理をより効果的にするために、本発明
はトランザクション・マネジャ(TM)220を本シス
テムの各々の節点内に設ける。このトランザクション・
マネジャは、各々の節点で局部的データベース・システ
ムを支援し、分散型トランザクションを調和させる。ト
ランザクション・マネジャは局部的インタフェースを各
々のデータベースシステムに厳密に与えることによって
これを行い、このインタフェースを介して2相式コミッ
ト・プロトコルを実行する。このTM220は、本発明
のこのコミット・プロトコルによって必要とされる通信
を全て実行する。すなわち、全てのプロトコル・メッセ
ージは、1つの節点におけるTMであるソースと他の節
点における1つのTMである行き先を有する。
ト・プロトコル処理をより効果的にするために、本発明
はトランザクション・マネジャ(TM)220を本シス
テムの各々の節点内に設ける。このトランザクション・
マネジャは、各々の節点で局部的データベース・システ
ムを支援し、分散型トランザクションを調和させる。ト
ランザクション・マネジャは局部的インタフェースを各
々のデータベースシステムに厳密に与えることによって
これを行い、このインタフェースを介して2相式コミッ
ト・プロトコルを実行する。このTM220は、本発明
のこのコミット・プロトコルによって必要とされる通信
を全て実行する。すなわち、全てのプロトコル・メッセ
ージは、1つの節点におけるTMであるソースと他の節
点における1つのTMである行き先を有する。
【0048】タイムスタンプ型であろうと非タイムスタ
ンプ型であろうと、節点のTMはこの節点における全て
のデータベースとインタフェースを行なう。したがっ
て、いずれのデータベースも2PCプロトコルの調整子
ではない。全ての節点にはTMが存在するので、その節
点にタイムスタンプ型データベースが存在すると否とに
かかわらず、全ての節点はトランザクションと調和する
ことができる。したがって、各々のトランザクションに
対するTMのうちの1つがいずれかの合理的な選択基準
を使用してそのトランザクションに対する調整子TMと
して選択されるが、その理由は、このプロトコルの正し
さはいずれのTMが選択されたかによって影響されない
からである。
ンプ型であろうと、節点のTMはこの節点における全て
のデータベースとインタフェースを行なう。したがっ
て、いずれのデータベースも2PCプロトコルの調整子
ではない。全ての節点にはTMが存在するので、その節
点にタイムスタンプ型データベースが存在すると否とに
かかわらず、全ての節点はトランザクションと調和する
ことができる。したがって、各々のトランザクションに
対するTMのうちの1つがいずれかの合理的な選択基準
を使用してそのトランザクションに対する調整子TMと
して選択されるが、その理由は、このプロトコルの正し
さはいずれのTMが選択されたかによって影響されない
からである。
【0049】各々のデータベース・システムは、その局
部的TMに委任の開始と決定を通知する。調整子TMは
これらの決定を検討する。受け取った決定に基づいて、
調整子はトランザクションを委任するか中断するかを決
定し、トランザクション時刻を選択する。次に調整子
は、他の遠隔地で参加しているTMにトランザクション
の処理と時刻を通信する。これらのTMは、次にこれら
の局部的に参加しているデータベースにこのトランザク
ションの処理と時刻を通知する。調整子TMは、これの
節点におけるデータベース・システムと直接通信するこ
とによって、その局部的データベースに対する2PCプ
ロトコル・メッセージを取り扱うことに留意しなければ
ならない。
部的TMに委任の開始と決定を通知する。調整子TMは
これらの決定を検討する。受け取った決定に基づいて、
調整子はトランザクションを委任するか中断するかを決
定し、トランザクション時刻を選択する。次に調整子
は、他の遠隔地で参加しているTMにトランザクション
の処理と時刻を通信する。これらのTMは、次にこれら
の局部的に参加しているデータベースにこのトランザク
ションの処理と時刻を通知する。調整子TMは、これの
節点におけるデータベース・システムと直接通信するこ
とによって、その局部的データベースに対する2PCプ
ロトコル・メッセージを取り扱うことに留意しなければ
ならない。
【0050】同じトランザクション内にタイムスタンプ
型データベースと非タイムスタンプ型データベースが混
在する問題に対する解決は、もしデータベースがこのT
MにEARLIEST時刻(最初の時刻)を通知しなけ
れば、TMがタイムスタンプの決定を行うことである。
このTMは、各々の非タイムスタンプ型データベース・
システムに対してその節点でLAST時刻値(最後の時
刻)を保持し、EARLIEST時刻(最初の時刻)を
決定するが、この時刻はトランザクションに含まれるデ
ータベースに対するLAST時刻値と局部的クロック時
刻の遅くなければならない。非タイムスタンプ型データ
ベースでは、TMはLATEST時刻値(最後の時刻
値)を決定してもよいし、決定しなくてもよい。もし、
TMがLATEST時刻値を決定するならば、これは予
め決められた手順にしたがってこれを行うものではない
が、この手順の詳細はTMを使用している特定の用途に
よって決定される。
型データベースと非タイムスタンプ型データベースが混
在する問題に対する解決は、もしデータベースがこのT
MにEARLIEST時刻(最初の時刻)を通知しなけ
れば、TMがタイムスタンプの決定を行うことである。
このTMは、各々の非タイムスタンプ型データベース・
システムに対してその節点でLAST時刻値(最後の時
刻)を保持し、EARLIEST時刻(最初の時刻)を
決定するが、この時刻はトランザクションに含まれるデ
ータベースに対するLAST時刻値と局部的クロック時
刻の遅くなければならない。非タイムスタンプ型データ
ベースでは、TMはLATEST時刻値(最後の時刻
値)を決定してもよいし、決定しなくてもよい。もし、
TMがLATEST時刻値を決定するならば、これは予
め決められた手順にしたがってこれを行うものではない
が、この手順の詳細はTMを使用している特定の用途に
よって決定される。
【0051】TMを設けることによって、データベース
・システムはタイムスタンプについて全く知る必要はな
い。また、このTMはデータベースにつていも全く知る
必要はない。このTMは、トランザクション時刻の決定
がなくてもタイムスタンプの選択プロトコルを実行す
る。トランザクションに対する「最初/最後」のトラン
ザクション時刻範囲をTMに決定させるのは、容易であ
る。上述のように、これによって、非タイムスタンプ型
群が読取り専用の最適化と読取りロックの解放の両方を
利用することが可能になる。これら両者は、委任または
中断のいずれかによって、トランザクションが終了した
ことを知らされる前に、データベースが読取りロックを
解放することを含む。
・システムはタイムスタンプについて全く知る必要はな
い。また、このTMはデータベースにつていも全く知る
必要はない。このTMは、トランザクション時刻の決定
がなくてもタイムスタンプの選択プロトコルを実行す
る。トランザクションに対する「最初/最後」のトラン
ザクション時刻範囲をTMに決定させるのは、容易であ
る。上述のように、これによって、非タイムスタンプ型
群が読取り専用の最適化と読取りロックの解放の両方を
利用することが可能になる。これら両者は、委任または
中断のいずれかによって、トランザクションが終了した
ことを知らされる前に、データベースが読取りロックを
解放することを含む。
【0052】TMが上述の序列化を実現する1つの方法
は、複合トランザクションが同時に準備されないことを
保証することである。これは遅延ロックが行うものであ
る。しかし、幾つかの非タイムスタンプ型データベース
を有する混合システムでは、このTMは正しい順番の保
証を与えるデータベース全てに依存することはできな
い。さらに、簡単なTMインタフェースを使用すること
によって、このTMはトランザクション間の存在性を知
ることを妨げられる。したがって、TMは同時に準備状
態になるようなデータベース・システムから2つ以上の
トランザクションを許可しないことによって、正しいタ
イムスタンプの選択を保証する。これを行う1つの方法
は、1つのトランザクションが準備される前に次のトラ
ンザクションが委任されることをTMに要求させること
である。
は、複合トランザクションが同時に準備されないことを
保証することである。これは遅延ロックが行うものであ
る。しかし、幾つかの非タイムスタンプ型データベース
を有する混合システムでは、このTMは正しい順番の保
証を与えるデータベース全てに依存することはできな
い。さらに、簡単なTMインタフェースを使用すること
によって、このTMはトランザクション間の存在性を知
ることを妨げられる。したがって、TMは同時に準備状
態になるようなデータベース・システムから2つ以上の
トランザクションを許可しないことによって、正しいタ
イムスタンプの選択を保証する。これを行う1つの方法
は、1つのトランザクションが準備される前に次のトラ
ンザクションが委任されることをTMに要求させること
である。
【0053】他のアプローチは、タイムスタンプの範囲
を利用することである。もし、トランザクション時刻が
準備状態の入力の時刻と同じ方法で並べられるならば、
このトランザクション時刻は、トランザクションの連続
化と一致する。これは、準備間隔を離すことを保証する
ことによって実現することができる。TMが「最初/最
後」のタイムスタンプの範囲を決定する場合、このEA
RLIEST時刻はデータベースに対する最後の委任時
刻ばかりでなく、現在準備されているトランザクション
全てによって決定される最後のLATEST上限の時刻
よりも遅くなければならない。このことは、TMのトラ
ンザクション・テーブル224内で示される。全ての準
備トランザクションに対するLATESTの上限でロッ
クすることによって実現できる。これは、「遅延され
た」トランザクションを処理する場合のEARLIES
T時刻の決定の選択と同様であり、ここでこのEARL
IEST時刻は、遅延リスト250に記載されたトラン
ザクションのLATESTの上限を考慮にいれなければ
ならない。
を利用することである。もし、トランザクション時刻が
準備状態の入力の時刻と同じ方法で並べられるならば、
このトランザクション時刻は、トランザクションの連続
化と一致する。これは、準備間隔を離すことを保証する
ことによって実現することができる。TMが「最初/最
後」のタイムスタンプの範囲を決定する場合、このEA
RLIEST時刻はデータベースに対する最後の委任時
刻ばかりでなく、現在準備されているトランザクション
全てによって決定される最後のLATEST上限の時刻
よりも遅くなければならない。このことは、TMのトラ
ンザクション・テーブル224内で示される。全ての準
備トランザクションに対するLATESTの上限でロッ
クすることによって実現できる。これは、「遅延され
た」トランザクションを処理する場合のEARLIES
T時刻の決定の選択と同様であり、ここでこのEARL
IEST時刻は、遅延リスト250に記載されたトラン
ザクションのLATESTの上限を考慮にいれなければ
ならない。
【0054】非タイムスタンプデータベースにおける競
合トランザクションに対して離れた間隔を保証する第3
の方法がある。特に、トランザクション・マネジャがこ
れの準備しなければならないデータベースと通信を行う
場合、このデータベースは決定の準備(peepare vote)
(すなわち、このトランザクションを委任するか中断す
るか)に応答する。トランザクション・マネジャがデー
タベースの決定の準備を確認するまで、このデータベー
スによるトランザクションの処理は中断される。非タイ
ムスタンプ節点用のトランザクション・マネジャをプロ
グラムして、このトランザクションが委任されるまで、
決定の準備確認の受取を遅らせることができる。この方
法で、トランザクションが委任されるまで、このトラン
ザクションはそのロックされた資源を解放せず、このこ
とによって、非タイムスタンプ・データベースにおいて
トランザクションを正しく連続して並べることが保証さ
れる。
合トランザクションに対して離れた間隔を保証する第3
の方法がある。特に、トランザクション・マネジャがこ
れの準備しなければならないデータベースと通信を行う
場合、このデータベースは決定の準備(peepare vote)
(すなわち、このトランザクションを委任するか中断す
るか)に応答する。トランザクション・マネジャがデー
タベースの決定の準備を確認するまで、このデータベー
スによるトランザクションの処理は中断される。非タイ
ムスタンプ節点用のトランザクション・マネジャをプロ
グラムして、このトランザクションが委任されるまで、
決定の準備確認の受取を遅らせることができる。この方
法で、トランザクションが委任されるまで、このトラン
ザクションはそのロックされた資源を解放せず、このこ
とによって、非タイムスタンプ・データベースにおいて
トランザクションを正しく連続して並べることが保証さ
れる。
【0055】上の議論は、本発明のTMが通常の2PC
プロトコルを使用して準備時刻にリード・ロックを解放
することを期待するデータベース・システムに対処する
ことができることを示す。他の実施例 本発明を2、3の特定の実施例を参照して説明したが、
この説明は本発明を例示するものであって本発明を限定
することを意図するものではない。当業者は、上記の特
許請求の範囲で定義した本発明の真の精神と範囲から逸
脱することなく種々の変形を行うことができる。
プロトコルを使用して準備時刻にリード・ロックを解放
することを期待するデータベース・システムに対処する
ことができることを示す。他の実施例 本発明を2、3の特定の実施例を参照して説明したが、
この説明は本発明を例示するものであって本発明を限定
することを意図するものではない。当業者は、上記の特
許請求の範囲で定義した本発明の真の精神と範囲から逸
脱することなく種々の変形を行うことができる。
【図1】分配型データベース・システムのブロック図で
ある。
ある。
【図2】2相式コミット・プロトコル内の事象のシーケ
ンスを表わす図である。
ンスを表わす図である。
【図3】分散型データベース・システム内の1つの節点
のブロック図である。
のブロック図である。
【図4】本発明による他の時刻範囲を取り入れた2相式
コミット・プロトコルを示す図である。
コミット・プロトコルを示す図である。
100 データベース・システム 102ないし108 節点 110 広域情報通信網 120 データ 130、132、134 群 140ないし146 メッセージ 150 LASTトランザクション時刻 200 ロック・マネジャ 202 ロック・テーブル 210 データベース 212 CPU 214 メモリ・モジュール 220 トランザクション・マネジャ 222 トランザクション・テーブル 230 記録 240 ロック入力
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムズ ジョンソン イギリス ニューバリー アールジー13 2ピーゼット ファースト アベニュー 1000 (72)発明者 ケニス ウィルナー アメリカ合衆国 ニューハンプシャー州 メリマック グリーンリーフ ストリート 10 (56)参考文献 特開 平3−95645(JP,A)
Claims (5)
- 【請求項1】 複数の相互接続されたノードを有して
いる分散型データベースシステムに用いるトランザクシ
ョン処理方法であって、 (a)分散トランザクションのコーホートである前記シ
ステムの各ノードに、委任を準備するメッセージを送信
し、 (b)前記分散トランザクションの各コーホートが前記
委任を準備するメッセージを受信し、そして次に該分散
トランザクションの処置を決定し、該処置は、該トラン
ザクションを中止すること及び該トランザクションを委
任することによって構成されている組から選択され、 (c)前記コーホートのいずれかが前記トランザクショ
ンを中止することを決定するときはいつでも該トランザ
クションを中止する段階を具備し、 (d)前記トランザクションを委任することを決定して
いる各コーホートが、該トランザクションを委任するた
めに該コーホートに受け入れられる最も早い時間と、該
トランザクションを委任するために該コーホートに受け
入れられる最も遅い時間を含んでいる委任時間範囲をも
決定し、 (e)前記コーホートが全て前記トランザクションを委
任することを決定しかつ前記コーホートによって決定さ
れた前記時間範囲が空でない交点を有するときはいつで
も、該トランザクションを委任しかつ該コーホートによ
って決定された該時間範囲の交点から該トランザクショ
ンのためのトランザクション時間を選択し、(f)前記
コーホートによって決定された前記時間範囲が交差しな
いときはいつでも前記トランザクションを中止し、 (g)前記トランザクションのコーホートが前記分散ト
ランザクション中にデータ値を更新しない読取り専用コ
ーホートを含むときはいつでも、該トランザクションを
実行すると同時に前記読取り専用コーホートによってア
クセスされた各データに対して該読取り専用コーホート
に読取ロックを設定し、各前記読取りロックが該トラン
ザクションによって設定されたことを表しているデータ
を該読取り専用コーホートに記憶し、該トランザクショ
ンに対する該読取り専用コーホートによって決定された
前記最も遅い時間よりも遅くないように各該読取りロッ
クを解放し、 (h)さまざまな後続の分散トランザクションに対して
前記段階(a)から(g)までを繰り返す段階を具備す
ることを特徴とするトランザクション処理方法。 - 【請求項2】 分散トランザクションのコーホートであ
る各接点で、 前記分散トランザクションが読取りアクセスを得た各デ
ータに読取りロックを設定し; 別の分散トランザクションによって読取りロックされた
データへの各分散トランザクション書込みアクセスを許
容し、該書込みアクセスは、前記ノードが前記他のトラ
ンザクションを委任することを決定した後にのみ該他の
分散トランザクションの終了より前に許容され; 別のトランザクションによって読取りロックされたデー
タへの書込みアクセスを許容した各トランザクションを
遅延トランザクションとしてマークし、 前記遅延トランザクションが書込みアクセスを許容され
た読取りロックされたデータを有するトランザクション
から構成されている遅延しているトランザクションの一
組を表しているデータを、各該遅延トランザクションに
関して、記憶し; 前記段階(d)が、(A)委任した各対応する遅延して
いるトランザクションの前記選択されたトランザクショ
ン時間、及び(B)まだ委任していない各遅延している
トランザクションに対して該コーホートによって決定さ
れた該最く遅く受け入れられる時間、よりも遅い時間
に、各前記遅延トランザクションに対して少なくとも一
つの該コーホートによって決定された該最も早く受け入
れられた時間を設定することを更に特徴とする請求項1
に記載のトランザクション処理方法。 - 【請求項3】 それぞれがデータベースを含んでいる複
数の相互接続されたノードと、前記ノードがコーホート
である分散トランザクションの委任を調整するトランザ
クションマネジャと、前記ノードで前記データベースへ
のアクセスを制御するロックマネジャとを備え; 各ノードの前記トランザクションマネジャは、前記ノー
ドがコーホートである分散トランザクションを委任こと
を準備し、かつ各そのような分散トランザクションの処
置を決定し、該処置は、各分散トランザクションを中止
すること及び該各分散トランザクションを委任すること
によって構成されている組から選択され、前記各分散ト
ランザクションを中止すべく決定されたあらゆるコーホ
ートに対する各分散トランザクションを中止する手段を
含んでおり、 各ノードの前記ロックマネジャは、前記ノードに配置さ
れかつ前記各分散トランザクションが読取りアクセスを
得た各データに読取りロックを設定し、各分散トランザ
クションに対して、前記ノードに配置されかつ前記各分
散トランザクションが読取りアクセスを得た各データに
読取りロックを設定し、かつどの分散トランザクション
によって該読取りロックが設定されたかを表している該
ノードにデータを記憶する手段を含んでおり、 委任されるべき各決定は、該各分散トランザクションを
委任するために該コーホートに受け入れられる最も早い
時間と、該各分散トランザクションを委任するために該
コーホートに受け入れられる最も遅い時間によって構成
されている時間範囲を含み、 各ノードの前記トランザクションマネジャは、前記各分
散トランザクションへのコーホートであるノードによっ
て決定された前記時間範囲の交点から前記各分散トラン
ザクションに対するトランザクション時間を選択し、そ
の分散トランザクションの全てのコーホートがその分散
トランザクションを委任することを決定するときに、そ
の分散トランザクションに対して選択された該トランザ
クション時間で該各分散トランザクションを委任し、前
記各分散トランザクションへの前記コーホートによって
決定された前記時間範囲が交差しないときはいつでも該
各分散トランザクションを中止する手段を含み、 各ノードの前記ロックマネジャは、前記ノードがあらゆ
るトランザクションの読取り専用コーホートであるとき
に、そのトランザクションに対する該読取り専用コーホ
ートによって決定された前記最も遅い時間よりも遅くな
いように、そのトランザクションによって設定れた該読
取り専用コーホートにおける各該読取りロックを解放す
る手段を更に含むことを特徴とする分散型データベース
・システム。 - 【請求項4】 各前記遅延トランザクションに対する少
なくとも一つのコーホートは、(A)委任した各対応す
る遅延しているトランザクションの前記選択されたトラ
ンザクション時間、及び(B)まだ委任していない各遅
延しているトランザクションに対して該コーホートによ
って決定された該最く遅く受け入れられる時間、よりも
遅い時間に、該コーホートによって決定された該最も早
く受け入れられた時間を設定することを特徴とする請求
項3に記載の分散型データベース・システム。 - 【請求項5】 前記ロックマネジャは、前記読取りロッ
クを設定した前記トランザクションに対して、前記トラ
ンザクションマネジャによって、決定された前記最も遅
く受け入れられる時間よりも遅くないように各該読取り
ロックを解放する手段を含むことを更に特徴とする請求
項3または請求項4に記載の分散型データベース・シス
テム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US527087 | 1990-05-22 | ||
| US07/527,087 US5212788A (en) | 1990-05-22 | 1990-05-22 | System and method for consistent timestamping in distributed computer databases |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04232545A JPH04232545A (ja) | 1992-08-20 |
| JPH07104813B2 true JPH07104813B2 (ja) | 1995-11-13 |
Family
ID=24100039
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3117658A Expired - Lifetime JPH07104813B2 (ja) | 1990-05-22 | 1991-05-22 | 分散型コンピュータ・データベースの打ち込み時刻を一致させるシステムおよび方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5212788A (ja) |
| EP (1) | EP0458564B1 (ja) |
| JP (1) | JPH07104813B2 (ja) |
| KR (1) | KR940005819B1 (ja) |
| DE (1) | DE69129678T2 (ja) |
Families Citing this family (129)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05197604A (ja) * | 1991-05-21 | 1993-08-06 | Digital Equip Corp <Dec> | マルチプロセッサ・コンピュータ及びその動作方法 |
| US5701480A (en) * | 1991-10-17 | 1997-12-23 | Digital Equipment Corporation | Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing |
| JP2781092B2 (ja) * | 1991-11-06 | 1998-07-30 | 富士通株式会社 | システム間排他制御方式 |
| FI101908B (fi) * | 1992-04-01 | 1998-09-15 | Nokia Telecommunications Oy | Vikasietoinen muutostenjakomenetelmä hajautetussa tietokantajärjestelm ässä |
| US5452445A (en) * | 1992-04-30 | 1995-09-19 | Oracle Corporation | Two-pass multi-version read consistency |
| JP2675968B2 (ja) * | 1992-08-20 | 1997-11-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 加入者分散2相コミット・プロトコルの拡張機能 |
| US5437006A (en) * | 1993-01-27 | 1995-07-25 | Microsoft Corporation | Spreadsheet command/function capability from a dynamic-link library |
| US5485607A (en) * | 1993-02-05 | 1996-01-16 | Digital Equipment Corporation | Concurrency-control method and apparatus in a database management system utilizing key-valued locking |
| EP0613083B1 (en) * | 1993-02-25 | 2002-01-23 | Sun Microsystems, Inc. | Transaction management in object oriented systems |
| JP2557192B2 (ja) * | 1993-03-15 | 1996-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 |
| JPH06324928A (ja) * | 1993-05-14 | 1994-11-25 | Mitsubishi Electric Corp | ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 |
| GB2281644A (en) * | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
| US5678040A (en) * | 1993-10-29 | 1997-10-14 | Motorola, Inc. | Method for managing a hierarchical design transaction |
| JPH0836513A (ja) * | 1993-12-29 | 1996-02-06 | Xerox Corp | データ管理方法及びデータ管理エラー回復方法 |
| US5434919A (en) | 1994-01-11 | 1995-07-18 | Chaum; David | Compact endorsement signature systems |
| JPH0887436A (ja) * | 1994-09-19 | 1996-04-02 | Nec Corp | 分散db処理方式 |
| EP0713183A3 (en) * | 1994-11-18 | 1996-10-02 | Microsoft Corp | Network-independent shadow files |
| US5794242A (en) * | 1995-02-07 | 1998-08-11 | Digital Equipment Corporation | Temporally and spatially organized database |
| US5727204A (en) * | 1995-06-07 | 1998-03-10 | Hughes Electronics | Database organization for rapid multi-set membership determination |
| US5682537A (en) * | 1995-08-31 | 1997-10-28 | Unisys Corporation | Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system |
| US5799305A (en) * | 1995-11-02 | 1998-08-25 | Informix Software, Inc. | Method of commitment in a distributed database transaction |
| US5806074A (en) * | 1996-03-19 | 1998-09-08 | Oracle Corporation | Configurable conflict resolution in a computer implemented distributed database |
| US5761500A (en) * | 1996-04-18 | 1998-06-02 | Mci Communications Corp. | Multi-site data communications network database partitioned by network elements |
| US5768538A (en) * | 1996-04-30 | 1998-06-16 | International Business Machines Corporation | Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase |
| US6216150B1 (en) * | 1996-04-30 | 2001-04-10 | International Business Machines Corporation | Program product for an application programming interface unifying multiple mechanisms |
| US6052712A (en) * | 1996-04-30 | 2000-04-18 | International Business Machines Corporation | System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase |
| US6016505A (en) * | 1996-04-30 | 2000-01-18 | International Business Machines Corporation | Program product to effect barrier synchronization in a distributed computing environment |
| US5930794A (en) * | 1996-10-18 | 1999-07-27 | Sagent Technologies, Inc. | Database repository with deferred transactions |
| US6144731A (en) * | 1997-03-12 | 2000-11-07 | Harris Corporation | Distributed telephony management |
| SE521041C2 (sv) * | 1997-05-28 | 2003-09-23 | Ericsson Telefon Ab L M | Metod för optimering av transaktionsprotokoll inom en distribuerad databas |
| US6209090B1 (en) | 1997-05-29 | 2001-03-27 | Sol Aisenberg | Method and apparatus for providing secure time stamps for documents and computer files |
| US5953728A (en) * | 1997-07-25 | 1999-09-14 | Claritech Corporation | System for modifying a database using a transaction log |
| US5953719A (en) * | 1997-09-15 | 1999-09-14 | International Business Machines Corporation | Heterogeneous database system with dynamic commit procedure control |
| US6014669A (en) * | 1997-10-01 | 2000-01-11 | Sun Microsystems, Inc. | Highly-available distributed cluster configuration database |
| US6233585B1 (en) * | 1998-03-12 | 2001-05-15 | Crossworlds Software, Inc. | Isolation levels and compensating transactions in an information system |
| US6243715B1 (en) | 1998-11-09 | 2001-06-05 | Lucent Technologies Inc. | Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated |
| GB2346985B (en) * | 1999-02-19 | 2003-07-09 | Ibm | Client/server transaction data processing system with optimum selection of last agent |
| DE10045437A1 (de) * | 2000-09-14 | 2002-04-04 | Ibm | Ein erweiterter Transaktionsprozessor zur Beendigung von Transaktionen vor deren Abschluss |
| US7587428B2 (en) | 2000-10-13 | 2009-09-08 | Microsoft Corporation | Maintaining a relationship between two different items of data |
| US7689560B2 (en) * | 2000-10-13 | 2010-03-30 | Miosoft Corporation | Persistent data storage techniques |
| US6772154B1 (en) * | 2000-11-16 | 2004-08-03 | Sun Microsystems, Inc. | Implementation of nested databases using flexible locking mechanisms |
| US7600014B2 (en) * | 2000-11-16 | 2009-10-06 | Symantec Corporation | Method and system for monitoring the performance of a distributed application |
| US6934840B2 (en) * | 2000-12-21 | 2005-08-23 | International Business Machines Corporation | Composite keystore facility apparatus and method therefor |
| US6754657B2 (en) * | 2001-08-24 | 2004-06-22 | Microsoft Corporation | Time stamping of database records |
| JP3901484B2 (ja) * | 2001-10-05 | 2007-04-04 | 株式会社ジェイテクト | 電動パワーステアリング装置 |
| US10033700B2 (en) | 2001-12-12 | 2018-07-24 | Intellectual Ventures I Llc | Dynamic evaluation of access rights |
| US8006280B1 (en) | 2001-12-12 | 2011-08-23 | Hildebrand Hal S | Security system for generating keys from access rules in a decentralized manner and methods therefor |
| US7930756B1 (en) | 2001-12-12 | 2011-04-19 | Crocker Steven Toye | Multi-level cryptographic transformations for securing digital assets |
| US7260555B2 (en) | 2001-12-12 | 2007-08-21 | Guardian Data Storage, Llc | Method and architecture for providing pervasive security to digital assets |
| US10360545B2 (en) | 2001-12-12 | 2019-07-23 | Guardian Data Storage, Llc | Method and apparatus for accessing secured electronic data off-line |
| US8065713B1 (en) | 2001-12-12 | 2011-11-22 | Klimenty Vainstein | System and method for providing multi-location access management to secured items |
| US7565683B1 (en) | 2001-12-12 | 2009-07-21 | Weiqing Huang | Method and system for implementing changes to security policies in a distributed security system |
| US7178033B1 (en) | 2001-12-12 | 2007-02-13 | Pss Systems, Inc. | Method and apparatus for securing digital assets |
| US7921288B1 (en) | 2001-12-12 | 2011-04-05 | Hildebrand Hal S | System and method for providing different levels of key security for controlling access to secured items |
| US7921284B1 (en) | 2001-12-12 | 2011-04-05 | Gary Mark Kinghorn | Method and system for protecting electronic data in enterprise environment |
| US7380120B1 (en) | 2001-12-12 | 2008-05-27 | Guardian Data Storage, Llc | Secured data format for access control |
| US7921450B1 (en) | 2001-12-12 | 2011-04-05 | Klimenty Vainstein | Security system using indirect key generation from access rules and methods therefor |
| US7950066B1 (en) | 2001-12-21 | 2011-05-24 | Guardian Data Storage, Llc | Method and system for restricting use of a clipboard application |
| US8176334B2 (en) | 2002-09-30 | 2012-05-08 | Guardian Data Storage, Llc | Document security system that permits external users to gain access to secured files |
| US7231442B2 (en) * | 2002-04-03 | 2007-06-12 | Tonic Software, Inc. | Global network monitoring system |
| US7089253B2 (en) * | 2002-09-13 | 2006-08-08 | Netezza Corporation | Computer method and system for concurrency control using dynamic serialization ordering |
| US20040123246A1 (en) * | 2002-12-23 | 2004-06-24 | Ju Wu | Apparatus and method for creating new reports from discrete reports |
| US7124131B2 (en) * | 2003-04-29 | 2006-10-17 | International Business Machines Corporation | Discipline for lock reassertion in a distributed file system |
| US7152077B2 (en) * | 2003-05-16 | 2006-12-19 | Hewlett-Packard Development Company, L.P. | System for redundant storage of data |
| US20040230862A1 (en) * | 2003-05-16 | 2004-11-18 | Arif Merchant | Redundant data assigment in a data storage system |
| US7761421B2 (en) * | 2003-05-16 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Read, write, and recovery operations for replicated data |
| US8707034B1 (en) | 2003-05-30 | 2014-04-22 | Intellectual Ventures I Llc | Method and system for using remote headers to secure electronic files |
| US7330858B1 (en) * | 2003-06-30 | 2008-02-12 | Symantec Operating Corporation | Coordinated distributed logging in a multi-host environment |
| US20050010558A1 (en) * | 2003-07-11 | 2005-01-13 | International Business Machines Corporation | Data query system load balancing |
| US7552149B2 (en) * | 2003-09-06 | 2009-06-23 | Oracle International Corporation | Querying past versions of data in a distributed database |
| US7703140B2 (en) | 2003-09-30 | 2010-04-20 | Guardian Data Storage, Llc | Method and system for securing digital assets using process-driven security policies |
| US8127366B2 (en) | 2003-09-30 | 2012-02-28 | Guardian Data Storage, Llc | Method and apparatus for transitioning between states of security policies used to secure electronic documents |
| US7526489B2 (en) * | 2003-11-18 | 2009-04-28 | International Business Machines Corporation | Methods to integrate user-defined operations into a database |
| US7702909B2 (en) * | 2003-12-22 | 2010-04-20 | Klimenty Vainstein | Method and system for validating timestamps |
| US7277876B2 (en) * | 2004-01-23 | 2007-10-02 | Solomon Research Llc | Dynamic adaptive distributed computer system |
| US7953749B2 (en) * | 2004-05-11 | 2011-05-31 | Oracel International Corporation | Providing the timing of the last committed change to a row in a database table |
| US8024572B2 (en) * | 2004-12-22 | 2011-09-20 | Aol Inc. | Data storage and removal |
| US8024355B2 (en) * | 2004-12-29 | 2011-09-20 | Sap Ag | Dynamic capacity demand profile construction with a persisted capacity demand profile and a collision buffer |
| EP1677233A1 (en) * | 2004-12-29 | 2006-07-05 | Sap Ag | Technique for mass data handling in a preference processing context |
| US8386440B2 (en) * | 2005-05-10 | 2013-02-26 | Microsoft Corporation | Database corruption recovery systems and methods |
| US7443196B2 (en) * | 2005-07-15 | 2008-10-28 | Tabula, Inc. | Configuration network for a configurable IC |
| US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
| US9047306B1 (en) | 2005-10-17 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Method of writing data |
| US7827144B1 (en) | 2005-11-17 | 2010-11-02 | Hewlett-Packard Development Company, L.P. | Methods of reading and writing data |
| US7904759B2 (en) * | 2006-01-11 | 2011-03-08 | Amazon Technologies, Inc. | System and method for service availability management |
| 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 |
| US9202184B2 (en) | 2006-09-07 | 2015-12-01 | International Business Machines Corporation | Optimizing the selection, verification, and deployment of expert resources in a time of chaos |
| US20090287503A1 (en) * | 2008-05-16 | 2009-11-19 | International Business Machines Corporation | Analysis of individual and group healthcare data in order to provide real time healthcare recommendations |
| US7970759B2 (en) | 2007-02-26 | 2011-06-28 | International Business Machines Corporation | System and method for deriving a hierarchical event based database optimized for pharmaceutical analysis |
| US7917478B2 (en) * | 2007-02-26 | 2011-03-29 | International Business Machines Corporation | System and method for quality control in healthcare settings to continuously monitor outcomes and undesirable outcomes such as infections, re-operations, excess mortality, and readmissions |
| US7853611B2 (en) * | 2007-02-26 | 2010-12-14 | International Business Machines Corporation | System and method for deriving a hierarchical event based database having action triggers based on inferred probabilities |
| US9830366B2 (en) | 2008-03-22 | 2017-11-28 | Thomson Reuters Global Resources | Online analytic processing cube with time stamping |
| US20100241533A1 (en) * | 2009-03-23 | 2010-09-23 | Li Ho | Tax data validity documentation |
| US8396831B2 (en) * | 2009-12-18 | 2013-03-12 | Microsoft Corporation | Optimistic serializable snapshot isolation |
| US8356007B2 (en) * | 2010-10-20 | 2013-01-15 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
| US8654650B1 (en) * | 2010-04-30 | 2014-02-18 | Amazon Technologies, Inc. | System and method for determining node staleness in a distributed system |
| US8694639B1 (en) | 2010-09-21 | 2014-04-08 | Amazon Technologies, Inc. | Determining maximum amount of resource allowed to be allocated to client in distributed system |
| US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
| US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
| US9171099B2 (en) | 2012-01-26 | 2015-10-27 | Microsoft Technology Licensing, Llc | System and method for providing calculation web services for online documents |
| US9110940B2 (en) | 2012-02-29 | 2015-08-18 | Red Hat, Inc. | Supporting transactions in distributed environments using a local copy of remote transaction data and optimistic locking |
| US20130226891A1 (en) * | 2012-02-29 | 2013-08-29 | Red Hat Inc. | Managing versions of transaction data used for multiple transactions in distributed environments |
| US10754710B1 (en) | 2012-06-20 | 2020-08-25 | Amazon Technologies, Inc. | Transactional watch mechanism |
| US10630566B1 (en) | 2012-06-20 | 2020-04-21 | Amazon Technologies, Inc. | Tightly-coupled external cluster monitoring |
| US9578130B1 (en) | 2012-06-20 | 2017-02-21 | Amazon Technologies, Inc. | Asynchronous and idempotent distributed lock interfaces |
| US10191959B1 (en) | 2012-06-20 | 2019-01-29 | Amazon Technologies, Inc. | Versioned read-only snapshots of shared state in distributed computing environments |
| US9003162B2 (en) | 2012-06-20 | 2015-04-07 | Microsoft Technology Licensing, Llc | Structuring storage based on latch-free B-trees |
| JP6820741B2 (ja) * | 2013-05-31 | 2021-01-27 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 睡眠検査データのようなデータを自動的にダウンロードするためのシステム及び方法 |
| US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
| US9519591B2 (en) | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
| US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
| US10366070B2 (en) | 2015-02-20 | 2019-07-30 | Scality S.A. | Locking and I/O improvements of systems built with distributed consistent database implementations within an object store |
| US10248682B2 (en) | 2015-02-20 | 2019-04-02 | Scality, S.A. | Object storage system capable of performing snapshots, branches and locking |
| WO2015134679A2 (en) * | 2014-03-05 | 2015-09-11 | Scality, S.A. | Locking and i/o improvements of systems built with distributed consistent database implementations within an object store |
| US9514211B2 (en) | 2014-07-20 | 2016-12-06 | Microsoft Technology Licensing, Llc | High throughput data modifications using blind update operations |
| US9760529B1 (en) | 2014-09-17 | 2017-09-12 | Amazon Technologies, Inc. | Distributed state manager bootstrapping |
| US20160147813A1 (en) * | 2014-11-25 | 2016-05-26 | Juchang Lee | Distributed transaction commit protocol |
| US9852221B1 (en) | 2015-03-26 | 2017-12-26 | Amazon Technologies, Inc. | Distributed state manager jury selection |
| KR102074087B1 (ko) * | 2015-07-10 | 2020-02-05 | 아브 이니티오 테크놀로지 엘엘시 | 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처 |
| US10417189B2 (en) | 2015-10-30 | 2019-09-17 | Netapp, Inc. | Hybrid model of fine-grained locking and data partitioning |
| US10452633B2 (en) * | 2015-10-30 | 2019-10-22 | Netapp, Inc. | Auto-expiring locks based on object stamping |
| US10951706B2 (en) | 2016-12-09 | 2021-03-16 | Google Llc | High-throughput algorithm for multiversion concurrency control with globally synchronized time |
| CN111868707A (zh) * | 2018-03-13 | 2020-10-30 | 谷歌有限责任公司 | 在关系数据库的主键中包括事务提交时间戳 |
| CN110795427B (zh) * | 2019-09-27 | 2022-10-11 | 苏宁云计算有限公司 | 数据分离存储方法、装置、计算机设备和存储介质 |
| US11226764B2 (en) | 2020-01-16 | 2022-01-18 | International Business Machines Corporation | Consistent reads in a distributed transaction protocol |
| US12124417B2 (en) | 2021-01-22 | 2024-10-22 | Scality, S.A. | Fast and efficient storage system implemented with multiple cloud services |
| CN113420034B (zh) * | 2021-01-29 | 2025-05-06 | 阿里巴巴集团控股有限公司 | 时钟更新方法、设备、数据库及计算机存储介质 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4627019A (en) * | 1982-07-08 | 1986-12-02 | At&T Bell Laboratories | Database management system for controlling concurrent access to a database |
| JPS60500232A (ja) * | 1983-02-09 | 1985-02-21 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | 障害がない場合に最適化される、複数プロセッサの合意を得る方法 |
| US4725834A (en) * | 1984-02-27 | 1988-02-16 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reliable broadcast protocol for a token passing bus network |
| US4635189A (en) * | 1984-03-01 | 1987-01-06 | Measurex Corporation | Real-time distributed data-base management system |
| US4631673A (en) * | 1985-01-22 | 1986-12-23 | International Business Machines Corporation | Method for refreshing multicolumn tables in a relational data base using minimal information |
| US4714992A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Communication for version management in a distributed information service |
-
1990
- 1990-05-22 US US07/527,087 patent/US5212788A/en not_active Expired - Lifetime
-
1991
- 1991-05-20 EP EP91304534A patent/EP0458564B1/en not_active Expired - Lifetime
- 1991-05-20 DE DE69129678T patent/DE69129678T2/de not_active Expired - Fee Related
- 1991-05-22 JP JP3117658A patent/JPH07104813B2/ja not_active Expired - Lifetime
- 1991-05-22 KR KR1019910008220A patent/KR940005819B1/ko not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0458564A2 (en) | 1991-11-27 |
| EP0458564B1 (en) | 1998-07-01 |
| KR940005819B1 (ko) | 1994-06-23 |
| DE69129678T2 (de) | 1999-02-25 |
| JPH04232545A (ja) | 1992-08-20 |
| EP0458564A3 (en) | 1993-08-11 |
| DE69129678D1 (de) | 1998-08-06 |
| KR910020569A (ko) | 1991-12-20 |
| US5212788A (en) | 1993-05-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5212788A (en) | System and method for consistent timestamping in distributed computer databases | |
| US5454108A (en) | Distributed lock manager using a passive, state-full control-server | |
| US8768905B2 (en) | Managing locks and transactions | |
| US8200643B2 (en) | Lock and transaction management | |
| US7146366B2 (en) | Distributed concurrency control using serialization ordering | |
| US5745747A (en) | Method and system of lock request management in a data processing system having multiple processes per transaction | |
| Ulusoy | Processing real-time transactions in a replicated database system | |
| US5852747A (en) | System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client | |
| EP0081056A2 (en) | A data processing network having a distributed data file access control | |
| EP3320452B1 (en) | Method and architecture for providing database access control in a network with a distributed database system | |
| US20130297565A1 (en) | Database Management System | |
| US20080091680A1 (en) | Distributed locking protocol with asynchronous token prefetch and relinquish | |
| US20040034673A1 (en) | Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory | |
| Lomet | Using timestamping to optimize two phase commit | |
| EP0817019B1 (en) | Method of stratified transaction processing | |
| JPH0962556A (ja) | ファイル同期方式 | |
| Gbaranwi et al. | Distributed transactions and distributed concurrency control | |
| KR100486854B1 (ko) | 멀티데이터베이스 시스템에서 그룹 통신의 메시징 순서를이용한 전역 동시성 제어시스템 및 그 방법 | |
| KR100295413B1 (ko) | 트랜잭션 스케줄링 방법 | |
| JPH05334163A (ja) | 複数システム間共用メモリ排他制御方式 | |
| Dange et al. | Analysis of Scheduling Nested Transactions in Distributed Real-Time Environment |