# HG changeset patch
# User akahori
# Date 1550635296 -32400
# Node ID 1bbebae0635c840b0fccc41034993c0c63a6c0fb
# Parent 8296b649f53e4d54e2c9c3d0e4ad462c977ed5c4
update slide
diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.graffle
Binary file slide/images/paxos-choice.graffle has changed
diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.pdf
Binary file slide/images/paxos-choice.pdf has changed
diff -r 8296b649f53e -r 1bbebae0635c slide/images/paxos-choice.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slide/images/paxos-choice.svg Wed Feb 20 13:01:36 2019 +0900
@@ -0,0 +1,574 @@
+
+image/svg+xml
\ No newline at end of file
diff -r 8296b649f53e -r 1bbebae0635c slide/images/ring.pdf
Binary file slide/images/ring.pdf has changed
diff -r 8296b649f53e -r 1bbebae0635c slide/images/ring.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slide/images/ring.svg Wed Feb 20 13:01:36 2019 +0900
@@ -0,0 +1,192 @@
+
+image/svg+xml
\ No newline at end of file
diff -r 8296b649f53e -r 1bbebae0635c slide/slide.html
--- a/slide/slide.html Wed Feb 20 11:40:41 2019 +0900
+++ b/slide/slide.html Wed Feb 20 13:01:36 2019 +0900
@@ -86,7 +86,7 @@
@@ -96,14 +96,10 @@
-
研究目的 OS単位での分散システム
+
OS単位での分散システム
- コンピュータのデータに不整合が起こるはあり得る. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる.
+ コンピュータのデータに不整合は起こり得る. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる.
ブロックチェーンはデータを分散でき, 不整合の検知が可能である.
当研究室ではGearsOS, そしてGearsOSに組み込む予定がある分散フレームワークChristieがある.
- Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散システムが可能になる. また, 分散システムを作らずとも, hash chainとしてデータの不整合を検知できる.
+ Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散システムを構成することが可能になる. また, 分散システムを作らずとも, hash chainとしてデータの不整合を検知できる.
よって, Christieにブロックチェーンを実装する.
@@ -129,13 +125,7 @@
ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である.
-
ノード同士はP2Pでつながっており, 対等である. そのため, 管理者がいなくてもデータの管理が行える.
-
-
-
-
-
-
ブロックチェーンとは
+
ノード同士はP2Pでつながっており対等である. そのため, 管理者がいなくてもデータの管理が行える.
@@ -145,39 +135,7 @@
-
ブロックチェーンとは
-
-
ブロックチェーンにも種類がある. パブリックブロックチェーンとプライベートブロックチェーンである. 以下に, その違いを述べる.
-
-
-
-
-
- パブリックブロックチェーン
- プライベートブロックチェーン
-
-
-
-
- ノードの参加権
- 誰でも参加可能
- 許可された場合のみ参加可能
-
-
- コンセンサス
- 遅い
- 速い
-
-
-
-
-
細かい違いは色々あるが, ほとんどはこの2つの違いから生まれる.
-
-
-
-
-
-
コンセンサスアルゴリズム
+
コンセンサスアルゴリズム
コンセンサスアルゴリズムは分散環境上で値を一意に決めるためのアルゴリズムである.
@@ -186,19 +144,18 @@
故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く.
-
Proof of Workを使っているパブリックブロックチェーンは「ブロックが多ければ多いほど」, レベル4に近づく.
-
プライベートブロックチェーンのコンセンサスアルゴリズム
+
プライベートブロックチェーンのコンセンサスアルゴリズム
プライベートブロックチェーンは管理者が許可するノードしか参加しない. つまり, レベル3のコンセンサスアルゴリズムで十分.
新しいブロックもパブリックブロックチェーンより早く作れる.
- Paxosを実装しました.
+ よってPaxosを実装しました.
@@ -215,6 +172,10 @@
これによって, 値が一意に決まる.
+
+
+
+
@@ -222,7 +183,12 @@
Christieとは
- 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク.
+ 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク.
+
+ データの取り出しをアノテーションを用いてシンプルに記述することができるようになった. そのため, ソースコードの可視性が上がった.
+ テストが簡単になった. AliceではLocalDataGearManagerを一つしか持てないため, LocalDataGearManagerの通信のテストが難しかった. Christieは複数のLocalDataGearManagerを持てるようになったため, 1つのアプリケーション内で分散のテストができるようになった.
+
+
Continued based C(CbC)と似た書き方が可能. DataGearという単位でDataの移動ができる.
まだAliceから引き継いでない機能でTopologyManagerというものがある. これは, Topologyを構成するための機能.
簡単に言えば, ノード間の配線をしてくれる. 分散環境上で実験を行いたい場合に便利なため, これを実装してからPaxosを実装した.
@@ -268,17 +234,7 @@
-
Paxos実験1
-
-
-
-
-
-
-
-
-
-
PCクラスタ上でPaxosを動かした話
+
PCクラスタ上でのPaxosの実行
ブロックチェーンにおいて, 分散環境上でテストしなければいけないのはコンセンサスアルゴリズムである. そのため, Paxosを実装し, 実際の分散環境上で動かした.
@@ -292,11 +248,21 @@
-
まとめ
+
Paxos実行結果1
+
+
+
+
+
+
+
+
+
+
まとめ
- Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装しました.
- これらを繋げてブロックチェーンにできれば, Christieにブロックチェーンが実装できます. パブリックブロックチェーンもプライベートブロックチェーンもどちらも作れる. 2つ作って速度比較も行える.
+ Christieを用いてコンセンサスアルゴリズムのPaxos, ブロック, トランザクション, proof of workも実装した.
+ これらを繋げてブロックチェーンにできれば, Christieにブロックチェーンが実装できる. パブリックブロックチェーンもプライベートブロックチェーンもどちらも作れる. 2つ作って速度比較も行える.
diff -r 8296b649f53e -r 1bbebae0635c slide/slide.md
--- a/slide/slide.md Wed Feb 20 11:40:41 2019 +0900
+++ b/slide/slide.md Wed Feb 20 13:01:36 2019 +0900
@@ -11,12 +11,12 @@
- コンセンサスアルゴリズム
- Christieとは
- TopologyManagerの実装
-- PCクラスタ上でPaxosを動かした話
+- PCクラスタ上でPaxosの実行
- まとめ
-# 研究目的 OS単位での分散システム
+# OS単位での分散システム
-- コンピュータのデータに不整合は起こりえます. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる.
+- コンピュータのデータに不整合は起こり得る. 不整合は誤操作や, 複数人によるデータの同時書き込みによって起こる.
- ブロックチェーンはデータを分散でき, 不整合の検知が可能である.
- 当研究室ではGearsOS, そしてGearsOSに組み込む予定がある分散フレームワークChristieがある.
- Christieにブロックチェーンを実装し, GearsOSに組み込むことで, GearsOS間の分散システムを構成することが可能になる. また, 分散システムを作らずとも, hash chainとしてデータの不整合を検知できる.
@@ -26,37 +26,23 @@
ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である.
-ノード同士はP2Pでつながっており, 対等である. そのため, 管理者がいなくてもデータの管理が行える.
-
-# ブロックチェーンとは
-
-# ブロックチェーンとは
-ブロックチェーンにも種類がある. パブリックブロックチェーンとプライベートブロックチェーンである. 以下に, その違いを述べる.
-
-| | パブリックブロックチェーン | プライベートブロックチェーン |
-|:-----------:|:------------:|:------------:|
-| ノードの参加権 | 誰でも参加可能 | 許可された場合のみ参加可能 |
-| コンセンサス | 遅い | 速い |
-
-細かい違いは色々あるが, ほとんどはこの2つの違いから生まれる.
# コンセンサスアルゴリズム
- コンセンサスアルゴリズムは分散環境上で値を一意に決めるためのアルゴリズムである.
- Paxos, Raftなどが有名. 簡単に言えば多数決を安全に行うためのアルゴリズム.
- 故障モデルというものがあって, コンセンサスアルゴリズムでレベルが4段階ある. Paxos, Raftはレベル3で, ノードに裏切り者がいなければ安全に動く.
-- Proof of Workを使っているパブリックブロックチェーンは「ブロックが多ければ多いほど」, レベル4に近づく.
# プライベートブロックチェーンのコンセンサスアルゴリズム
- プライベートブロックチェーンは管理者が許可するノードしか参加しない. つまり, レベル3のコンセンサスアルゴリズムで十分.
- 新しいブロックもパブリックブロックチェーンより早く作れる.
-- Paxosを実装しました.
+- よってPaxosを実装しました.
# Paxos
@@ -66,10 +52,16 @@
これによって, 値が一意に決まる.
+
+
+
+
# Christieとは
- 研究室で使っていたAliceの問題点を解消した, 分散プログラミングを簡単に書けるjavaのフレームワーク.
+ - データの取り出しをアノテーションを用いてシンプルに記述することができるようになった. そのため, ソースコードの可視性が上がった.
+ - テストが簡単になった. AliceではLocalDataGearManagerを一つしか持てないため, LocalDataGearManagerの通信のテストが難しかった. Christieは複数のLocalDataGearManagerを持てるようになったため, 1つのアプリケーション内で分散のテストができるようになった.
- Continued based C(CbC)と似た書き方が可能. DataGearという単位でDataの移動ができる.
- まだAliceから引き継いでない機能でTopologyManagerというものがある. これは, Topologyを構成するための機能.
- 簡単に言えば, ノード間の配線をしてくれる. 分散環境上で実験を行いたい場合に便利なため, これを実装してからPaxosを実装した.
@@ -91,8 +83,6 @@
-
-
# Christieによる実装の利点
ブロックチェーンの実装に伴ってわかったChristieの利点を述べる.
@@ -101,13 +91,8 @@
- TopologyManagerでのテストが便利. dotファイルが有れば, TopologyManagerが任意の形でTopologyを作れる. そのため, ノードの配置について理想のテスト環境を作ることができる.
- ソースコードの機能ごとにファイルが実装できるため, 見通しが良い. ChristieはCbCのgotoと同じように関数が終わるとsetupによって別の関数に移動する. そのため自然に機能ごとにファイルを作るため, 見通しが良くなった.
-# Paxos実験1
-