論文翻訳: Multiversion Concurrency Control - Theory and Algorithms
PHILIP A. BERNSTEIN and NATHAN GOODMAN
Harvard University
Abstract
並行性制御とは、共有データベース上で並行実行されているプログラムが発行する複数の操作を同期する処理である。並行性制御の目的は、逐次処理 (非インターリーブ) と同じ効果を持つ実行を保証することである。マルチバージョンデータベースシステムでは、データ項目への各書き込み操作ごとに、そのデータ項目の新しいコピー (またはバージョン) を生成する。本論文では、マルチバージョンデータベースシステムにおける並行性制御アルゴリズムの正当性を分析するための理論体系を提案する。我々はこの理論を用いて、いくつかの新しいアルゴリズムと従来から公開されているアルゴリズムを詳細に分析する。
Table of Contents
- Abstract
- 1. 導入
- 2. 基本直列化可能性理論
- 3. マルチバージョン直列可能性理論
- 4. マルチバージョン・タイムスタンプ方式
- 5. マルチバージョン・ロック機構
- 6. マルチバージョン混合方式
- 7. 結論
- REFERENCES
- 翻訳抄
1. 導入
データベースシステム (database system, DBS) は、データベース内のデータ項目に対する読み取り操作と書き込み操作を実行するプロセスである。トランザクション (transaction) は、DBS に対して読み取りと書き込みを発行するプログラムを指す。複数のトランザクションが並行実行されると、DBS によりそれらの読み取りと書き込みがインターリーブで実行されることによって望ましくない結果を生じる可能性がある。並行性制御 (concurrency control) はこのような望ましくない結果を回避するための処理機構である。具体的には、並行性制御の目的は、直列的 (非インターリーブ) 実行と同じ結果が得られる実行を保証することである。このような実行形態を直列化可能 (serializable) と呼ぶ。
DBS は、読み取りと書き込みが実行される順序を制御することで直列化可能な実行を達成する。DBS に操作が投入されると、DBS はその操作を即座に実行するか、あるいは後で処理するために遅延させるか、または操作自体を拒否することができる。操作が拒否された場合、その操作を発行したトランザクションはアボート (abort) される。これはすなわち、該当トランザクションによるすべての書き込みが取り消され、それらの書き込みによって生成された値を読み取った他のトランザクションもアボートされることを意味する。
操作を拒否される主な理由は、その操作が "遅すぎた" ことである。たとえば、通常の読み取り操作は、本来読み取るべきだった値がすでに上書きされている場合に拒否される。このような拒否は各データ項目の古いコピーを保持することで回避できる。そうすれば、遅れた読み取り操作には、たとえ "上書き" されたとしても、そのデータ項目の古い値を提供することができる。
マルチバージョン (multiversion) DBS では、データ項目
この論文は、マルチバージョン DBS のための並行性制御アルゴリズムの正当性を解析するための理論体系を提案する。我々はいくつかの新しいマルチバージョンアルゴリズムを提示し、この理論を用いて新しいアルゴリズムと以前に公開されたいくつかのアルゴリズムを解析する。
セクション 2 では、非マルチバージョンデータベースにおける並行性制御理論を概説する。セクション 3 では、この理論をマルチバージョンデータベースに拡張する。セクション 4 からセクション 6 では、この理論を用いてマルチバージョン並行性制御アルゴリズムを解析する。
2. 基本直列化可能性理論
データベースの並行性制御アルゴリズムを分析するための標準的な理論は直列化可能性理論 (serializability theory) が知られている [4, 5, 8, 14, 16, 21]。直列化可能性理論は特定の実行が正当であるための厳密な条件を定義し、並行性制御アルゴリズムが許容する実行順序を分析するための手法である。このため並行性制御アルゴリズムはそのすべての実行結果が正しい場合に正しいと判定される。
このセクションではマルチバージョンを用いない場合の直列化可能性理論について概説する。
2.1 システムモデル
我々は DBS が分散されていると仮定し、Lamport による分散実行モデル [13] を採用する。このモデルでは、システムはメッセージの送受信によって相互に通信するプロセスの集合で構成される。このモデルは実行順序を happens-before 関係の観点で記述する。happens-before 関係におけるイベント (event) とは、プロセスによる操作の実行、メッセージの送信、またはメッセージの受信のいずれかである:
単一プロセス内の happens-before 関係はそのプロセス内のイベント間の任意の半順序関係として定義される。システム全体での happens-before 関係 (
この論文ではより抽象的なレベルで議論を進める。以降、(セクション 6 で簡潔に触れるのを除いて) プロセスとメッセージについて明示的に言及することを避ける。具体的には、各トランザクションを 1 つのプロセスと見なし、各データ項目は別々のプロセスによって管理されていると仮定してもよい。(我々の結果はこれらの仮定に依存しない。) これらの仮定の下では各データベース操作は 2 回のメッセージ交換を伴う。トランザクション
2.2 ログ
直列化可能性理論は実行をログ (log) によってモデル化する。ログは、各トランザクションに代わって実行された読み取りおよび書き込み操作を識別し、それらの操作が実行された順序を示す。ログは Lamport の happens-before 関係の抽象化である。
トランザクションログ (transaction log) は単一のトランザクションの許容可能な実行を表す。形式的には、トランザクションログは半順序集合 (poset; partially ordered set)
我々は、トランザクション
である。
である。 すべての
は少なくとも一つの先行する が存在する ( も可能)。ここで が に先行するとは、 と同義である。 競合する操作のすべての組み合わせは
関係にある (2 つの操作が競合する (conflict) とは、それらが同じデータ項目に対して操作を行い、少なくとも一方が書き込み操作である場合を指す)。
条件 (1) は、DBS が
以下のトランザクションログを考える:
DBS は、
与えられたトランザクションログ
に対し、以下は
以下は同一のトランザクションに関する別のログである:
2.3 ログの等価性
直観的には、2 つのログは各トランザクションが両方のログで同じ計算を実行する場合に等価である。我々はログの等価性をトランザクション間の情報フローの観点から形式化する。
前のセクションで述べたログ
このログ等価性の定義は、ログによって生成される最終的なデータベース状態を無視している。たとえば、ログ
2.4 直列化可能ログ
直列ログ (serial log) は
他のどのようなログが正しい実行を表すか? 並行性制御の観点から見ると、正しい実行とは、並行性が認識できない実行を指す。つまり、ある実行が正しいとは、それが並行性が存在しない場合の実行と等価であることを意味する。直列ログは後者の実行を表すため、正しいログ (correct log) とは直列ログと等価な任意のログのことを指す。このようなログは直列化可能 (SR; serializable) と呼ばれる。
セクション 2.2 のログ
2.5 直列化可能性定理
3. マルチバージョン直列可能性理論
マルチバージョン DBS では各書き込みが新しいバージョンを生成する。我々は
3.1 マルチバージョンログ
ある変換関数
に対して である。各
とすべての操作 と に対して、 であれば である。
であれば である。
条件 (1) は、各トランザクションによって投入された操作が適切なマルチバージョン操作に変換されることを述べている。条件 (2) は、MV ログがトランザクションによって規定されたすべての順序を保持することを述べている。条件 (3) は、トランザクションがそのバージョンが生成されるまでそのバージョンを読み取ることができないことを述べている。
以下はセクション 2 の
集合
3.2 MV ログの等価性
基本的な直列化可能性理論のほとんどの定義と結果は MV ログにも適用可能である。我々はそれらの定義と結果において "データ項目" の概念を単に "バージョン" に置き換えるだけでよい。しかし MV ログの構造はこの扱いを簡単にする。このセクションではセクション 2.3 とセクション 2.4 内容を MV ログ向けに再定式化する。
事実 1. トランザクション集合
上の 2 つの MV ログは、同じ操作を持つ場合に限り等価である。
二つの "バージョン操作" が同じバージョンを操作し、片方が書き込みである場合、それらは競合 (conflict) する。MV ログで起き得る競合パターンは 1 種類のみである。すなわち、
MV ログの直列化グラフ (serialization graph) は通常のログと同様に定義される。MV ログにおいて競合は高度に構造化されているため、直列化グラフの構造は非常に単純である。ここで
事実 2.
と は 上の MV ログとする。
と が同じ操作を持つならば、 である。
と が等価であるならば、 である。
前のセクションで述べたログ
(セクション 2.4 の
3.3 1-コピー直列性
データベースが複数のバージョンを持つ場合でもユーザーは各データ項目のコピーが 1 つだけ存在するかのように自身のトランザクションが動作することを期待するが、直列ログは常にこのように動作するわけではない。以下に簡単な例を示す。
したがって、我々は許可可能な直列ログの集合を制限しなければならない。
直列 MV ログ
ログが 1-直列のログと等価である場合、そのログは 1-コピー直列化可能 (one-copy serializable) (または 1-SR) である。たとえばセクション 3.1 の
直列ログが 1-直列でなくても 1-SR である可能性がある。たとえば、
1-コピー直列化可能性はマルチバージョン並行性制御のための我々の正当性の基準である。以下の定理はこの基準を正当化し、MV ログが 1-SR である場合に限り、その MV ログが直列非 MV ログ (serial non-MV log) と同様に動作することを証明するものである。
まず、我々はログ等価性の概念を拡張し、MV ログと非 MV ログの両方を扱えるようにする。
1-SR 等価性定理.
を 上の MV ログとすると、 が 1-SR である場合に限り、 は 上の直列で非 MV ログである。
Proof.
(IF方向).
(ONLY IF 方向).
あとは
3.4 1-直列化可能性定理
我々は MV ログが 1-SR であるかどうかを判定するために修正版の直列化グラフを使用する。ログ
であるような 内の各ノード と について、 であれば を追加し、そうでなければ を追加する。
例えば
次の定理はマルチバージョン並行性制御アルゴリズムを分析するための我々の主要なツールである。
1-直列化可能性定理. MVログ
は、 が非循環であるようなバージョン順序 が存在する場合に限り、1-SR である。
Proof.
(IF 方向).
残りは
(ONLY IF 方向).
事実 1 により
セクション 4 から 6 では 1-直列化可能性定理を使用してマルチバージョン並行性制御アルゴリズムを分析する。このセクションの最後に複雑性に関する結果を示す。
3.5 1-直列化可能性は NP-完全である
1-SR 複雑性定理. MV ログが 1-SR であるかどうかを判定することは NP 完全問題である。
Proof.
(NP クラスへの帰属性).
(NP-困難性). この問題はログ SR 問題 ([9, 14, 16] の問題 SR 33) からの還元である。
Papadimitriou と Kanellakis は関連する問題が NP 完全であることを証明している [15]: 従来のログ
4. マルチバージョン・タイムスタンプ方式
我々が知る最も初期のマルチバージョン並行性制御アルゴリズムは Reed で提案されたマルチバージョンタイムスタンプアルゴリズム [17] である。
各トランザクション
操作は先着順で処理される。しかし、データ項目操作からバージョン操作への変換により、操作がタイムスタンプ順に処理されたかのように見える。
アルゴリズムは次のように動作する。
は に変換される。ここで は で最大のタイムスタンプを持つ のバージョンである。
には 2 つのケースがある。DBS が となるような をすでに処理している場合、 は拒否される (rejected)。そうでなければ は に変換される。直観的には、 は を無効化することになる場合に拒否される。
我々は、このアルゴリズムの正当性を証明するために直列化可能性理論を適用する。そのためには、アルゴリズムを直列化可能性理論の観点から述べなければならない。我々は上記のアルゴリズムの記述から、アルゴリズムが生成するすべてのログが満たす性質を推論する。これらの特性が我々のアルゴリズムの形式的定義を形成する。我々は直列化可能性理論を使用して、これらのログ性質が 1-直列化可能性を導くことを証明する。
次の性質が我々の MV タイムスタンプアルゴリズム (MV timestamping algorithm) の形式的定義を形成する。
| TS1. | すべての |
| TS2. | すべての |
| TS3.1. | すべての |
| TS3.2. | |
| TS4. | |
性質 TS1 はトランザクションが一意のタイムスタンプを持つことを述べているだけである。TS2 はアルゴリズムの動作記述に暗黙的に含まれており、この性質がなければ "DBS が
性質 TS3.2 と TS4 は簡約できる。TS2 により
| TS5. | |
我々はこれらの性質を満たす任意のログが 1-SR であることを証明する。言い換えれば、MV タイムスタンプは正しい並行性制御アルゴリズムである。
マルチバージョン・タイムスタンプ定理. MV タイムスタンプアルゴリズムによって生成されるすべてのログは 1-SR である。
Proof.
MVSG 定義の規則 (1) によって導入される任意の辺を考える。
(1)
このとき辺は
(2)
このとき辺は
これにより
5. マルチバージョン・ロック機構
Bayer ら [1, 2] と Stearns および Rosenkrantz [20] はロック機構と同様の手法を用いて同期するマルチバージョンアルゴリズムを提示している。このセクションでは彼らのアルゴリズムの一般化について考察する。前のセクションと同様にまずアルゴリズムの非形式的な記述から始め、次にアルゴリズムによって導かれるログの性質を定式化する。最後に、これらのログの性質が 1-直列化可能性を含意することを証明する。
各トランザクションと各バージョンは認証済み (certified) または未認証 (uncertified) の 2 つの状態のいずれかに存在する。トランザクションが開始された時点では未認証であり、バージョンが書き込まれた時点でも未認証である。アルゴリズムの後続処理によってトランザクションとそれが書き込んだすべてのバージョンが認証済みとなる。"認証済み" の概念は [20] の "クローズ済み" (closed) に対応する。
アルゴリズムは次のように動作する。
まず
次に
最後に、トランザクションの実行が完了すると、DBS はそのトランザクションとそれが書き込んだすべてのバージョンを認証しようと試みる。
| C1. | |
| C2. | |
C1 の達成は時間の問題に過ぎない。C1 が満たされると、それを偽にするような将来のいかなるイベントは発生しない。C2 を達成するために我々は
これらの条件が成立すると
ほとんどのロックアルゴリズムと同様に、このアルゴリズムはデッドロックが発生する可能性がある。このデッドロックは、認証ロックの待機と、条件 C1 と C2 の待機という 2 つの独立した原因から生じる可能性がある。デッドロックを検出するために、アルゴリズムは有向ブロッキンググラフ (blocking graph) を使用できる。このグラフのノードはトランザクションを表し、
このアルゴリズムは次のログ性質を誘導する。これらの性質は MV ロックアルゴリズム (MV locking algorithm) の形式的定義を形成する。
| L1.1. | すべての |
| L1.2. | |
性質 L1 はトランザクションが実行後に認証されること、すべての認証ロックはトランザクションが認証される前に取得されなければならないこと、およびトランザクションはそのバージョンが認証される前に認証されなければならないことを述べている。
| L2.1. | すべての |
| L2.2. | すべての |
L2 は認証ロックが競合 (conflict) すること、すなわち 2 つのトランザクションが同じデータ項目に対して認証ロックを同時に保持できないことを述べている。
| L3.1. | すべての |
| L3.2. | |
L3 は読み取りを変換する規則を表現している。
| L4.1. | |
| L4.2. | |
これらの最後の性質は、それぞれ認証条件 C1 と C2 に対応する。
次の補題は L1-L4 から有用な性質を抽出する。
補題 1.
と を を書き込むトランザクションとする。このとき、
または
のいずれかである。
Proof. L2.1 の条件は
補題 2. 性質L1-L4は次を含意する:
L5. であるすべての について、 である。 L6. であるすべての と について、 または のいずれかである。
Proof. (L5). L1 により
| L3.2'. | |
L3.1 により、右辺の第 1 行は次のように簡約される:
| L3.2". | |
同様に、L4.2 は次のように表現できる:
| L4.2'. | |
補題 1 により
| L4.2". | |
L3.1 は
ここで我々はこれらの性質を満たす任意のログが 1-SR であること、つまり MV ロックは正しい並行性制御アルゴリズムであることを証明する。
マルチバージョン・ロック定理. MV ロックアルゴリズムによって生成されるすべてのログは 1-SR である。
Proof. アルゴリズムによって生成されるログを
MVSG 定義の規則 (1) によって導入される任意の辺について考える。
: このとき辺は である。 は我々の 定義から導かれる。
: このとき辺は である。
L6 により
これにより
Stearns と Rosenkrantz のアルゴリズム [20] は我々の研究と 2 つの点で異なる。彼らのアルゴリズムは、任意の時点でデータ項目の未認証バージョンを最大 1 つしか存在させない。これは書き込み操作時に書き込みロックの設定を要求することで実現される。その結果、彼らのアルゴリズムではいかなるデータ項目についても 1 つの認証済みバージョンと最大 1 つの未認証バージョン、つまり最大 2 つバージョンしか必要としない。これはデータベース復旧とうまく適合する [10]。Stearns と Rosenkrantz は、データ項目の認証済みバージョンをその "前値" (before-value)、未認証バージョンをその "後値" (after-value) とそれぞれ定義している。もう 1 つの違いはデッドロック処理に関するものである。彼らのアルゴリズムは、タイムスタンプに基づく興味深い新しいデッドロック回避スキームを使用している。
Bayer らのアルゴリズム [1, 2] も各データ項目に対して最大 2 つのバージョンを使用する。[20] と同様に、データ項目のバージョンはその前値と後値によって識別される。Stearns と Rosenkrantz とは異なり、Bayer らはブロッキンググラフを使用してデータ項目の読み取りをバージョンの読み取りに変換する。彼らは常に正しいバージョンを選択できることを証明している。つまり、読み取りはログを非 1-SR にすることがなく、デッドロックを引き起こすこともない。これは、読み取り専用トランザクション (照会処理; query) が最小限の同期遅延で実行可能であり、デッドロックの危険もなく実行できる優れた性質である。
6. マルチバージョン混合方式
Prime Computer 社は興味深いマルチバージョンアルゴリズムを開発した [7]。Prime 社のアルゴリズムはセクション 5 の終わりで示したアルゴリズムと同様に、並行性制御とデータベース復旧を統合したものである。ただし、それらのアルゴリズムとは異なり、Prime 社のアルゴリズムはデータ項目の複数の認証済みバージョンを活用できる。Computer Corporation of America はこの Prime 社のアルゴリズムを採用し Adplex DBS [6 に実装している。このセクションでは Prime 社のアルゴリズムの一般化について考察する。
我々が研究するアルゴリズムは混合方式 (mixed method) と呼ばれるものである。混合方式とは、ロック方式とタイムスタンプ方式を組み合わせた並行性制御アルゴリズムである [3]。混合方式は一貫したタイムスタンプ生成 (consistent timestamp generation) という新しい問題を導入する。タイムスタンプ方式では競合するトランザクションをタイムスタンプを使用して順序付ける。直観的には、
我々のアルゴリズムでは、読み取り専用トランザクション (照会処理) の処理に MV タイムスタンプ方式を使用し、一般的なトランザクション (更新処理) を処理するために MV ロック方式を使用する。照会処理と更新処理には次の 2 つの性質を満たすタイムスタンプが割り当てられる:
と を更新処理とする。 ならば である。
を照会処理、 を更新処理とする。 ならば である。
一貫性のあるタイムスタンプ生成器 (consistent timestamp generator) は、これらの性質を満たす任意のタイムスタンプ割り当てる方式を指す。
我々のアルゴリズムは Lamport クロック (Lamport clock) を用いて一貫性のあるタイムスタンプを生成する。分散システムの議論はセクション 2 で述べた。Lamport クロックは 2 つの条件に従って各イベントに番号 (タイム (time) と呼ばれる) を割り当てる。
| LC1. | イベント |
| LC2. | イベント |
LC1 は各プロセスがローカルなクロックまたはカウンターを使用することで容易に達成できる。LC2 は、各メッセージの送信時にローカルクロック時刻を付与することで実装できる。プロセス
| LC. | 分散システム内のイベント |
LC はまさに我々が一貫したタイムスタンプを生成するために必要な条件である。更新処理
我々はアルゴリズムを詳細に記述する。
システムは Lamport クロックを維持する。
更新処理はセクション 5 の MV ロックアルゴリズムを使用する。
更新処理
が認証されるとシステムは を割り当てる。このタイムスタンプは が書き込んだすべてのバージョンに送信される。したがって、承認済みバージョンにはタイムスタンプが付与されるが、認証されていないバージョンには付与されない。照会処理
の実行が開始されると、システムは を現在の時刻以下に設定する。
による任意の読み取り操作 を考える。セクション 4 と同様に我々はこれを に変換したい。ここで は より小さい最大のタイムスタンプを持つ のバージョンである。しかし認証されていないバージョンにはタイムスタンプが付与されていないため注意が必要である。任意の認証されていない バージョンが取り得るタイムスタンプの下限を とする。具体的には とする。 であるため は の下限である。したがって は任意の未承認 のタイムスタンプの下限である。再度
について考える。 に認証されていないバージョンが存在しないか、あるいは ならば、 は 未満の最大のタイムスタンプを持つ のバージョン を読み取る。そうでなければ はその条件が満たされるまで待機する。(これは最終的に発生する。)
アルゴリズムによって導出されるログの特性は MV タイムスタンプとロックによって生じる性質の単純な組み合わせである。その正当性の証明はセクション 4 とセクション 5 で示されたものと同様の方法で行える。
マルチバージョン混合方式定理 (multiversion mixed method theorem). MV 混合方式によって生成されるすべてのログは 1-SR である。
Prime 社のアルゴリズムは我々のものと 2 つの点で異なる。最も重要な違いは、Prime 社のアルゴリズムでは明示的なタイムスタンプを使用しないことである。すべての認証イベントは
もう 1 つの重要な違いは、Prime 社が更新処理に対して制限付きのマルチバージョンロック方式、すなわち 2フェーズロック [8] を採用している点である。書き込み操作が行われる際には書き込みロックが設定されるため、いかなるデータ項目も複数の未認証バージョンを持つことはない。さらに
この設計の結果として照会処理と更新処理が完全に分離される。照会処理は更新処理を遅延させたりアボートさせることはなく、逆に更新処理が照会処理を遅延させたりアボートさせることもない。
Prime 社のアルゴリズムは認証イベントを全順序付けする必要があるため、集中型 DBS において最も自然に実装される。
次の変種は分散 DBS により適した実装方法である。
システムは Lamport クロックを維持する。
更新処理は 2 フェーズロック機構を使用する。このため各更新処理が実行を完了した時点ですぐに認証可能となる。システムは一般的なアルゴリズムと同様に
を割り当てる。照会処理はタイムスタンプを用いて処理酢される。これも一般アルゴリズムとまったく同じである。
このアルゴリズムは照会処理と更新処理を Prime のアルゴリズムとほぼ同等のレベルで完全に分離する。照会処理は更新処理を遅延させたりアボートさせることはなく、逆に更新処理が照会処理をアボートさせることもない。ただし、1 つの条件下では更新処理が照会処理を遅延させる可能性がある。照会処理
7. 結論
この論文はマルチバージョン・データベースにおける並行性制御問題を考察した。マルチバージョン・データベースは、並行性制御に新たな側面をもたらす。トランザクションはデータ項目に対する操作 (たとえば
我々はマルチバージョン・データベースの変換処理の側面を説明するために並行性制御理論を拡張した。その中核となる概念が 1-コピー直列化可能性 (one-copy serializability) である。すなわち、マルチバージョンデータベースにおけるトランザクションの実行が、単一バージョンデータベースにおける同じトランザクションの逐次的実行と等価である場合、その実行は 1-コピー直列化可能 (1-SR) である。マルチバージョン並行性制御アルゴリズムが正しいとは、そのすべての実行が 1-SR であることを指す。我々は実行が 1-SR であるための効果的で必要十分条件を導出し、これらの条件はバージョン順序 (version order) の概念が用いられる。さらに我々は、これらの条件を検証するためのグラフ構造であるマルチバージョン直列化グラフ (multiversion serialization graph, MVSG) を提案した。バージョン順序が定まれば、その実行の MVSG が非循環である場合に限り実行は 1-SR である。MVSG は単一バージョン並行性制御理論で広く用いられている直列化グラフに類似した概念である。
我々はこの理論を 3 種類のマルチバージョン並行性制御アルゴリズムに適用した。1 つのアルゴリズムはタイムスタンプを使用し、1 つはロックを使用し、1 つはロックとタイムスタンプを組み合わせている。タイムスタンプ方式のアルゴリズムは Reed [17] の研究に基づく。ロック方式は Bayer ら [1, 2] と Stearns と Rosenkrantz [20] の研究に着想を得て一般化したものである。組み合わせアルゴリズムは Prime Computer 社が開発したアルゴリズム [7] を一般化したものであり、Computer Corporation of America によって使用されている [6]。
REFERENCES
- BAYER, R., ELHARDT, E., HELLER, H., AND REISER, A. Distributed concurrency control in database systems. In Proc. 6th Int. Conf Very Large Data Bases (Montreal, Oct. 1-3, 1980), ACM, New York, 1980, pp. 275-284.
- BAYER, H., HELLER, H., AND REISER A. Parallelism and recovery in database systems. ACM Trans. Database Syst. 5, 2 (June 1980), 139-156.
- BERNSTEIN, P. A., AND GOODMAN, N. Concurrency control in distributed database systems. ACM Comput. Surv. 13, 2 (June 1981) 185-221.
- BERNSTEIN, P. A., SHIPMAN, D. W., AND WONG, W. S. Formal aspects of serializability in database concurrency control. IEEE Trans. Softw. Eng. SE-5, 3 (May 1979), 203-215.
- CASANOVA, M. A. The Concurrency Control Problem of Database Systems. Lecture Notes in Computer Science, vol. 116, Springer-Verlag, New York, 1981. (Originally published as Tech. Rep. TR-17-79, Center for Research in Computing Technology, Harvard University, 1979.)
- CHAN, A., FOX, S., LIN, W. T. K., NORI, A., AND RIES, D. R. The implementation of an integrated concurrency control and recovery scheme. In Proc. 1982 ACM SIGMOD Conf Management of Data (Orlando, Fla., June 2-4, 1982), M. Schkolnick, Ed., ACM, New York, 1982, pp. 184-191.
- DUBOURDIEU, D. J. Implementation of distributed transactions. In Proc. 1982 Berkeley Workshop on Distributed Data Management and Computer Networks, pp. 81-94.
- ESWARAN, K. P., GRAY, J. N., LORIE, R. A., AND TRAIGER, I. L. The notions of consistency and predicate locks in a database system. Commun. ACM 19, 11 (Nov. 1976), 624-633.
- GAREY, M. R., AND JOHNSON, D. S. Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman and Company, San Francisco, 1979.
- GRAY, J. N. Notes on database operating systems. In Operating Systems: An Advanced Course, Lecture Notes in Computer Science, vol. 66, Springer-Verlag, New York, 1978, pp. 393-481.
- HOLT, R. C. Some deadlock properties of computer systems. ACM Comput. Surv. 4, 3 (Sept. 1972), 179-196.
- KING, P. F., AND COLLMEYER, A. J. Database sharing-an efficient mechanism for supporting concurrent processes. In Proc. 1974 NCC, AFIPS Press, Montvale, N.J., 1974.
- LAMPORT, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (July 1978), 558-565.
- PAPADIMITRIOU, C. H. The serializability of concurrent database updates. J. ACM 26, 4 (Oct. 1979), 631-653.
- PAPADIMITRIOU, C. H., AND KANELLAKIS, P. C. On concurrency control by multiple versions. In Proc. ACM Symp. Principles of Database Systems (Los Angeles, March 29-31, 1982), ACM, New York, 1982, pp. 76-82.
- PAPADIMITRIOU, C. H., BERNSTEIN, P. A., AND ROTHNIE, J. B., JR. Some computational problems related to database concurrency control. In Proc. Conf. Theoretical Computer Science, (Waterloo, Ontario, Aug. 1977).
- REED, D. Naming and synchronization in a decentralized computer system. Tech. Rep. MIT/LCS/TR-205, Dept. Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Sept. 1978.
- ROSENKRANTZ, D. J., STEARNS, R. E., AND LEWIS, P. M., II System level concurrency control for distributed database systems. ACM Trans. Database Syst. 3, 2 (June 1978), 178-198.
- SILBERSCHATZ, A. A multi-version concurrency control scheme with no rollbacks. In Proc. ACM SIGACT-SIGOPS Symp. Principles of Distributed Computing (Ottawa, Canada, Aug. 18-20, 1982), ACM, New York, 1982, pp. 216-223.
- STEARNS, R. E., AND ROSENKRANTZ, D. J. Distributed database concurrency controls using before-values. In Proc. 1981 ACM SIGMOD Conf Management of Data, ACM, New York, 1981, pp. 74-83.
- STEARNS, R. E., LEWIS, P. M., II, AND ROSENKRANTZ, D. J. Concurrency controls for database systems. In Proc. 17th Symp. Foundations of Computer Science, IEEE, New York, 1976, pp. 19-32.
翻訳抄
MVCC として知られる、マルチバージョンデータベースシステムにおける並行性制御アルゴリズムの正当性を分析するための包括的な理論的フレームワークを確立し、1-コピー直列化可能性の概念とマルチバージョン直列化グラフによる判定手法を提示した 1983 年の論文。
- BERNSTEIN, Philip A. and GOODMAN, Nathan. Multiversion Concurrency Control - Theory and Algorithms. ACM Transactions on Database Systems. 1983, vol. 8, no. 4, pp. 465-483. ISSN 0362-5915. DOI: 10.1145/319996.319998.