Mercurial > hg > Papers > 2018 > nozomi-master
changeset 161:cc301066b983
add chapter1 mindmap
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 03 Feb 2018 20:00:43 +0900 (2018-02-03) |
parents | e20f743b5418 |
children | 15fed7e1263e |
files | chapter1.mm index.mm paper/nozomi-master.tex |
diffstat | 3 files changed, 94 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chapter1.mm Sat Feb 03 20:00:43 2018 +0900 @@ -0,0 +1,81 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1517639885264" ID="ID_1456266021" MODIFIED="1517649618752" TEXT="分散フレームワークへの要求"> +<node CREATED="1517639896784" ID="ID_1392837912" MODIFIED="1517649630318" POSITION="right" TEXT="要求事項"> +<node CREATED="1517639908345" ID="ID_1814952860" MODIFIED="1517639913741" TEXT="信頼性"> +<node CREATED="1517640043533" ID="ID_1872729786" MODIFIED="1517641776770" TEXT="定められた環境下で安定して仕様に従った動作を行うこと"> +<node CREATED="1517641777340" ID="ID_1124575966" MODIFIED="1517641786335" TEXT="仕様を記述しやすいこと"> +<node CREATED="1517643751033" ID="ID_1609822651" MODIFIED="1517643758092" TEXT="可読性がバグを抑える"/> +</node> +<node CREATED="1517641615641" ID="ID_1949135210" MODIFIED="1517641667342" TEXT="分散性を意識して書けるプロトコルとそれを信頼性高く動かす環境"/> +</node> +</node> +<node CREATED="1517639914032" ID="ID_1831889200" MODIFIED="1517639917192" TEXT="スケーラビリティ"> +<node CREATED="1517640055580" ID="ID_718149200" MODIFIED="1517640057010" TEXT="分散ソフトウェアに対して単純にノードを 追加するだけで性能を線形的に上昇させることができる性質"/> +<node CREATED="1517641818884" ID="ID_1201918526" MODIFIED="1517641835319" TEXT="拡張があったとき、できるだけ仕様を変更することなく記述できること"/> +</node> +</node> +<node CREATED="1517639946066" ID="ID_1859525676" MODIFIED="1517639956125" POSITION="right" TEXT="しかしそれらの記述は容易ではない"/> +<node CREATED="1517640070838" ID="ID_292966082" MODIFIED="1517640077416" POSITION="right" TEXT="Akkaでは"> +<node CREATED="1517640078256" ID="ID_562974138" MODIFIED="1517649427560" TEXT="信頼性(どんなプロトコルと記述?)"> +<node CREATED="1517640082329" ID="ID_476332761" MODIFIED="1517640091606" TEXT="アクターモデルでの非同期メッセージパッシング"> +<node CREATED="1517640136278" ID="ID_888508971" MODIFIED="1517640147254" TEXT="ケース文でわける"> +<node CREATED="1517640874767" ID="ID_222143205" MODIFIED="1517640883560" TEXT="複数のインプットを待つときに見づらい"/> +<node CREATED="1517640169940" ID="ID_1326641875" MODIFIED="1517640189162" TEXT="受け取ったデータで通信が一箇所集中してケース文が多くなる問題"/> +</node> +<node CREATED="1517640175850" ID="ID_1543233769" MODIFIED="1517640885545" TEXT="トポロジー的にどこにいくのか明確ではない"/> +</node> +</node> +<node CREATED="1517640100184" ID="ID_1532356866" MODIFIED="1517649459500" TEXT="スケーラビリティ(用意されているメタ)"> +<node CREATED="1517640920295" ID="ID_757657582" MODIFIED="1517640926688" TEXT="AkkaCluster"> +<node CREATED="1517655472387" ID="ID_1149611169" MODIFIED="1517655481648" TEXT="クラスタリング機能。KeepAliveあり"/> +</node> +<node CREATED="1517642926459" ID="ID_201834707" MODIFIED="1517654547041" TEXT="NAT越え"> +<node CREATED="1517654497003" ID="ID_1551417878" MODIFIED="1517654664402" TEXT="NATの設定をオンにしてプライベートとグローバルのipアドレス記述しなければならない"/> +<node CREATED="1517654514913" ID="ID_1994309052" MODIFIED="1517654526209" TEXT="プライベートアドレスを指定した場合でもグローバルアドレスからのアクセスを受けれる"/> +</node> +<node CREATED="1517655032486" ID="ID_1381625585" MODIFIED="1517655034602" TEXT="圧縮"> +<node CREATED="1517655589770" ID="ID_555437827" MODIFIED="1517655591542" TEXT="ユーザがzip/unzipを呼ばなければならない"/> +</node> +</node> +</node> +<node CREATED="1517640110954" ID="ID_1574294271" MODIFIED="1517640115678" POSITION="right" TEXT="Hazelcastでは"> +<node CREATED="1517641246512" ID="ID_1824306437" MODIFIED="1517649436578" TEXT="信頼性(どんなプロトコルと記述?)"> +<node CREATED="1517645390188" ID="ID_562382539" MODIFIED="1517649350818" TEXT="キーと値の1対1でデータを管理インメモリ・データグリッド"> +<node CREATED="1517649277675" ID="ID_1581252535" MODIFIED="1517649581233" TEXT="複数のサーバが同じメモリを持っているように扱う?"/> +<node CREATED="1517647444870" ID="ID_1010639767" MODIFIED="1517652069585" TEXT="どこに投げるか意識しない"/> +<node CREATED="1517652047551" ID="ID_492718831" MODIFIED="1517652057195" TEXT="どんなトポロジーかよくわかんない"/> +<node CREATED="1517652148854" ID="ID_1791473644" MODIFIED="1517654179121" TEXT="Akkaと同じでメッセージリスナーから受け取ったデータをさばく?"/> +</node> +</node> +<node CREATED="1517641249163" ID="ID_382675306" MODIFIED="1517649465432" TEXT="スケーラビリティ(用意されているメタ)"> +<node CREATED="1517652654312" ID="ID_1703828709" MODIFIED="1517652691196" TEXT="具体的なトポロジーを記述するための機能はない"/> +<node CREATED="1517642789721" ID="ID_1193981162" MODIFIED="1517642803778" TEXT="NAT越えなし"/> +<node CREATED="1517654969015" ID="ID_478946416" MODIFIED="1517655512740" TEXT="圧縮に使えるシリアライザはあるが、ユーザがzip/unzipを呼ばなければならない"/> +</node> +</node> +<node CREATED="1517640211270" ID="ID_814028112" MODIFIED="1517640213822" POSITION="right" TEXT="Aliceでは"> +<node CREATED="1517640216233" ID="ID_229661189" MODIFIED="1517640320811" TEXT="信頼性"> +<node CREATED="1517640219379" ID="ID_1243846355" MODIFIED="1517640227429" TEXT="CS/DSによる記述"> +<node CREATED="1517640228428" ID="ID_1076955958" MODIFIED="1517640852726" TEXT="インプットがわかりやすい"/> +<node CREATED="1517652822074" ID="ID_1939621873" MODIFIED="1517652831700" TEXT="複数のインプットの待ち合わせが簡単"/> +</node> +<node CREATED="1517641918028" ID="ID_320660653" MODIFIED="1517641923808" TEXT="DGMを通した通信"> +<node CREATED="1517641932677" ID="ID_1587202722" MODIFIED="1517641944779" TEXT="DGM名とkeyで指定"/> +<node CREATED="1517640853299" ID="ID_717955904" MODIFIED="1517640854300" TEXT="プロトコルとトポロジーを綺麗に記述できる"/> +</node> +</node> +<node CREATED="1517640289377" ID="ID_621727815" MODIFIED="1517649471400" TEXT="スケーラビリティ(用意されているメタ)"> +<node CREATED="1517640292149" ID="ID_1696068134" MODIFIED="1517640297907" TEXT="Meta Computation"> +<node CREATED="1517640298432" ID="ID_1446452598" MODIFIED="1517649497129" TEXT="TopologyManager"> +<node CREATED="1517641052633" ID="ID_1901942381" MODIFIED="1517641090468" TEXT="簡単に分散トポロジーにノードの追加ができる"/> +<node CREATED="1517641282796" ID="ID_1309059520" MODIFIED="1517642964180" TEXT="NAT超えも実装できればよりスケーラブルな環境が提供できる"/> +</node> +<node CREATED="1517641555723" ID="ID_1694410938" MODIFIED="1517655026043" TEXT="仕様変更を抑えたデータ形式の変更"/> +</node> +</node> +</node> +<node CREATED="1517641576766" ID="ID_635736281" MODIFIED="1517643002604" POSITION="right" TEXT="NAT越えを実装しようとしたが今のAliceでは困難であると判明"/> +<node CREATED="1517640214443" ID="ID_12686996" MODIFIED="1517643014382" POSITION="right" TEXT="更に今よりもユーザーフレンドリーなシンタックスにすることで分散計算の見通しを良くする"/> +</node> +</map>
--- a/index.mm Sat Feb 03 15:04:47 2018 +0900 +++ b/index.mm Sat Feb 03 20:00:43 2018 +0900 @@ -9,51 +9,6 @@ <node CREATED="1512457217499" ID="ID_1872250590" MODIFIED="1512460453092" TEXT="Aliceを作成した"/> <node CREATED="1512460509028" ID="ID_1810651531" MODIFIED="1512460680057" TEXT="シンプルに拡張性高く記述できる環境の必要性"/> <node CREATED="1512457230570" ID="ID_1571884420" MODIFIED="1512460432675" TEXT="Aliceの成果と問題点"/> -<node CREATED="1512457235327" ID="ID_1111066763" MODIFIED="1512458999970" TEXT="Christieの設計しプロトタイプを実装する"/> -<node CREATED="1517543980925" ID="ID_1799218274" MODIFIED="1517543987079" TEXT="分散システムは難しい"> -<node CREATED="1517544182435" ID="ID_1601386280" MODIFIED="1517544186926" TEXT="プログラミングが難しい"> -<node CREATED="1517544065788" ID="ID_555736412" MODIFIED="1517544180290" TEXT="障害耐性"/> -<node CREATED="1517549802069" ID="ID_1506525076" MODIFIED="1517549803800" TEXT="システム全体が見えない"/> -</node> -<node CREATED="1517544187431" ID="ID_1898975875" MODIFIED="1517548789467" TEXT="資源の取り合い(ロック)を考慮しつつスピードを出す"/> -</node> -<node CREATED="1517542737350" ID="ID_1444632965" MODIFIED="1517544038447" TEXT="分散システムの必要要件"> -<node CREATED="1517542752906" ID="ID_1254703676" MODIFIED="1517557590834" TEXT="信頼性"> -<node CREATED="1517543829532" ID="ID_1293416780" MODIFIED="1517557672548" TEXT="仕様どおりに動くということ"> -<node CREATED="1517543962301" ID="ID_639139511" MODIFIED="1517543966544" TEXT="ロックを意識しない?"/> -<node CREATED="1517557676628" ID="ID_994091497" MODIFIED="1517557679560" TEXT="可読性"/> -</node> -<node CREATED="1517542765190" ID="ID_302487288" MODIFIED="1517542771081" TEXT="フォールト・トレランス"/> -</node> -<node CREATED="1517542755693" ID="ID_885835495" MODIFIED="1517557665992" TEXT="スケーラビリティ"> -<node CREATED="1517542780761" ID="ID_1513434198" MODIFIED="1517542786648" TEXT="ノードを自由に追加"/> -<node CREATED="1517542787493" ID="ID_1288523093" MODIFIED="1517542792777" TEXT="仕様変更を抑えた拡張"> -<node CREATED="1517543867650" ID="ID_1147926768" MODIFIED="1517543879227" TEXT="10台でも100台でも同じように動く"/> -<node CREATED="1517543880006" ID="ID_692317418" MODIFIED="1517543892666" TEXT="そのためにコードを大きく変えない"/> -</node> -</node> -</node> -<node CREATED="1517542843966" ID="ID_1031140471" MODIFIED="1517542848907" TEXT="Akkaの場合"> -<node CREATED="1517544044914" ID="ID_106241501" MODIFIED="1517544047313" TEXT="信頼性"> -<node CREATED="1517556404116" ID="ID_1981449028" MODIFIED="1517556411439" TEXT="メッセージパッシングによる非同期通信"/> -<node CREATED="1517556444851" ID="ID_607635391" MODIFIED="1517556817081" TEXT="let it crash、アクターを監視するアクターなど、複雜な処理ができるActorが用意されている"/> -</node> -<node CREATED="1517544047920" ID="ID_770563747" MODIFIED="1517544049819" TEXT="スケーラビリティ"> -<node CREATED="1517557523867" ID="ID_1387691789" MODIFIED="1517557529627" TEXT="Akkaクラスター"/> -</node> -</node> -<node CREATED="1517542849453" ID="ID_1719782056" MODIFIED="1517542854527" TEXT="Hezelcastの場合"/> -<node CREATED="1517542854845" ID="ID_1020453853" MODIFIED="1517542857926" TEXT="Aliceの場合"> -<node CREATED="1517544430102" ID="ID_693513638" MODIFIED="1517556846678" TEXT="信頼性"> -<node CREATED="1517556922634" ID="ID_1639316883" MODIFIED="1517556930653" TEXT="CS/DSでのプログラミングスタイル。"/> -<node CREATED="1517556943132" ID="ID_353510248" MODIFIED="1517556961955" TEXT="KeepAliveでの障害対応"/> -</node> -<node CREATED="1517556847130" ID="ID_521653971" MODIFIED="1517556849446" TEXT="スケーラビリティ"> -<node CREATED="1517556962500" ID="ID_191391626" MODIFIED="1517557230602" TEXT="データ表現を容易に変更可能"/> -<node CREATED="1517557335241" ID="ID_387946457" MODIFIED="1517557340043" TEXT="TopologyManager"/> -</node> -</node> -<node CREATED="1517555947659" ID="ID_1297372287" MODIFIED="1517555964199" TEXT="さらにシンタックスの向上、拡張性の向上を目指す"/> </node> <node CREATED="1512456776555" ID="ID_106984894" MODIFIED="1512459010262" POSITION="left" TEXT="Aliceの問題点"> <node CREATED="1512457149099" ID="ID_31182128" MODIFIED="1512457155410" TEXT="APIがわかりづらい">
--- a/paper/nozomi-master.tex Sat Feb 03 15:04:47 2018 +0900 +++ b/paper/nozomi-master.tex Sat Feb 03 20:00:43 2018 +0900 @@ -188,6 +188,12 @@ \begin{itemize} \item {\ttfamily void put(String managerKey, String key, Object val)} \end{itemize} +putとupdate、flipはOutput DS APIと呼ばれ、DSをDSMに保存する際に用いる。 +peekとtakeはInput DS APIと呼ばれ、DSをDSMから取得する際に使用する。 + +\begin{itemize} +\item {\ttfamily void put(String managerKey, String key, Object val)} +\end{itemize} DSをDSMに追加するためのAPIである。第一引数はLocal DSMかRemote DSMかといったManager名を指定する。そし て第二引数で指定されたkeyに対応するDSとして第三引数の値を追加する。 @@ -740,6 +746,12 @@ \chapter{まとめ} +%設計しなおしでNAT越えなどの機能拡張が期待できる +%スケーラブルになった +%テストしやすくなった +%また、アノテーションを用いたことでよりユーザーフレンドリーなAPIを実現した。 +%型を気にしなくて良くなった +%信頼性を高めた \chapter{今後の課題} \section{TopologyManagerの実装} @@ -749,7 +761,7 @@ \section{実用性の検証} -%Aliceと同等の性能を持っているかを測定する必要がある。 +%Aliceと同等の性能を持っているかを分散処理の例題を用いて測定する必要がある。 \section{GearsOSへの移行} GearsOSはまだ開発途中であったため、本論文の作成時点ではChristieのような分散機能を実装することが叶わなかった。 @@ -820,12 +832,6 @@ \begin{center} \includegraphics[width=160mm]{images/RemotePutSequence.pdf} \end{center} -\caption{RemoteDGMにPutしたときのフロー} -\label{fig:remotePutSequence} -\end{figure} - -図\ref{fig:localSequence}と同様に、setupメソッドからTAKEコマンドを生成し実行する。 -このとき要求したデータがDGM内にない場合はwaitListに入る。 LocalまたはリモードノードからPUTコマンドが実行された際、もしwaitListにPutしたDGを待っているコマンドがあれば実行される。