changeset 15:2e706e8bb6bd

fix pre DG, CG...etc
author akahori
date Wed, 20 Feb 2019 02:43:24 +0900
parents 38f2c997bb93
children 22e7e5667b99
files final_pre/pre.pdf final_pre/pre.tex
diffstat 2 files changed, 11 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
Binary file final_pre/pre.pdf has changed
--- a/final_pre/pre.tex	Tue Feb 19 22:54:56 2019 +0900
+++ b/final_pre/pre.tex	Wed Feb 20 02:43:24 2019 +0900
@@ -133,7 +133,7 @@
 
 2つの方法はメッセージ通信量と耐障害性のトレードオフになっていることがわかる.
 
-Paxosでコンセンサスを取ることは, Proof of Workと比較して次のようなメリットがある.
+Paxosでコンセンサスを取ることは, パブリックブロックチェーンで使われているProof of Workによるコンセンサスと比較して次のようなメリットがある.
 
 \begin{itemize}
 \item CPUのリソースを消費しない
@@ -145,17 +145,17 @@
 Christieは当研究室で開発している分散フレームワークである. ChristieはJavaで書かれているが, 当研究室で開発しているGearsOSに組み込まれる予定がある. そのため, GearsOSを構成する言語Continuation based Cと似た概念がある. Christieに存在する概念として次のようなものがある.
 
 \begin{itemize}
-\item CodeGear(以下CG)
-\item DataGear(以下DG)
-\item CodeGearManager(以下CGM)
-\item DataGearManager(以下DGM)
+\item CodeGear
+\item DataGear
+\item CodeGearManager
+\item DataGearManager
 \end{itemize}
 
-CGはクラス, スレッドに相当し, DGは変数データに相当する. CGMはノードであり, DGM, CG, DGを管理する. DGMはDGを管理するものであり, putという操作により変数データ, つまりDGを格納できる. 
+CodeGearはクラス, スレッドに相当し, DataGearは変数データに相当する. CodeGearManagerはノードであり, DateGearManager, CodeGear, DataGearを管理する. DateGearManagerはDataGearを管理するものであり, putという操作により変数データ, つまりDataGearを格納できる. 
 
-DGMにはLocalとRemoteと2つの種類があり, Localであれば, LocalのCGMが管理しているDGMに対し, DGを格納していく. Remoteであれば接続したRemote先のCGMのDGMにDGを格納できる. DGを取り出す際にはアノテーションを付けることで, データの取り出し方も指定できる. Take, Peekという操作があり, Takeは読み込んだDGが消えるが, PeekはDGを消さずにそのまま残す. また, RemoteTake, RemotePeekというものもあり, リモート先を指定することにより, RemoteDGMからデータを取ることができる.
+DateGearManagerにはLocalとRemoteと2つの種類があり, Localであれば, LocalのCodeGearManagerが管理しているDateGearManagerに対し, DateGearを格納していく. Remoteであれば接続したRemote先のCodeGearManagerのDateGearManagerにDateGearを格納できる. DateGearを取り出す際にはアノテーションを付けることで, データの取り出し方も指定できる. Take, Peekという操作があり, Takeは読み込んだDateGearが消えるが, PeekはDateGearを消さずにそのまま残す. また, RemoteTake, RemotePeekというものもあり, リモート先を指定することにより, RemoteDateGearManagerからデータを取ることができる.
 
-CGはCGMによって実行されるが, 実行するにはCGに必要なDGが全て揃う必要がある. もしDGが全て揃わない場合, CGMはずっとlistenし, データが揃うまで実行を待つ.
+CGはCodeGearManagerによって実行されるが, 実行するにはCodeGearに必要なDateGearが全て揃う必要がある. もしDateGearが全て揃わない場合, CodeGearManagerはずっとlistenし, データが揃うまで実行を待つ.
 
 \section{Christieでのブロックチェーンの実装}
 Christieでブロックチェーンのブロック, トランザクション, Paxosを実装した. 
@@ -171,9 +171,9 @@
 不便な点を以下に述べる.
 
 \begin{itemize}
-\item デバッグが難しい. DGでのkeyのスペルミスなどが起こると, CodeGearが実行されず, waitされる問題が出る.
-\item TakeFrom, PeekFromの使い方が難しい. TakeFrom, PeekFromは引数でDGM nameを指定する. しかし, DGMの名前を静的に与えるよりも, 動的に与えたい場合が多かった.
-\item Takeの待ち合わせでCGが実行されない. 2つのCGで同じ変数をTakeしようとすると, setupされた時点で変数がロックされる. このとき, 片方のCGはDGがすべて揃っているのに, すべての変数が揃っていないもう片方のCGに同名の変数がロックされ, 実行されない場合がある. 
+\item デバッグが難しい. DataGearでのkeyのスペルミスなどが起こると, CodeGearが実行されず, waitする. この場合, 標準出力には何も出ないため, どこで止まっているか, ただ変数を待っているだけなのかという判断が難しい.
+\item TakeFrom, PeekFromの使い方が難しい. TakeFrom, PeekFromは引数でDGM nameを指定する. しかし, DateGearManagerの名前を静的に与えるよりも, 動的に与えたい場合が多かった.
+\item Takeの待ち合わせでCodeGearが実行されない. 2つのCodeGearで同じ変数をTakeしようとすると, setupされた時点で変数がロックされる. このとき, 片方のCodeGearはDataGearがすべて揃っているのに, すべての変数が揃っていないもう片方のCodeGearに同名の変数がロックされ, 実行されない場合がある. 
 \end{itemize}