際際滷

際際滷Share a Scribd company logo
噸宥の繁でもわかるPaxos	
@tyonekura
念戻 		
?? 匯桑シンプルなPaxosプロトコル	(Paxos	Made	
Simple)をB初します。
Paxosとは	
?? ある、髻∂^磯方のノ`ドにきzむプロトコ
ル。もうちょっと屎_には、^磯方のノ`ドに
きzまれたr泣で栽吭したとみなせるプロ
トコル。	
?? 余嶄でネットワ`クが余俳れたり、ノ`ドが棒
んだり、伏き卦ったり、弼?しても寄嬋健。
鞠繁麗	
?? クライアント	
C? プロポ`ザに、きzみをおいする繁	
C? 鞠繁麗といっておきながら、はプロポ`ザが、
隔ってから兵めればいいので、參和鞠しません。	
?? プロポ`ザ	
C? アクセプタの^磯方に揖じ、きzむようBる	
?? アクセプタ	
C? プロポ`ザから栖た、鬚茲にはからう瘁峰	
?? リスナ	
C? 恷瘁に、^磯方のアクセプタから、鬟殴奪函
児云議な咾┘侫З`ズ1	
?? フェ`ズ1a	(プロポ`ザ硲	
C?アクセプタにお謀いをたてる。そのH、メッセ`ジ
IDを耶える。	
?? フェ`ズ1b	(アクセプタ硲	
C?兜めてのお謀いや、これまでs崩したお謀いより
互いIDだったら、s崩を卦す。もし書までアクセプ
トをしていたら、その、盞気后	
C?これまでs崩したお謀いより詰いIDはoする。	
オレンジのキ`ワ`ドは、僕られるメッセ`ジのNを峺しています。
児云議な咾┘侫З`ズ2	
?? フェ`ズ2a┘廛蹈櫞`ザ硲	
C? ^磯方のアクセプタからs崩が卦ってこなかったら、
どこかでBめて、メッセ`ジIDをやして恷兜からや
りなおし。	
C? ^磯方のアクセプタからs崩が卦ってきたら、メッ
セ`ジIDと、鯡蹐┐謄▲セプタにプロポ`ズを僕る。	
C? プロポ`ズを僕るHに、もしもs崩に(ID,	」のMが
ついて卦ってきたら、徭蛍の、髻卦ってきたs崩の
嶄で匯桑互いIDの、きQえてプロポ`ズを僕る。
IDは徭蛍の。なぜなら、s崩が卦ってきたということ
は、そのr泣で徭蛍のIDが匯桑互い。
児云議な咾┘侫З`ズ2	
?? フェ`ズ2b┘▲セプタ硲	
C?プロポ`ズのIDが恷瘁にs崩したIDか、それより
寄きい栽、アクセプトする。	
C?プロポ`ズのIDが恷瘁にs崩したIDより弌さい
栽、お僅りする。
児云議な咾┰Kわり	
?? フェ`ズ2c?	(プロポ`ザ硲	
C?^磯方からアクセプトが卦ってきたらK阻	
C?^磯方に_せずタイムアウトするか、^磯方から
お僅りされたらメッセ`ジIDをやして恷兜に
る。	
?? リスナ`は、アクセプタにいて指って、^磯
方のアクセプタが揖じ、魍屬辰討い燭蕕修
、鯰鼎犬襦
と、こうくと 		
?? よくわからなくなる。	
?? たぶん、箭が富ないのでわからないのだと房
う。	
?? なので、參和パラパラ只鮫
匯桑gなケ`ス	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
匯桑gなケ`ス	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
s崩	
1	
1	
1	
プロポ`ザ
匯桑gなケ`ス	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
プロポ`ズ	
1	
1	
1	
プロポ`ザ
匯桑gなケ`ス	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(1)	
アクセプト(1)	
アクセプト(1)	
1	
1	
1	
椳	
椳	
椳
匯桑gなケ`ス	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナ`	
1	
1	
1	
椳	
椳	
椳	
椳ね
アクセプタ匯岬絞嬾	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
アクセプタ匯岬絞嬾	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
1	
0	
1	
プロポ`ザ
アクセプタ匯岬絞嬾	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
1	
0	
1	
プロポ`ザ
アクセプタ匯岬絞嬾	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(1)	
アクセプト(1)	
1	
0	
1	
椳	
椳
アクセプタ匯岬絞嬾	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナ`	
1	
0	
1	
椳	
椳	
椳ね
アクセプタ匯岬絞嬾と房ったら伏き
卦った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
アクセプタ匯岬絞嬾と房ったら伏き
卦った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
1	
1	
1	
プロポ`ザ
アクセプタ匯岬絞嬾と房ったら伏き
卦った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
1	
1	
1	
プロポ`ザ	
プロポ`ズ	
椳です(1)	
s崩卦ってきてなくてもとりあえずプロポ`ズする。
アクセプタ匯岬絞嬾と房ったら伏き
卦った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(1)	
アクセプト(1)	
1	
1	
1	
椳	
椳	
アクセプト(1)	
いままでで匯桑IDが寄きいのでアクセプトする。	
椳
アクセプタ匯岬絞嬾と房ったら伏き
卦った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナ`	
1	
1	
1	
椳	
椳	
椳ね	
椳
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
1	
1	
1	
プロポ`ザ	
いいですよ(1)	
s崩
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(2)	
プロポ`ズしていいですか(2)	
プロポ`ズしていいですか(2)	
お謀い	
お謀い	
お謀い	
1	
	
1	
1
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
いいですよ(2)	
s崩	
s崩	
2	
2	
2	
いいですよ(2)	
s崩
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
2	
2	
2	
プロポ`ザ	
プロポ`ズ	
椳です(1)
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
リジェクト(2)	
リジェクト(2)	
2	
2	
2	
リジェクト(2)
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
恃儲です。(2)	
恃儲です(2)	
プロポ`ズ	
プロポ`ズ	
2	
2	
2	
プロポ`ズ	
恃儲です(2)
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(2)	
アクセプト(2)	
2	
2	
2	
恃儲	
恃儲	
アクセプト(2)	
恃儲
プロポ`ザ2繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナ`	
2	
2	
2	
恃儲	
恃儲	
恃儲ね	
恃儲
もしリスナ`がxぶ念にリトライしたら
》畯遑	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(3)	
プロポ`ズしていいですか(3)	
プロポ`ズしていいですか(3)	
お謀い	
お謀い	
お謀い	
2	
2	
2	
恃儲	
恃儲	
恃儲
おや深s崩に、麿繁の兆念が。。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(恃儲、2)	
いいですよ(恃儲、2)	
s崩	
s崩	
いいですよ(恃儲、2)	
s崩	
3	
3	
3	
恃儲	
恃儲	
恃儲
なぜ麿繁の兆念で。。せつない。。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
恃儲です。(3)	
恃儲です(3)	
プロポ`ズ	
プロポ`ズ	
2	
2	
2	
プロポ`ズ	
恃儲です(3)	
2	
2	
2	
恃儲	
恃儲	
恃儲	
この瘁のI尖はY惚が笋錣蕕覆い里如g廾卆贋
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
1	
1	
1	
プロポ`ザ	
いいですよ(1)	
s崩
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(2)	
プロポ`ズしていいですか(2)	
お謀い	
お謀い	
1	
	
1	
1	
屈繁朕のr、1岬音{
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
s崩	
1	
2	
2	
いいですよ(2)	
s崩
プロポ`ザ3繁(1岬朕畯遑	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
1	
2	
2	
プロポ`ザ	
プロポ`ズ	
椳です(1)
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(1)	
リジェクト(2)	
1椳	
2	
2	
リジェクト(2)
2繁朕がアクセプタ2にプロポ`ズし
たところで。。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
恃儲です(2)	
プロポ`ズ	
1椳	
2	
2恃儲	
まだとどいてない。	
まだとどいてない。	
アクセプト(2)
3繁朕が鞠。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
1椳	
2	
2恃儲	
プロポ`ズしていいですか殖┌)	
プロポ`ズしていいですか(3)	
お謀い	
お謀い	
プロポ`ズしていいですか(3)	
お謀い
3繁朕が鞠。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
3椳	
3	
3恃儲	
いいですよ(1,	椳)	
s崩	
いいですよ(3)	
s崩	
いいですよ(2,	恃儲)	
s崩
3繁朕は恃儲を容す。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
3椳	
3	
3恃儲	
恃儲です。(3)	
プロポ`ズ	
プロポ`ズ	
プロポ`ズ	
恃儲です(3)	
恃儲です(3)	
もしこの念に恃儲さんのプロポ`ズが曙いたら、	
それはID2なのでoされる。
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
アクセプト(3)	
アクセプト(3)	
3	
3	
3	
恃儲	
恃儲	
アクセプト(3)	
恃儲
プロポ`ザ3繁	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナ`	
3	
3	
3	
恃儲	
恃儲	
恃儲ね	
恃儲
その麿		
?? 弼んなパタ`ンをしても、^磯方のアクセプ
タといずれかのプロポ`ザが伏きているなら、
いずれは栽吭が函れるようになっています。	
?? よくできてますね。。
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
プロポ`ズしていいですか(1)	
お謀い	
お謀い	
お謀い	
0	
	
0	
0	
プロポ`ザ
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
s崩	
s崩	
1	
1	
1	
プロポ`ザ	
いいですよ(1)	
s崩
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(2)	
プロポ`ズしていいですか(2)	
プロポ`ズしていいですか(2)	
お謀い	
お謀い	
お謀い	
1	
	
1	
1
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
いいですよ(2)	
s崩	
s崩	
2	
2	
2	
いいですよ(2)	
s崩
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
椳です。(1)	
椳です(1)	
プロポ`ズ	
プロポ`ズ	
2	
2	
2	
プロポ`ザ	
プロポ`ズ	
椳です(1)
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
リジェクト(2)	
リジェクト(2)	
2	
2	
2	
リジェクト(2)
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ズしていいですか(3)	
プロポ`ズしていいですか(3)	
プロポ`ズしていいですか(3)	
お謀い	
お謀い	
お謀い	
2	
	
2	
2	
プロポ`ザ
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(3)	
いいですよ(3)	
s崩	
s崩	
3	
3	
3	
プロポ`ザ	
いいですよ(3)	
s崩
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
恃儲です。(2)	
恃儲です(2)	
プロポ`ズ	
プロポ`ズ	
3	
3	
3	
プロポ`ズ	
恃儲です(2)
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポ`ザ	
リジェクト(3)	
リジェクト(3)	
3	
3	
3	
リジェクト(3)	
參和、喟hにつづくかも。	
┘薀鵐瀬爐sleep秘れるとか、垢健する。
參和、詞岱しやすい泣を
これらはPaxosのじゃない	
?? トランザクション	
C?Paxosは、^磯方にある、鮟譴韻萄碗發鯣,襪
のであって、レい吭龍での(DB議な)トランザクショ
ンではない。	
?? クラスタメンバ`シップ	
C?とりあえず、メンバ`は耕協。アクセプタがえた
りpったりする栽はg廾箸如(メンバ`シップ
秤鵑Paxosで揖豚したりとか。
これらはPaxosのじゃない	
?? プロポ`ザxk	
C?m輝にどれか1岬をプロポ`ザにする。	
C?クライアントが}方のプロポ`ザをxんで揖rに
e?の戻宛をしても、寄嬋健。	
?? ^磯方に_した瘁の富方箸Qい	
C?g廾貧はデ`タ揖豚させたほうがいいと房うけど、
それはPaxosの翌
これらはPaxosのじゃない	
?? ビザンチン嬾墾	
C? 醤悶議には、	
C? メッセ`ジID臨	
?? s崩されてないIDでプロポ`ズを誘げる	
?? 匯吭じゃないIDというのも、これに根まれると房う。	
C? アクセプタがアクセプトしてない、鯆黌	
C? アクセプタがs崩してないIDを卦す	
C? 吉吉	
?? ^磯方を階える嬾墾	
C? 箭9岬5岬のアクセプタがアクセプトした、と房ったら、その5岬のう
ち1岬が欧譴拭	
C? g喘貧は^磯方、というところを笋┐討△欧譴OK.	
C? 箭今耕嶄5岬にきzめたらOKではなく、9岬嶄7岬にきzめた
らOKにして、アクセプトまでは2岬嬾墾に塚え、リスナ`がチェック
するときは5岬でOKにするとか。
これらはPaxosのじゃない	
?? メッセ`ジIDをどうやって匯吭にするか	
?? Macアドレス	+	シ`ケンス桑催とか。	
?? ノ`ドID	+	シ`ケンス桑催とか。	
C? シ`ケンス桑催揖平を曳べて、揖じだったらノ`ドID
を曳べる。	
C? ノ`ド桑催揖平を曳べて、揖じだったらシ`ケンス桑
催を曳べる。	
C? 噸宥は念宀。瘁宀は、}方プロポ`ザケ`スに駅ず
1岬が戮弔海箸砲覆襪、eにそれでもPaxos議には
}ない。

More Related Content

噸宥の繁でもわかる Paxos