クイズ 非同期システムにおいて,1プロセスがクラッシュ故障する可能性がある場合,次のアルゴリズムで非ブロッキング原子コミットが解けないことを示せ アルゴリズム V(=Yes or No)を高信頼ブロードキャスト 全プロセスから値を受信した場合 すべてYesならコミットを決定 そうでなければアボートを決定.

Slides:



Advertisements
Similar presentations
OWL-Sを用いたWebアプリケーションの検査と生成
Advertisements

4 相互作用図 後半 FM13001 青野大樹.
グローバルコンピューティング環境における遺伝的アルゴリズムの検討
相互作用図 FM11010 田中健太.
北海道大学大学院 理学院宇宙理学専攻 EPNetFaN Mail サーバ管理課 徳永 義哉
耐故障アルゴリズム.
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
Timeout と再送 往復時間 予知が困難 他のトラフィックに依存 適応再送アルゴリズム データの採取.
The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用
最新ファイルの提供を保証する代理FTPサーバの開発
CCC DATAset における マルウェアの変遷
ASE 2011 Software Model Checking
神奈川大学大学院工学研究科 電気電子情報工学専攻
TCP (Transmission Control Protocol)
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
第6章 トランザクション管理 6.1 トランザクションの概念 6.2 同時実行制御 6.3 障害回復.
構造化オーバーレイネットワークに適した 分散双方向連結リストDDLL
小型デバイスからのデータアクセス 情報処理系論 第5回.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
センサノード 時刻同期と位置測定 浅川 和久 2008/11/16 センサノード 時刻同期と位置測定.
3.2 合意問題 agreement problems
Ibaraki Univ. Dept of Electrical & Electronic Eng.
割 込 み(1) オペレーティングシステム No.5.
予備親探索機能を有した アプリケーションレベルマルチキャスト
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
動画像ストリーミングサービスのための プロキシキャッシングシステムの 設計と実装および評価
伝送特性に応じた 適応型映像・音声配信機構の構築
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
第8章 Web技術とセキュリティ   岡本 好未.
Occam言語による マルチプリエンプティブシステムの 実装と検証
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
第17章 ドメインネームシステム.
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
第9章 Error and Control Messages (ICMP)
分散IDSの実行環境の分離 による安全性の向上
モデル検査 状態遷移系 PLTL(propositional linear-time temporal logic) PLTLのモデル検査
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
第15章 TFTP:トリビアル・ファイル転送プロトコル
耐故障処理 Fault Tolerance 「分散計算の基礎」 12章 発表者 : 高橋 慧.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
新しいリソース グループまたはサブスクリプションへのリソースの移動 microsoft
リモートホストの異常を検知するための GPUとの直接通信機構
インターネットにおける真に プライベートなネットワークの構築
オペレーティングシステムJ/K (仮想記憶管理)
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
2009年12月4日 ○ 前田康成(北見工業大学) 吉田秀樹(北見工業大学) 鈴木正清(北見工業大学) 松嶋敏泰(早稲田大学)
IP over DVB-RCSの設計と実装
サーバ・クライアントシステム ( X Window System) 2006/01/20 伊藤 和也 original: 前坂たけし
様々な情報源(4章).
進捗報告 金田憲二.
リカバリ 東大生研 情報融合研究センタ 喜連川優.
仮想環境を用いた 侵入検知システムの安全な構成法
オペレーティングシステム (プロセススケジューリング)
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
6.5 セマフォ セマフォ(semaphore): 複数のタスク(もしくはスレッド)が「同期」または「相互排除」の制御のために取得(acquire)・リリース(release)できるカーネルオブジェクトの総称.
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
オペレーティングシステム (プロセススケジューリング)
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
Cilk-NOW 米澤研究室 金田憲二 “Adaptive and Reliable Parallel Computing on Networks of Workstations” Robert D. Blumofe (Univ. of Texas) Philip A. Lisiecki (MIT)
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
3 分散システムのフォールトトレランス 分散システム Distributed Systems
情報ネットワーク 岡村耕二.
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
DHCPv6 on zebraの設計 miyu(SING) B2 親:yasu.
Presentation transcript:

クイズ 非同期システムにおいて,1プロセスがクラッシュ故障する可能性がある場合,次のアルゴリズムで非ブロッキング原子コミットが解けないことを示せ アルゴリズム V(=Yes or No)を高信頼ブロードキャスト 全プロセスから値を受信した場合 すべてYesならコミットを決定 そうでなければアボートを決定 全プロセスから受信する前に一定時間T経過した場合: アボートを決定

