Mercurial > hg > Papers > 2019 > aka-thesis
diff slide/slide.md @ 13:117794d50054
update
author | akahori |
---|---|
date | Tue, 19 Feb 2019 21:49:55 +0900 |
parents | 2e843f65ac5f |
children | 22e7e5667b99 |
line wrap: on
line diff
--- a/slide/slide.md Tue Feb 19 15:28:07 2019 +0900 +++ b/slide/slide.md Tue Feb 19 21:49:55 2019 +0900 @@ -6,7 +6,7 @@ # 目次 -- OS単位での分散システム +- 研究目的 - ブロックチェーンとは - ブロックチェーンのfork - コンセンサスアルゴリズム @@ -16,7 +16,7 @@ - PCクラスタ上でPaxosを動かした話 - まとめ -# OS単位での分散システム +# 研究目的 OS単位での分散システム - コンピュータでデータが壊れることはあり得る. 誤操作や, データの破損, 最悪の場合システムの重要な部分のデータの破損も起こりうる. - ブロックチェーンはデータを分散でき, 破損や不整合の検知が可能である. @@ -72,47 +72,56 @@ - プライベートブロックチェーンは管理者が許可するノードしか参加しない. つまり, レベル3のコンセンサスアルゴリズムで十分. - 新しいブロックもパブリックブロックチェーンより早く作れる. -- コンセンサスアルゴリズムの中でPaxosが速いらしいので, 今回はこちらも実装してみます. +- コンセンサスアルゴリズムの中でPaxosを実装します. # Paxos - Lamport先生が「故障モデルレベル3での合意が不可能なのを証明してやる」と言って証明の途中で逆に編み出してしまったらしいアルゴリズム. - レベル3のアルゴリズムの基礎となっている. -- proposerが値を提案し, acceptorが決め, Learnerが集計して多数決を取って決まった値を保持. +- proposerが値を提案し, acceptorが決め, Learnerが集計し, 多数決を取って決まった値を保持. -# Paxos説明の前の用語説明 -- - -# [25行でわかるPaxosアルゴリズム](http://nil.csail.mit.edu/6.824/2015/notes/paxos-code.html) - -- Proposerは +# Paxos +とりあえず, このアルゴリズムで値が一意に決まる. # Christieとは - 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク. - Continued based C(CbC)と似た書き方が可能. -- まだAliceから引き継いでない機能でTopologyManagerというものがあるので, それも実装. +- まだAliceから引き継いでない機能でTopologyManagerというものがある. これは, Topologyを構成するための機能. +- 簡単に言えば, ノード間の配線をしてくれる. 分散環境上で実験を行いたい場合に便利なため, これを実装してからPaxosを実装した. # TopologyManagerとは - TopologyManagerは参加を表明したノード(TopologyNode)を元にTopologyを作る. - TopologyManagerは静的Topologyと動的Topologyを作れる. - 静的Topologyはdotファイルというものを読み込んで, そのとおりにTopologyを生成する. -- 動的Topologyは参加を表明したノードを動的に配置する. が, 今はTreeしか実装していません. +- 動的Topologyは参加を表明したノードを動的に配置する. が, 今はTreeしか実装していない. # PCクラスタ上でPaxosを動かした話 - ブロックチェーンにおいて, 分散環境上でテストしなければいけないのはコンセンサスアルゴリズムである. そのため, Paxosを実装し, 実際の分散環境上で動かした. - 評価は値が一意に決まるかどうかである. 値が一意に決まるならば, リーダーがコンセンサスをとっても良いし, ブロックについてコンセンサスをとっても良い. - 今回は単純化のために, 整数でコンセンサスを取る. +- また, ノードはproposerが2つ, acceptorが3つ, learnerが1つという構成で実験する. +# Paxos実験1 -# 実験1 +<div style="text-align: center;"> + <img src="./images/paxos1.svg" alt="blockchain" width="1000" height="800"> +</div> + +# Paxos実験2 -# 実験2 +<div style="text-align: center;"> + <img src="./images/paxos2.svg" alt="blockchain" width="1000" height="1000"> +</div> -# 実験3 +# Paxos実験3 + +<div style="text-align: center;"> + <img src="./images/paxos3.svg" alt="blockchain" width="1000" height="1000"> +</div> # まとめ