Mercurial > hg > Papers > 2019 > aka-thesis
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
--- 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}