SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
普通の人でもわかるPaxos	
@tyonekura
前提 		
•  一番シンプルなPaxosプロトコル	(Paxos	Made	
Simple)を紹介します。
Paxosとは	
•  ある値を、過半数のノードに書き込むプロトコ
ル。もうちょっと正確には、過半数のノードに
書き込まれた時点で合意したとみなせるプロ
トコル。	
•  途中でネットワークが途切れたり、ノードが死
んだり、生き返ったり、色々しても大丈夫。
登場人物	
•  クライアント	
–  プロポーザに、書き込みをお願いする人	
–  登場人物といっておきながら、話はプロポーザが値を
持ってから始めればいいので、以下登場しません。	
•  プロポーザ	
–  アクセプタの過半数に同じ値を書き込むよう頑張る	
•  アクセプタ	
–  プロポーザから来た値をよきにはからう(後述)	
•  リスナ	
–  最後に、過半数のアクセプタから値をゲット。
基本的な動き(フェーズ1)	
•  フェーズ1a	(プロポーザ側)	
– アクセプタにお伺いをたてる。その際、メッセージ
IDを添える。	
•  フェーズ1b	(アクセプタ側)	
– 初めてのお伺いや、これまで約束したお伺いより
高いIDだったら、約束を返す。もし今までアクセプ
トをしていたら、その値も返す。	
– これまで約束したお伺いより低いIDは無視する。	
オレンジのキーワードは、送られるメッセージの種類を指しています。
基本的な動き(フェーズ2)	
•  フェーズ2a(プロポーザ側)	
–  過半数のアクセプタから約束が返ってこなかったら、
どこかで諦めて、メッセージIDを増やして最初からや
りなおし。	
–  過半数のアクセプタから約束が返ってきたら、メッ
セージIDと値を添えてアクセプタにプロポーズを送る。	
–  プロポーズを送る際に、もしも約束に(ID,	値)の組が
ついて返ってきたら、自分の値を、返ってきた約束の
中で一番高いIDの値で書き換えてプロポーズを送る。
(IDは自分の。なぜなら、約束が返ってきたということ
は、その時点で自分のIDが一番高い。)
基本的な動き(フェーズ2)	
•  フェーズ2b(アクセプタ側)	
– プロポーズのIDが最後に約束したIDか、それより
大きい場合、アクセプトする。	
– プロポーズのIDが最後に約束したIDより小さい場
合、お断りする。
基本的な動き(終わり)	
•  フェーズ2c?	(プロポーザ側)	
– 過半数からアクセプトが返ってきたら終了	
– 過半数に達せずタイムアウトするか、過半数から
お断りされたらメッセージIDを増やして最初に戻
る。	
•  リスナーは、アクセプタに聞いて回って、過半
数のアクセプタが同じ値を持っていたらその
値を信じる。
と、こう書くと 		
•  よくわからなくなる。	
•  たぶん、例が少ないのでわからないのだと思
う。	
•  なので、以下パラパラ漫画
一番単純なケース	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
お伺い	
お伺い	
お伺い	
0	
	
0	
0	
プロポーザ
一番単純なケース	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
いいですよ(1)	
約束	
約束	
約束	
1	
1	
1	
プロポーザ
一番単純なケース	
アクセプタ1	
アクセプタ2	
アクセプタ3	
鈴木です。(1)	
鈴木です(1)	
鈴木です(1)	
プロポーズ	
プロポーズ	
プロポーズ	
1	
1	
1	
プロポーザ
一番単純なケース	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーザ	
アクセプト(1)	
アクセプト(1)	
アクセプト(1)	
1	
1	
1	
鈴木	
鈴木	
鈴木
一番単純なケース	
アクセプタ1	
アクセプタ2	
アクセプタ3	
リスナー	
1	
1	
1	
鈴木	
鈴木	
鈴木	
鈴木ね
アクセプタ一台故障	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
お伺い	
お伺い	
お伺い	
0	
	
0	
0	
プロポーザ
アクセプタ一台故障	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
約束	
約束	
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)	
約束	
約束	
1	
1	
1	
プロポーザ
アクセプタ一台故障と思ったら生き
返った	
アクセプタ1	
アクセプタ2	
アクセプタ3	
鈴木です。(1)	
鈴木です(1)	
プロポーズ	
プロポーズ	
1	
1	
1	
プロポーザ	
プロポーズ	
鈴木です(1)	
約束返ってきてなくてもとりあえずプロポーズする。
アクセプタ一台故障と思ったら生き
返った	
アクセプタ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)	
約束	
約束	
1	
1	
1	
プロポーザ	
いいですよ(1)	
約束
プロポーザ2人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(2)	
プロポーズしていいですか?(2)	
プロポーズしていいですか?(2)	
お伺い	
お伺い	
お伺い	
1	
	