3.5 プロセス多重化 プロセスを多重化し故障に対処する手法 Stateless Server Stateful Server 状態を持たないサーバ(静的に与えられたデータの読み出しのみを実行) 多重化が容易 Stateful Server 状態を持つサーバ 多重化には,複雑な機構が必要

多重化サーバ op(arg) ok(res) Client process pi Nonreplicated server x x Invocation Response Nonreplicated server x x Replicated server x Replica x1 Replica x2 Replica x3

例.FIFOキュー enqueue(a) dequeue() ok(res) Client process pi Invocation Response FIFO Queue Service Replicated server x Replica x1 Replica x2 Replica x3 Client process pj Invocation Response enqueue(b) dequeue() ok’(res’)

Erroneous Execution enqueue(a) dequeue() Client process pi ok(b) ok(a) FIFO Queue Service Replica x1 a b Replica x2 b a Replica x3 ok(b) ok (a) Client process pj enqueue(b) dequeue()

多重化のアプローチ 3.5.1 能動的多重化 (Active replication) 3.5.3 受動的多重化 (Passive replication) 1つのReplicaのみが処理を実行 p1 p2 p3 P Q p1 p2 p3 P Q Update

3.5.1 能動的多重化 op(arg) ok(res) Client process pi Replica x1 Replica x2 Invocations Responses Replica x1 Replica x2 Replica x3 Atomicity (原子性) 命令が実行されるなら,正常な全Replicaが実行 Order (順序) 同じ順序で命令を処理 Determinism (決定性)

原子性,順序 満たされない場合 状態の不整合が起こる Client process pi Replica x1 Replica x2 状態が異なる Replica x3 Client process pj

原子性,順序 正常なすべてのReplicaに,同じ順序でメッセージを配送する手段が必要 → 原子ブロードキャスト Client process pi Replica x1 状態が一致 Replica x2 Replica x3 Client process pj

決定性 決定性 Determinism 非決定性の要因 初期状態と,それまでの処理の過程から一意に結果が定まること 各replicaの処理は決定的(deterministic)でなければならない そうでなければ状態の一貫性が無くなる. 非決定性の要因 例.マルチスレッド

多重化とグループ通信 グループ通信機能を下部に用いることで,容易に多重化を実現 グループ通信システムの例 ISIS, Horus (Cornell University) アプリケーション 受容 (deliver) 原子ブロードキャスト等 グループ通信 受信(receive) 送信 オペレーティングシステム

(多重化のための)グループ通信 順番を保つために,受信しても一旦bufferingすることが必要 受信 (receipt) ノードがメッセージを受け取ること 受容 (delivery) プロセスがメッセージを渡すこと (受容,配送) p1 p2 Sender delivery A, B delivery A, B Sender B receipt A, B receipt B, A A Network

3.5.2 原子ブロードキャスト プロセス={P1, P2, …} 条件 3.5.2 原子ブロードキャスト プロセス={P1, P2, …} 条件 停止性: 正常なPiがabcast(m)したら,いずれPiはdeliver(m) 一律合意: あるPiがdeliver(m)したなら,正常などのプロセスPjもdeliver(m) 妥当性: deliver(m)したなら,abcast(m)済み 全順序: Pi, Pjがdeliver(m)しており,Piがそれより前にdeliver(m’)しているなら,Pjもそれ以前に,deliver(m’)

コンセンサスを用いた原子ブロードキャスト 受信したメッセージの集合を提案値として,定期的にコンセンサス問題を解く コンセサス a propose({b}) decide({a,b}) P1 {b} propose({a,b}) P2 decide({a,b}) {a,b} propose({a,b}) P3 decide({a,b}) {a,b} b

3.5.3 受動的多重化 1つのReplicaのみが実際には処理を実行 レプリカの動作は非決定的でもよい Client process pi Invocation Response Server x Primary replica x1 Update Ack Backup replica x2 Update Ack Backup replica x3

主プロセスの故障1 新しい主プロセスを決定 Client process pi Prim(x) = x1 Prim(x) = x2 A op(arg) Client process pi Invocation Invocation W Prim(x) = x1 Prim(x) = x2 A Primary replica x1 Update Backup replica x2 Backup → Primary Backup replica x3 新しい主プロセスを決定

主プロセスの故障2 Updateを受信したBackupと受信していないBackupが存在→ Replicaの状態の不一致 op(arg) ok(res) Client process pi Invocation with invID Invocation with invID Response B Primary replica x1 Update Backup replica x2 Backup replica x3 Updateを受信したBackupと受信していないBackupが存在→ Replicaの状態の不一致 グループ通信機能が必要

