3 分散システムのフォールトトレランス 分散システム Distributed Systems Networkを通して通信可能な複数のプロセス (process)から構成 プロセス≒ プロセッサ (processor) ノード (node) サイト (site) 3.1 分散システムのモデル 3.1.1 基本モデル プロセスPiは局所時計をもつ Ci(t) = 実時刻tでの局所時計の値 プロセスは以下のものを持たない Shared memory Global Clock 3.1.3 故障モデル Fault Model クラッシュ故障 (Crash Fault) 故障したプロセスは停止 オミッション故障 (Omission Fault) Crash Faults Crashもしくは,メッセージの Omission Faults 送信,受信を失敗する可能性 ビザンチン故障 (Byzantine Fault) 任意の動作 Byzantine Faults 3.1.2 同期・非同期 同期システム 条件 1命令の実行時間に上限が存在し,既知 メッセージ遅延に上限が存在し,既知 局所時計のドリフト率rが存在し,既知 P1 t P2 0 メッセージ遅延 非同期システム 同期システムでないシステム 時計同期 Clock Synchronization ドリフト率r dCi (t) -1 r dt r r Ci(t) 1-r 通常定数ρは10-5程度 1 同期システムでは時計同期により | Ci(t) – Cj(t)| e T 同期ラウンドモデル 受信→処理→送信 P1 P2 P3 ラウンドi-1 t ラウンドi ラウンドi+1 3.1.4 論理時計 Event(イベント)のOrdering(順序付け) 必要性 AよりBが後だと判定したい P1 P2 P3 B A 困難さ 共通のClockがない メッセージ遅延,プロセス実行速度が可変 因果関係 (Happened-before relation, causal relation) 1~3を満たす最小の関係(→で表記) 同じプロセスでaがbより先に起こったならa→b 2. 同じメッセージについてaが送信,bが受信なら a→b 3. a→bかつb→cならばa→c e11 → e12 1. P1 P2 e11 e21 e12 e22 e23 e21 → e22 e21 → e23 e22 → e23 e11 → e22 e21 → e12 e11 → e23 因果関係 Relation (関係) ・・・ 要素のtuple(組)の集合 strict partial order relation (強半順序関係) a) R が成り立たない (irreflexivity, 非反射律) (a, b) R ¬(b, a) R (antisymmetry 反対称律) (a, b) R, (b, c) R (a, c) R (transitivity, 推移律) (a, Partial order relation (半順序関係) a) R (reflexivity, 反射律) a≠b, (a, b) R ¬(b, a) R (antisymmetry 反対称律) (a, b) R, (b, c) R (a, c) R (transitivity, 推移律) (a, 論理時計(by L. Lamport) Logical Clock (論理時計) 整数LCi:各プロセスPiのevent aの論理時計の値 因果関係に矛盾しない時間 a,b, a→b ならば LCi(a) < LCj(b) P1 e11 e12 e13 e14 (1) (2) (3) (4) e15 e16 (5) (6) e17 (7) Clock values P2 (1) (2) (3) e21 e22 e23 (4) e24 (7) e25 論理時計 ルール 同じプロセスでa,bが連続して起こったら LCi(b) := LCi(a) + 1 2. メッセージには送信イベントの時刻をtimestamp (時刻印) tmとして付加 3. 受信イベントaは,LCi(a) := max(LCi(a), tm + 1) a,b, a→b ならば LCi(a) < LCj(b) !? e11 e12 e13 e14 e15 e16 e17 P1 1. (1) ts=2 ts=2 (1) (2) (3) (5) (6) ts=6 ts=4 (4) e21 e22 e23 e24 Clock values P2 (2) (3) (4) (7) e25 (7) 全順序関係の設定 同じ論理時計値を持つイベントの解消 Total (a, a) R (reflexivity, 反射律) (a, b) R, (b, a) R a = b (antisymmetry 反対称律) (a, b) R, (b, c) R (a, c) R (transitivity, 推移律) a,b, (a, b) Rまたは (b, a) R (totalness, 完全律) order relation (全順序関係) Logical Clock + プロセスID P1 Clock values P2 e11 e12 e13 e14 (1) (1.1) (2) (3) (4) (2.1) (3.1) (4.1) (1.2) (1) (2.2) (2) e21 e22 e15 e16 (3.2) (3) e23 (5) (6) (6.1) (5.1) (4.2) (4) e24 e17 (7) (7.1) (7.2) (7) e25 ベクトル時計 論理時計では, ならば LCi(a) < LCj(b) しかし,「LCi(a)<LCj(b)ならばa→b」は,必ずしも 成り立たない a→b ベクトル時計 a→b LCi(a) < LCj(b) (1,0,0)(2,0,0) P1 e P2 P3 11 (3,4,1) e12 e13 (0,1,0) (2,2,0)(2,3,1)(2,4,1) e21 e22 e23 e24 (0,0,1) (0,0,2) e31 e32 時間
© Copyright 2024 ExpyDoc