1	
1
プロポーザ2人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
いいですよ(2)	
約束	
約束	
2	
2	
2	
いいですよ(2)	
約束
プロポーザ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	
佐藤	
佐藤	
佐藤ね	
佐藤
もしリスナーが選ぶ前にリトライしたら
敗者復活?	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(3)	
プロポーズしていいですか?(3)	
プロポーズしていいですか?(3)	
お伺い	
お伺い	
お伺い	
2	
2	
2	
佐藤	
佐藤	
佐藤
おや?約束に、他人の名前が。。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(佐藤、2)	
いいですよ(佐藤、2)	
約束	
約束	
いいですよ(佐藤、2)	
約束	
3	
3	
3	
佐藤	
佐藤	
佐藤
なぜ他人の名前で。。せつない。。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
佐藤です。(3)	
佐藤です(3)	
プロポーズ	
プロポーズ	
2	
2	
2	
プロポーズ	
佐藤です(3)	
2	
2	
2	
佐藤	
佐藤	
佐藤	
この後の処理は結果が変わらないので、実装依存
プロポーザ3人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
プロポーズしていいですか?(1)	
お伺い	
お伺い	
お伺い	
0	
	
0	
0	
プロポーザ
プロポーザ3人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(1)	
いいですよ(1)	
約束	
約束	
1	
1	
1	
プロポーザ	
いいですよ(1)	
約束
プロポーザ3人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(2)	
プロポーズしていいですか?(2)	
お伺い	
お伺い	
1	
	
1	
1	
二人目の時、1台不調
プロポーザ3人	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
約束	
1	
2	
2	
いいですよ(2)	
約束
プロポーザ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)	
お伺い
3人目が登場。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
3鈴木	
3	
3佐藤	
いいですよ(1,	鈴木)	
約束	
いいですよ(3)	
約束	
いいですよ(2,	佐藤)	
約束
3人目は佐藤を推す。	
アクセプタ1	
アクセプタ2	
アクセプタ3	
3鈴木	
3	
3佐藤	
佐藤です。(3)	
プロポーズ	
プロポーズ	
プロポーズ	
佐藤です(3)	
佐藤です(3)	
もしこの前に佐藤さんのプロポーズが届いたら、	
それはID2なので無視される。
プロポーザ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)	
約束	
約束	
1	
1	
1	
プロポーザ	
いいですよ(1)	
約束
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーズしていいですか?(2)	
プロポーズしていいですか?(2)	
プロポーズしていいですか?(2)	
お伺い	
お伺い	
お伺い	
1	
	
1	
1
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
いいですよ(2)	
いいですよ(2)	
約束	
約束	
2	
2	
2	
いいですよ(2)	
約束
ライブロック	
アクセプタ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)	
約束	
約束	
3	
3	
3	
プロポーザ	
いいですよ(3)	
約束
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
佐藤です。(2)	
佐藤です(2)	
プロポーズ	
プロポーズ	
3	
3	
3	
プロポーズ	
佐藤です(2)
ライブロック	
アクセプタ1	
アクセプタ2	
アクセプタ3	
プロポーザ	
リジェクト(3)	
リジェクト(3)	
3	
3	
3	
リジェクト(3)	
以下、永遠につづくかも。	
(ランダムでsleep入れるとか、工夫する。)
以下、混乱しやすい点を
これらはPaxosの範疇じゃない	
•  トランザクション	
– Paxosは、過半数にある値を届けて合意を取るも
のであって、広い意味での(DB的な)トランザクショ
ンではない。	
•  クラスタメンバーシップ	
– とりあえず、メンバーは固定。アクセプタが増えた
り減ったりする場合は実装側で。(メンバーシップ
情報をPaxosで同期したりとか。)
これらはPaxosの範疇じゃない	
•  プロポーザ選択	
– 適当にどれか1台をプロポーザにする。	
– クライアントが複数のプロポーザを選んで同時に
別々の提案をしても、大丈夫。	
•  過半数に達した後の少数側の扱い	
– 実装上はデータ同期させたほうがいいと思うけど、
それはPaxosの範疇外
これらはPaxosの範疇じゃない	
•  ビザンチン障害	
–  具体的には、	
–  メッセージID偽装	
•  約束されてないIDでプロポーズを投げる	
•  一意じゃないIDというのも、これに含まれると思う。	
–  アクセプタがアクセプトしてない値を捏造	
–  アクセプタが約束してないIDを返す	
–  等等	
•  過半数を超える障害	
–  例:9台5台のアクセプタがアクセプトした、と思ったら、その5台のう
ち1台が壊れた。	
–  実用上は過半数、というところを変えてあげればOK.	
–  例:9台中5台に書き込めたらOKではなく、9台中7台に書き込めた
らOKにして、アクセプトまでは2台障害に耐え、リスナーがチェック
するときは5台でOKにするとか。
これらはPaxosの範疇じゃない	
•  メッセージIDをどうやって一意にするか	
•  Macアドレス	+	シーケンス番号とか。	
•  ノードID	+	シーケンス番号とか。	
–  シーケンス番号同士を比べて、同じだったらノードID
を比べる。	
–  ノード番号同士を比べて、同じだったらシーケンス番
号を比べる。	
–  普通は前者。後者は、複数プロポーザケースに必ず
1台が勝つことになるが、別にそれでもPaxos的には
問題ない。

Weitere ähnliche Inhalte

Was ist angesagt?

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutesShingo Omura
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi UmedaInsight Technology, Inc.
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Transactional Information Systems入門
Transactional Information Systems入門Transactional Information Systems入門
Transactional Information Systems入門nobu_k
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法Sho Nakazono
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 

Was ist angesagt? (20)

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Paxos
PaxosPaxos
Paxos
 
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
[C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Transactional Information Systems入門
Transactional Information Systems入門Transactional Information Systems入門
Transactional Information Systems入門
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 

普通の人でもわかる Paxos