3.7 分散チェックポインティング チェックポインティングとロールバックリカバリ(2.2.2) 単一プロセスなら実現は容易 定期的に状態を信頼できる記憶装置に保存し,故障の際にその情報を利用して以前の正常な状態に回復する手法 単一プロセスなら実現は容易 Rollback Process time Checkpoint Checkpoint

分散システムにおけるチェックポインティング 分散システムでは通信を考慮する必要がある Inconsistentな(整合性のない)状態 孤児メッセージ(Orphan message)の存在 送信していないのに受信されたメッセージ P1 m1 P2 m2 P3

分散システムにおけるチェックポインティング In-transit message 送信したが受信されていないメッセージ Consistentな(整合性のある)状態 実際に起こりうる状態 In-transit messageは,通常のメッセージ喪失と同様に,通信プロトコルにより対処できる P1 m1 P2 m2 P3

ドミノ効果 (Domino Effect) 回復線 (Recovery Line) ドミノ効果 P1 c2,1 c2,2 c2,3 c2,4 P2 c3,1 c3,2 c3,3 c3,4 P3 Recovery line 回復線 (Recovery Line) 孤児メッセージを含まないチェックポイントの集合 ドミノ効果 リカバリラインがドミノ倒しのように後退してしまう現象 ドミノ効果を起こさないようなCheckpointの取り方が必要

分散チェックポインティングの種類 非連携 Uncoordinated 連携 Coordinated 各プロセスが非同期的にチェックポイントを取得 ドミノ効果の危険 連携 Coordinated プロセスが協調してチェックポイントを取得 ドミノ効果を防止 通信誘導 Communication-Induced メッセージのやり取りのパターンを基づいて,ドミノ効果が起こらないようにチェックポイントを取得

連携チェックポインティング 時間同期を利用したアルゴリズム 同期のとれたクロックを使用 | Ci(t) - Cj(t) |  e 一定時間p毎にチェックポイントを取得 Orphan Messageが起こるシナリオ p e P1 p P2

連携チェックポインティング 時間同期を利用したアルゴリズム チェックポイント後,時間e 経過するまで送信をしない T e T + e P1 P2 T

通信誘導チェックポインティング メッセージのやり取りのパターンを基づいて,無用(Useless)チェックポイント が発生しないようにチェックポイントを取得 無用チェックポイント Recoveryに利用できないチェックポイント (例.C3,3) c1,1 c1,2 c1,3 P1 m2 m4 c2,1 c2,2 c2,3 c2,4 P2 m6 c3,1 m1 c3,2 m3 m5 c3,3 c3,4 P3

Z-Paths, Z-Cycles Z-Path m1, …, mn はCi,xからCj,yへのZ-Path m1はCi,x 以降に送信(プロセスPi) l = 1, …, n-1: mlの受信と,ml+1の送信について,直前のチェックポイントが同じ mnをCj,y 以前に受信 (プロセスPj) c1,1 c1,2 c1,3 P1 m2 m4 c2,1 c2,2 c2,3 c2,4 P2 m6 c3,1 m1 c3,2 m3 m5 c3,3 c3,4 P3

Z-Paths, Z-Cycles Z-Cycle 一つのチェックポイントに対するZ-Path Useless Checkpointの必要充分条件 c1,1 c1,2 c1,3 P1 m2 m4 c2,1 c2,2 c2,3 c2,4 P2 m6 c3,1 m1 c3,2 m3 m5 c3,3 c3,4 P3

通信誘導チェックポインティングの例 Z-Cycleを作らないようにする. 例.論理時計の利用 Idea チェックポイントを取得したら lc := lc+1 送信メッセージmにはlcを時刻印として添付(tc(m)) メッセージmを受信した際,tc(m) >lcならlc:= tc(m) Idea Z-Pathの時刻印が単調増加ならZ-Cycleにはならない 2 4 5 1 P1 m2 m4 1 2 3 4 P2 m6 m1 m3 m5 4 2 3 P3

通信誘導チェックポインティングの例 Idea 方法 Z-Pathの時刻印が単調増加ならZ-Cycleにはならない 受け取ったメッセージ(m2)より小さい時刻印のメッセージ(m1)を送信していたら,m2を受容する前にチェックポイントを取る P1 P1 m2 m2 P2 P2 m1 m1 P3 P3 ts(m1) ≥ ts(m2) ts(m1) < ts(m2)

通信誘導チェックポインティングの例 Idea 方法 Z-Pathの時刻印が単調増加ならZ-Cycleにはならない 受け取ったメッセージより小さい時刻印のメッセージを送信していたら,deliverする前にチェックポイントを取る 2 4 5 1 P1 m2 m4 1 2 3 4 P2 m6 m1 m3 m5 4 2 3 P3