Mercurial > hg > Papers > 2018 > suruga-thesis
changeset 41:cd2d73cb6b2c
fix slide
author | suruga |
---|---|
date | Thu, 22 Feb 2018 04:12:36 +0900 |
parents | 9978f2fd4954 |
children | affad4dda4cf |
files | .DS_Store paper/.DS_Store paper/slides/.DS_Store paper/slides/sample.html paper/slides/sample.markdown paper/slides/sample.pdf.html |
diffstat | 6 files changed, 377 insertions(+), 427 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/slides/sample.html Wed Feb 21 21:21:29 2018 +0900 +++ b/paper/slides/sample.html Thu Feb 22 04:12:36 2018 +0900 @@ -86,12 +86,12 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin14] - on 2018-02-21 21:20:30 +0900 with Markdown engine kramdown (1.13.2) + on 2018-02-22 04:12:15 +0900 with Markdown engine kramdown (1.13.2) using options {} --> <!-- _S9SLIDE_ --> -<h1 id="section">研究背景(1/2)</h1> +<h1 id="section">研究背景</h1> <ul> <li>スマートフォン等の普及により、Webサービスの利用者が増え、Webサーバーにかかる負荷も増大している</li> <li>この問題を解決する為に当研究室では、スケーラビリティを持つ分散データベースとしてJungleを開発している</li> @@ -102,34 +102,22 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-1">研究背景(2/2)</h1> +<h1 id="section-1">問題提起</h1> <ul> - <li>一般的なウェブサイトの構造は大体が木構造であるため、Jungleはデータ構造として木構造を採用している</li> - <li>JungleはNoSQLを元に開発されており、木構造等の複雑なデータをそのまま読み込むことができる</li> - <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している</li> - <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している</li> + <li>これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた</li> + <li>Webサーバーを使用した測定方法は、Jungleに合わせたテストの準備が難しい</li> + <li>また、出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-2">問題提起</h1> -<ul> - <li>これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた</li> - <li>出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-3">研究目的</h1> +<h1 id="section-2">研究目的</h1> <ul> <li>Jungle単体の分散性能を測定できる環境を構築したい</li> <li>また、Jungleを用いるデータの伝搬方式や、トランザクションのmergeに関する研究開発をしやすくしたい</li> - <li>本研究では、Webサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、 -変更が全体に伝搬するまでの実験を行なった</li> + <li>本研究ではWebサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、変更が全体に伝搬するまでの実験を行える環境を構築した</li> </ul> @@ -138,78 +126,51 @@ <!-- _S9SLIDE_ --> <h1 id="jungle">JUngleデータベースの構造</h1> <ul> - <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採用している</li> - <li>NoSQLを元に開発されている為、RDBと異なり、木構造等の複雑なデータをそのまま読み込める</li> - <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle12">Jungleの分散機構(1/2)</h1> -<ul> - <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している</li> - <li>並列環境上のノード間でデータの衝突が起きるのを避ける為、JungleにはMergeの機能が実装されている</li> + <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採 +用している</li> + <li>木の変更を非破壊で行なっている</li> + <li>木の変更をLogとして持っている</li> + <li>そのLogを通信することにより、木を分散させる</li> + <li>Logの通信には当研究で開発している分散フレームワークAliceを用いている</li> + <li>異なる変更履歴を1つにまとめるMergeという機能を持っている</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungle22">Jungleの分散機構(2/2)</h1> +<h1 id="jungle-1">Jungleの分散機構</h1> <ul> <li>Jungleの分散機構はツリートポロジーを想定している</li> - <li>ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える</li> - <li>ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである</li> + <li>ツリー型であれば、一度トップまでデータを伝搬させることでデータの整合性を取ることができる</li> </ul> -<div align="center"><img src="./pictures/tree.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="treeoperationlog">TreeOperationLog</h1> -<ul> - <li>TreeOperationLogには、Jungleのノード編集の履歴が入っている。</li> - <li>TreeOperationLogはAliceでも扱えるようシリアライズされている</li> - <li>Aliceによって他のノードへTreeOperationLogを送り、そこでTreeOperationLogと同じ編集をさせることで、トポロジー上でのデータの整合性を取る。</li> -</ul> +<div align="center"><img src="./pictures/tree.svg" style="center" /></div> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-4">評価実験</h1> +<h1 id="section-3">実験の準備</h1> <ul> - <li>学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる</li> - <li>15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する</li> - <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> -</ul> - -<div align="center"><img src="./pictures/gaiyou.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-5">実験環境</h1> -<ul> - <li>学科のKVM上の仮想マシンによる仮想クラスタ環境を用いて実験を行った</li> - <li>他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している</li> + <li>Webサーバーを取り除いた、Jungleの純粋な性能を計測する環境を構築する</li> + <li>学科のVM16台でPCクラスタを構築し、クラスタ上にジョブスケジューラーTORQUEを設定した</li> + <li> + <p>他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している</p> + </li> + <li>本研究で用いたVMの性能を以下に示す</li> </ul> <table style="border-collapse: collapse;border:1px solid #000000;"> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">マシン台数</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">OS</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">CPU</th> - <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> + <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> <tr> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16台</td> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">CentOS Linux release 7.2.1511 (Core) </td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;"></td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16GB</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">QEMU Virtual CPU 2.3GHz</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">1GB</td> </tr> </table> @@ -219,11 +180,12 @@ <!-- _S9SLIDE_ --> <h1 id="torque-resource-manager">TORQUE Resource Manager</h1> <ul> - <li>TORQUEはジョブを管理・投下・実行する3つのデーモンで構 成されており、ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、 ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される</li> - <li>本実験では、TORQUEを用いて、計測用に作成したperlスクリプトを15台のJungleに一度に投入するジョブスクリプトを投入した</li> + <li>TORQUEはジョブを管理・投下・実行する3つの処理で構成されている</li> + <li>ジョブの管理・投下を担うヘッダーノードから、ジョブの実行を担う計算ノードへジョブが投下される</li> + <li>本実験では、TORQUEを用いて、計測用のスクリプトを15台のJungleに一度に投入するスクリプトを投入した</li> </ul> -<div align="center"><img src="./pictures/torque.pdf" style="center" /></div> +<div align="center"><img src="./pictures/torque.svg" style="center" /></div> </div> @@ -231,14 +193,14 @@ <!-- _S9SLIDE_ --> <h1 id="torque">TORQUEの使い方</h1> <ul lang="c"> - <li>ジョブはqsubで投入</li> + <li>ジョブはqsubコマンドで投入</li> </ul> <pre><code>$ qsub scripts/LogupdateTest-qsub.sh </code></pre> <ul lang="c"> - <li>ジョブの処理状況はqstatで確認できる + <li>ジョブの処理状況はqstatコマンドで確認できる <ul> - <li>その際、Rは処理中であり、Cは処理完了を表している</li> + <li>Sは現在のジョブの処理状況を示し、Rは処理中であり、Cは処理完了を表している</li> </ul> </li> </ul> @@ -249,16 +211,56 @@ 563.tino-VM1 LogUpdateTest ie-user 0 C jungle </code></pre> +<p># +* 以上が実験の環境についての説明である +* つづいて、このTORQUEを用いて、Jungleの分散性能を測定する</p> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-4">実験</h1> +<ul> + <li>以下にJungleの分散性能を測定する手順を示す</li> +</ul> +<div> + <img src="./pictures/gaiyou.svg" alt="message" style="float: left;width: 50%;" /> + <div style="float: right; width: 50%;"> + <ul> + <li>1台でTopologyManagerを起動し,残りの15台でJungleを1つずつ起動する</li> + <li>TopologyManagerは指定されたトポロジーの情報に従い、接続先の情報をJungleノードに送る</li> + <li>Jungleは送られてきた接続先のIPアドレス、ポート番号、接続名に従い、トポロジーを形成する</li> + <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> + </ul> + </div> + <div style="clear: both;"></div> +</div> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="topologymanager">TopologyManager</h1> +<ul> + <li>TopologyManagerは、Aliceが持つネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である</li> + <li>TopologyManagerにトポロジーの内容が書かれたトポロジーファイルを渡すことで、任意のトポロジーを構成させることができる。</li> + <li>本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJungleでツリートポロジーを構成させた。</li> +</ul> + +<div align="center"><img src="./pictures/topologymanager6.svg" style="center" /></div> + </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="torque-1">TORQUEを使うにあたり工夫した所</h1> +<h1 id="section-5">実験をするにあたりぶつかった問題点とその対処法</h1> <ul> - <li>TORQUEで測定するにはJungleのノードを15台全部起動して、全部終了するようにしないといけない</li> - <li>実験が終了したらタスクを終了させるコードを実装した + <li>ところが、TORQUEにジョブを投入しても、実験がうまくいかなかった</li> + <li>原因は、Jungleには、自身の処理を終了させる機能が備わっていないことだった <ul> - <li>データ書き込みの最後にnullLogを送ると全体が終了するコードを実装した</li> + <li>Jungleがデータを書き込み終わる時に、TopologyManagerへnullLogを送るコードを実装した</li> + <li>TopologyManagerはnullLogを受け取ることで、全てのノードがタスクを終了したことを確認する</li> + <li>確認とともに、TopologyManagerはJungleへ”finish”を送り、テストを終了させる</li> </ul> </li> </ul> @@ -267,51 +269,49 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> +<h1 id="section-6">実験の準備の為に行なったこと</h1> +<ul> + <li>TORQUEに使用するperlスクリプトを用意した</li> + <li></li> + <li>また、環境構築の際に、JungleとAliceは異なるパッケージで作られていた為、バージョンがズレていた + <ul> + <li>mavenリポジトリのキャッシュをクリアし、アップデートを行うことで修正した</li> + </ul> + </li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-7">まとめと今後の課題</h1> +<ul> + <li>本研究ではJungleの分散性能の測定方法の提案と測定環境の構築を行なった</li> + <li>それにあたり、Jungleが自身を終了させることができない問題が起きた + <ul> + <li>データ書き込みの最後にTopologyManagerにnullLogを送り、Jungleを終了させるコードを実装した</li> + </ul> + </li> + <li>今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい</li> + <li>再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい + <ul> + <li>方法としては、他のノード、もしくはディスクからデータを読み込む</li> + </ul> + </li> + <li>ディスク上にあるJungleの木を読み出すプロトコルを定義したい</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> <h1 id="alice">分散フレームワークAlice</h1> <ul> <li>Aliceは当研究室で開発している並列分散フレームワークである</li> - <li>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</li> - <li>本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間のデータの通信を行なった</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="topologymanager">TopologyManager</h1> -<ul> - <li>TopologyManagerは、ネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である</li> - <li>TopologyManagerにトポロジーの内容が書かれたトポロジーファイルを渡すことで、任意のトポロジーを構成させることができる。</li> - <li>本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJUngleでツリートポロジーを構成させた。</li> -</ul> - -<div align="center"><img src="./pictures/topologymanager6.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-6">結果/本研究で工夫した所</h1> -<ul> - <li>無事7台の子ノードJungleからデータが書き込まれ、rootノードJungleへデータがmergeされた時間を計測できた</li> - <li>JungleとAliceで生じていたJava等のバージョンのズレを修正した</li> - <li>測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li> - <li>mavenリポジトリのキャッシュをクリアし、アップデートできた</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-7">今後の課題</h1> -<ul> - <li>今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい</li> - <li>再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい - <ul> - <li>方法としては、他のノード、もしくはディスクからデータを読み込む</li> - </ul> + <li> + <p>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</p> </li> - <li>ディスク上にあるツリートポロジーを読み出すプロトコルを定義したい</li> + <li>本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間>のデータの通信を行なった</li> </ul> @@ -385,54 +385,37 @@ <li>実行結果がLogディレクトリに吐き出される</li> </ul> -<style type="text/css"> -<!-- -*{ - font:nomal 100% 'PT Sans'; -} -ul > li{ - list-style-type:disc; -} - -.slide h1{ - text-align:left; - color:#777777; - font:bold 40px/1.13 'PT Sans', sans-serif; - margin-bottom: 50px; -} - -div#slide1 h1{ - text-align:left; - color:#777777; - font:bold 60px 'PT Sans', sans-serif; - margin-bottom: 50px; +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 lang="c" id="perl">perlスクリプト</h1> +<pre><code>mysystem("cd $jungleDir; ruby scripts/tree.rb $nodeNum > scripts/tree.dot"); +mkdir "$logFile"; +mysystem("ssh $nodes[0] \"cd $logFile;java -cp ../../build/libs/logupdateTest-1.1.jar alice.topology.manager.TopologyManager -conf ../../scripts/tree.dot -p 10000 --showTime --noKeepAlive > $logNum\" ",1); +$logNum++; +sleep 10; +for my $i (1..($#nodes-7)) { + mysystem("ssh $nodes[$i] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 --noKeepAlive > $logNum\" & "); + $logNum++; } -pre > code{ - font-family:'Droid Sans Mono', 'Courier New', monospace; +for my $j (($#nodes-6)..($#nodes)){ +mysystem("ssh $nodes[$j] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 -write -count 100 --noKeepAlive > $logNum\" &" ); } - -img[alt="opt"]{ - display: block; - margin-left: auto; - margin-right: auto; +for (@wait) { + wait; #1がついている部分だけweit TopologyManagerだけweit } +</code></pre> -img[alt="right"]{ - margin-right: 0; -} -table { - margin-left: auto; - margin-right: auto; -} - -th { - font-size: 120%; -} ---> -</style> +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-11">その言葉を待っていました</h1> +<ul> + <li>開発中です</li> +</ul> <!-- === end markdown block === --> </div>
--- a/paper/slides/sample.markdown Wed Feb 21 21:21:29 2018 +0900 +++ b/paper/slides/sample.markdown Thu Feb 22 04:12:36 2018 +0900 @@ -2,89 +2,72 @@ author: 仲松栞 profile:琉球大学 工学部 情報工学科 河野研 -# 研究背景(1/2) +# 研究背景 * スマートフォン等の普及により、Webサービスの利用者が増え、Webサーバーにかかる負荷も増大している * この問題を解決する為に当研究室では、スケーラビリティを持つ分散データベースとしてJungleを開発している * ここで言うスケーラビリティとは、複数のマシンに処理を分散させたりすることで、システムの処理能力を向上させる性能を指す -# 研究背景(2/2) -* 一般的なウェブサイトの構造は大体が木構造であるため、Jungleはデータ構造として木構造を採用している -* JungleはNoSQLを元に開発されており、木構造等の複雑なデータをそのまま読み込むことができる -* Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している -* Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している - # 問題提起 * これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた -* 出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった +* Webサーバーを使用した測定方法は、Jungleに合わせたテストの準備が難しい +* また、出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった # 研究目的 * Jungle単体の分散性能を測定できる環境を構築したい * また、Jungleを用いるデータの伝搬方式や、トランザクションのmergeに関する研究開発をしやすくしたい -* 本研究では、Webサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、 - 変更が全体に伝搬するまでの実験を行なった +* 本研究ではWebサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、変更が全体に伝搬するまでの実験を行える環境を構築した # JUngleデータベースの構造 -* 一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採用している -* NoSQLを元に開発されている為、RDBと異なり、木構造等の複雑なデータをそのまま読み込める -* Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している - -# Jungleの分散機構(1/2) -* Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している -* 並列環境上のノード間でデータの衝突が起きるのを避ける為、JungleにはMergeの機能が実装されている - -#Jungleの分散機構(2/2) -* Jungleの分散機構はツリートポロジーを想定している -* ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える -* ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである - -<div align="center"><img src="./pictures/tree.pdf" style="center"></div> +* 一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採 +用している +* 木の変更を非破壊で行なっている +* 木の変更をLogとして持っている +* そのLogを通信することにより、木を分散させる +* Logの通信には当研究で開発している分散フレームワークAliceを用いている +* 異なる変更履歴を1つにまとめるMergeという機能を持っている -#TreeOperationLog -* TreeOperationLogには、Jungleのノード編集の履歴が入っている。 -* TreeOperationLogはAliceでも扱えるようシリアライズされている -* Aliceによって他のノードへTreeOperationLogを送り、そこでTreeOperationLogと同じ編集をさせることで、トポロジー上でのデータの整合性を取る。 +# Jungleの分散機構 +* Jungleの分散機構はツリートポロジーを想定している +* ツリー型であれば、一度トップまでデータを伝搬させることでデータの整合性を取ることができる - +<div align="center"><img src="./pictures/tree.svg" style="center"></div> -#評価実験 -* 学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる -* 15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する -* 1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する +#実験の準備 +* Webサーバーを取り除いた、Jungleの純粋な性能を計測する環境を構築する +* 学科のVM16台でPCクラスタを構築し、クラスタ上にジョブスケジューラーTORQUEを設定した +* 他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している -<div align="center"><img src="./pictures/gaiyou.pdf" style="center"></div> - -# 実験環境 -* 学科のKVM上の仮想マシンによる仮想クラスタ環境を用いて実験を行った -* 他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している +* 本研究で用いたVMの性能を以下に示す <table style="border-collapse: collapse;border:1px solid #000000;"> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">マシン台数</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">OS</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">CPU</th> - <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> + <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> <tr> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16台</td> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">CentOS Linux release 7.2.1511 (Core) </td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;"></td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16GB</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">QEMU Virtual CPU 2.3GHz</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">1GB</td> </tr> </table> +#TORQUE Resource Manager +* TORQUEはジョブを管理・投下・実行する3つの処理で構成されている +* ジョブの管理・投下を担うヘッダーノードから、ジョブの実行を担う計算ノードへジョブが投下される +* 本実験では、TORQUEを用いて、計測用のスクリプトを15台のJungleに一度に投入するスクリプトを投入した -#TORQUE Resource Manager -* TORQUEはジョブを管理・投下・実行する3つのデーモンで構 成されており、ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、 ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される -* 本実験では、TORQUEを用いて、計測用に作成したperlスクリプトを15台のJungleに一度に投入するジョブスクリプトを投入した +<div align="center"><img src="./pictures/torque.svg" style="center"></div> -<div align="center"><img src="./pictures/torque.pdf" style="center"></div> #TORQUEの使い方 -* ジョブはqsubで投入 +* ジョブはqsubコマンドで投入 ```c $ qsub scripts/LogupdateTest-qsub.sh ``` -* ジョブの処理状況はqstatで確認できる - * その際、Rは処理中であり、Cは処理完了を表している +* ジョブの処理状況はqstatコマンドで確認できる + * Sは現在のジョブの処理状況を示し、Rは処理中であり、Cは処理完了を表している ```c $ qstat @@ -93,36 +76,61 @@ 563.tino-VM1 LogUpdateTest ie-user 0 C jungle ``` +# +* 以上が実験の環境についての説明である +* つづいて、このTORQUEを用いて、Jungleの分散性能を測定する -#TORQUEを使うにあたり工夫した所 -* TORQUEで測定するにはJungleのノードを15台全部起動して、全部終了するようにしないといけない -* 実験が終了したらタスクを終了させるコードを実装した - * データ書き込みの最後にnullLogを送ると全体が終了するコードを実装した - -#分散フレームワークAlice -* Aliceは当研究室で開発している並列分散フレームワークである -* Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する -* 本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間のデータの通信を行なった +# 実験 +* 以下にJungleの分散性能を測定する手順を示す +<div> + <img src="./pictures/gaiyou.svg" alt="message" style="float: left;width: 50%;"> + <div style="float: right; width: 50%;"> + <ul> + <li>1台でTopologyManagerを起動し,残りの15台でJungleを1つずつ起動する</li> + <li>TopologyManagerは指定されたトポロジーの情報に従い、接続先の情報をJungleノードに送る</li> + <li>Jungleは送られてきた接続先のIPアドレス、ポート番号、接続名に従い、トポロジーを形成する</li> + <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> + </ul> + </div> + <div style="clear: both;"></div> +</div> #TopologyManager -* TopologyManagerは、ネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である +* TopologyManagerは、Aliceが持つネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である * TopologyManagerにトポロジーの内容が書かれたトポロジーファイルを渡すことで、任意のトポロジーを構成させることができる。 -* 本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJUngleでツリートポロジーを構成させた。 +* 本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJungleでツリートポロジーを構成させた。 -<div align="center"><img src="./pictures/topologymanager6.pdf" style="center"></div> +<div align="center"><img src="./pictures/topologymanager6.svg" style="center"></div> -# 結果/本研究で工夫した所 -* 無事7台の子ノードJungleからデータが書き込まれ、rootノードJungleへデータがmergeされた時間を計測できた -* JungleとAliceで生じていたJava等のバージョンのズレを修正した -* 測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した -* mavenリポジトリのキャッシュをクリアし、アップデートできた +# 実験をするにあたりぶつかった問題点とその対処法 +* ところが、TORQUEにジョブを投入しても、実験がうまくいかなかった +* 原因は、Jungleには、自身の処理を終了させる機能が備わっていないことだった + * Jungleがデータを書き込み終わる時に、TopologyManagerへnullLogを送るコードを実装した + * TopologyManagerはnullLogを受け取ることで、全てのノードがタスクを終了したことを確認する + * 確認とともに、TopologyManagerはJungleへ"finish"を送り、テストを終了させる -# 今後の課題 +# 実験の準備の為に行なったこと +* TORQUEに使用するperlスクリプトを用意した +* +* また、環境構築の際に、JungleとAliceは異なるパッケージで作られていた為、バージョンがズレていた + * mavenリポジトリのキャッシュをクリアし、アップデートを行うことで修正した + +# まとめと今後の課題 +* 本研究ではJungleの分散性能の測定方法の提案と測定環境の構築を行なった +* それにあたり、Jungleが自身を終了させることができない問題が起きた + * データ書き込みの最後にTopologyManagerにnullLogを送り、Jungleを終了させるコードを実装した + * 今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい * 再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい * 方法としては、他のノード、もしくはディスクからデータを読み込む -* ディスク上にあるツリートポロジーを読み出すプロトコルを定義したい - +* ディスク上にあるJungleの木を読み出すプロトコルを定義したい + +# 分散フレームワークAlice +* Aliceは当研究室で開発している並列分散フレームワークである +* Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する + +* 本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間>のデータの通信を行なった + #計測結果(1/2) * 1台に書き込み/1回書き込み ```c @@ -177,51 +185,27 @@ * Logディレクトリに移動し,今回政策したperlスクリプトを実行している * 実行結果がLogディレクトリに吐き出される -<style type="text/css"> -<!-- -*{ - font:nomal 100% 'PT Sans'; -} - -ul > li{ - list-style-type:disc; -} - -.slide h1{ - text-align:left; - color:#777777; - font:bold 40px/1.13 'PT Sans', sans-serif; - margin-bottom: 50px; -} - -div#slide1 h1{ - text-align:left; - color:#777777; - font:bold 60px 'PT Sans', sans-serif; - margin-bottom: 50px; +#perlスクリプト +```c +mysystem("cd $jungleDir; ruby scripts/tree.rb $nodeNum > scripts/tree.dot"); +mkdir "$logFile"; +mysystem("ssh $nodes[0] \"cd $logFile;java -cp ../../build/libs/logupdateTest-1.1.jar alice.topology.manager.TopologyManager -conf ../../scripts/tree.dot -p 10000 --showTime --noKeepAlive > $logNum\" ",1); +$logNum++; +sleep 10; +for my $i (1..($#nodes-7)) { + mysystem("ssh $nodes[$i] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 --noKeepAlive > $logNum\" & "); + $logNum++; } -pre > code{ - font-family:'Droid Sans Mono', 'Courier New', monospace; +for my $j (($#nodes-6)..($#nodes)){ +mysystem("ssh $nodes[$j] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 -write -count 100 --noKeepAlive > $logNum\" &" ); } - -img[alt="opt"]{ - display: block; - margin-left: auto; - margin-right: auto; +for (@wait) { + wait; #1がついている部分だけweit TopologyManagerだけweit } +``` -img[alt="right"]{ - margin-right: 0; -} -table { - margin-left: auto; - margin-right: auto; -} +# その言葉を待っていました +* 開発中です -th { - font-size: 120%; -} ---> -</style>
--- a/paper/slides/sample.pdf.html Wed Feb 21 21:21:29 2018 +0900 +++ b/paper/slides/sample.pdf.html Thu Feb 22 04:12:36 2018 +0900 @@ -70,12 +70,12 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin14] - on 2018-02-21 21:20:30 +0900 with Markdown engine kramdown (1.13.2) + on 2018-02-22 04:12:15 +0900 with Markdown engine kramdown (1.13.2) using options {} --> <!-- _S9SLIDE_ --> -<h1 id="section">研究背景(1/2)</h1> +<h1 id="section">研究背景</h1> <ul> <li>スマートフォン等の普及により、Webサービスの利用者が増え、Webサーバーにかかる負荷も増大している</li> <li>この問題を解決する為に当研究室では、スケーラビリティを持つ分散データベースとしてJungleを開発している</li> @@ -86,34 +86,22 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-1">研究背景(2/2)</h1> +<h1 id="section-1">問題提起</h1> <ul> - <li>一般的なウェブサイトの構造は大体が木構造であるため、Jungleはデータ構造として木構造を採用している</li> - <li>JungleはNoSQLを元に開発されており、木構造等の複雑なデータをそのまま読み込むことができる</li> - <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している</li> - <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している</li> + <li>これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた</li> + <li>Webサーバーを使用した測定方法は、Jungleに合わせたテストの準備が難しい</li> + <li>また、出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-2">問題提起</h1> -<ul> - <li>これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた</li> - <li>出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-3">研究目的</h1> +<h1 id="section-2">研究目的</h1> <ul> <li>Jungle単体の分散性能を測定できる環境を構築したい</li> <li>また、Jungleを用いるデータの伝搬方式や、トランザクションのmergeに関する研究開発をしやすくしたい</li> - <li>本研究では、Webサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、 -変更が全体に伝搬するまでの実験を行なった</li> + <li>本研究ではWebサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、変更が全体に伝搬するまでの実験を行える環境を構築した</li> </ul> @@ -122,78 +110,51 @@ <!-- _S9SLIDE_ --> <h1 id="jungle">JUngleデータベースの構造</h1> <ul> - <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採用している</li> - <li>NoSQLを元に開発されている為、RDBと異なり、木構造等の複雑なデータをそのまま読み込める</li> - <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="jungle12">Jungleの分散機構(1/2)</h1> -<ul> - <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している</li> - <li>並列環境上のノード間でデータの衝突が起きるのを避ける為、JungleにはMergeの機能が実装されている</li> + <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採 +用している</li> + <li>木の変更を非破壊で行なっている</li> + <li>木の変更をLogとして持っている</li> + <li>そのLogを通信することにより、木を分散させる</li> + <li>Logの通信には当研究で開発している分散フレームワークAliceを用いている</li> + <li>異なる変更履歴を1つにまとめるMergeという機能を持っている</li> </ul> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="jungle22">Jungleの分散機構(2/2)</h1> +<h1 id="jungle-1">Jungleの分散機構</h1> <ul> <li>Jungleの分散機構はツリートポロジーを想定している</li> - <li>ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える</li> - <li>ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである</li> + <li>ツリー型であれば、一度トップまでデータを伝搬させることでデータの整合性を取ることができる</li> </ul> -<div align="center"><img src="./pictures/tree.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="treeoperationlog">TreeOperationLog</h1> -<ul> - <li>TreeOperationLogには、Jungleのノード編集の履歴が入っている。</li> - <li>TreeOperationLogはAliceでも扱えるようシリアライズされている</li> - <li>Aliceによって他のノードへTreeOperationLogを送り、そこでTreeOperationLogと同じ編集をさせることで、トポロジー上でのデータの整合性を取る。</li> -</ul> +<div align="center"><img src="./pictures/tree.svg" style="center" /></div> </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="section-4">評価実験</h1> +<h1 id="section-3">実験の準備</h1> <ul> - <li>学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる</li> - <li>15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する</li> - <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> -</ul> - -<div align="center"><img src="./pictures/gaiyou.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-5">実験環境</h1> -<ul> - <li>学科のKVM上の仮想マシンによる仮想クラスタ環境を用いて実験を行った</li> - <li>他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している</li> + <li>Webサーバーを取り除いた、Jungleの純粋な性能を計測する環境を構築する</li> + <li>学科のVM16台でPCクラスタを構築し、クラスタ上にジョブスケジューラーTORQUEを設定した</li> + <li> + <p>他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している</p> + </li> + <li>本研究で用いたVMの性能を以下に示す</li> </ul> <table style="border-collapse: collapse;border:1px solid #000000;"> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">マシン台数</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">OS</th> <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">CPU</th> - <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> + <th style="border:1px solid #000000;padding:5px 15px 5px 15px;">Memory</th> <tr> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16台</td> <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">CentOS Linux release 7.2.1511 (Core) </td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;"></td> - <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">16GB</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">QEMU Virtual CPU 2.3GHz</td> + <td style="border:1px solid #000000;padding:5px 15px 5px 15px;">1GB</td> </tr> </table> @@ -203,11 +164,12 @@ <!-- _S9SLIDE_ --> <h1 id="torque-resource-manager">TORQUE Resource Manager</h1> <ul> - <li>TORQUEはジョブを管理・投下・実行する3つのデーモンで構 成されており、ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、 ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される</li> - <li>本実験では、TORQUEを用いて、計測用に作成したperlスクリプトを15台のJungleに一度に投入するジョブスクリプトを投入した</li> + <li>TORQUEはジョブを管理・投下・実行する3つの処理で構成されている</li> + <li>ジョブの管理・投下を担うヘッダーノードから、ジョブの実行を担う計算ノードへジョブが投下される</li> + <li>本実験では、TORQUEを用いて、計測用のスクリプトを15台のJungleに一度に投入するスクリプトを投入した</li> </ul> -<div align="center"><img src="./pictures/torque.pdf" style="center" /></div> +<div align="center"><img src="./pictures/torque.svg" style="center" /></div> </div> @@ -215,14 +177,14 @@ <!-- _S9SLIDE_ --> <h1 id="torque">TORQUEの使い方</h1> <ul lang="c"> - <li>ジョブはqsubで投入</li> + <li>ジョブはqsubコマンドで投入</li> </ul> <pre><code>$ qsub scripts/LogupdateTest-qsub.sh </code></pre> <ul lang="c"> - <li>ジョブの処理状況はqstatで確認できる + <li>ジョブの処理状況はqstatコマンドで確認できる <ul> - <li>その際、Rは処理中であり、Cは処理完了を表している</li> + <li>Sは現在のジョブの処理状況を示し、Rは処理中であり、Cは処理完了を表している</li> </ul> </li> </ul> @@ -233,16 +195,56 @@ 563.tino-VM1 LogUpdateTest ie-user 0 C jungle </code></pre> +<p># +* 以上が実験の環境についての説明である +* つづいて、このTORQUEを用いて、Jungleの分散性能を測定する</p> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-4">実験</h1> +<ul> + <li>以下にJungleの分散性能を測定する手順を示す</li> +</ul> +<div> + <img src="./pictures/gaiyou.svg" alt="message" style="float: left;width: 50%;" /> + <div style="float: right; width: 50%;"> + <ul> + <li>1台でTopologyManagerを起動し,残りの15台でJungleを1つずつ起動する</li> + <li>TopologyManagerは指定されたトポロジーの情報に従い、接続先の情報をJungleノードに送る</li> + <li>Jungleは送られてきた接続先のIPアドレス、ポート番号、接続名に従い、トポロジーを形成する</li> + <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li> + </ul> + </div> + <div style="clear: both;"></div> +</div> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="topologymanager">TopologyManager</h1> +<ul> + <li>TopologyManagerは、Aliceが持つネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である</li> + <li>TopologyManagerにトポロジーの内容が書かれたトポロジーファイルを渡すことで、任意のトポロジーを構成させることができる。</li> + <li>本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJungleでツリートポロジーを構成させた。</li> +</ul> + +<div align="center"><img src="./pictures/topologymanager6.svg" style="center" /></div> + </div> <div class='slide '> <!-- _S9SLIDE_ --> -<h1 id="torque-1">TORQUEを使うにあたり工夫した所</h1> +<h1 id="section-5">実験をするにあたりぶつかった問題点とその対処法</h1> <ul> - <li>TORQUEで測定するにはJungleのノードを15台全部起動して、全部終了するようにしないといけない</li> - <li>実験が終了したらタスクを終了させるコードを実装した + <li>ところが、TORQUEにジョブを投入しても、実験がうまくいかなかった</li> + <li>原因は、Jungleには、自身の処理を終了させる機能が備わっていないことだった <ul> - <li>データ書き込みの最後にnullLogを送ると全体が終了するコードを実装した</li> + <li>Jungleがデータを書き込み終わる時に、TopologyManagerへnullLogを送るコードを実装した</li> + <li>TopologyManagerはnullLogを受け取ることで、全てのノードがタスクを終了したことを確認する</li> + <li>確認とともに、TopologyManagerはJungleへ”finish”を送り、テストを終了させる</li> </ul> </li> </ul> @@ -251,51 +253,49 @@ </div> <div class='slide '> <!-- _S9SLIDE_ --> +<h1 id="section-6">実験の準備の為に行なったこと</h1> +<ul> + <li>TORQUEに使用するperlスクリプトを用意した</li> + <li></li> + <li>また、環境構築の際に、JungleとAliceは異なるパッケージで作られていた為、バージョンがズレていた + <ul> + <li>mavenリポジトリのキャッシュをクリアし、アップデートを行うことで修正した</li> + </ul> + </li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-7">まとめと今後の課題</h1> +<ul> + <li>本研究ではJungleの分散性能の測定方法の提案と測定環境の構築を行なった</li> + <li>それにあたり、Jungleが自身を終了させることができない問題が起きた + <ul> + <li>データ書き込みの最後にTopologyManagerにnullLogを送り、Jungleを終了させるコードを実装した</li> + </ul> + </li> + <li>今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい</li> + <li>再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい + <ul> + <li>方法としては、他のノード、もしくはディスクからデータを読み込む</li> + </ul> + </li> + <li>ディスク上にあるJungleの木を読み出すプロトコルを定義したい</li> +</ul> + + +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> <h1 id="alice">分散フレームワークAlice</h1> <ul> <li>Aliceは当研究室で開発している並列分散フレームワークである</li> - <li>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</li> - <li>本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間のデータの通信を行なった</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="topologymanager">TopologyManager</h1> -<ul> - <li>TopologyManagerは、ネットワーク上の複数のサーバーノードにトポロジーを形成さる機能である</li> - <li>TopologyManagerにトポロジーの内容が書かれたトポロジーファイルを渡すことで、任意のトポロジーを構成させることができる。</li> - <li>本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJUngleでツリートポロジーを構成させた。</li> -</ul> - -<div align="center"><img src="./pictures/topologymanager6.pdf" style="center" /></div> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-6">結果/本研究で工夫した所</h1> -<ul> - <li>無事7台の子ノードJungleからデータが書き込まれ、rootノードJungleへデータがmergeされた時間を計測できた</li> - <li>JungleとAliceで生じていたJava等のバージョンのズレを修正した</li> - <li>測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li> - <li>mavenリポジトリのキャッシュをクリアし、アップデートできた</li> -</ul> - - -</div> -<div class='slide '> -<!-- _S9SLIDE_ --> -<h1 id="section-7">今後の課題</h1> -<ul> - <li>今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい</li> - <li>再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい - <ul> - <li>方法としては、他のノード、もしくはディスクからデータを読み込む</li> - </ul> + <li> + <p>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</p> </li> - <li>ディスク上にあるツリートポロジーを読み出すプロトコルを定義したい</li> + <li>本実験では、Aliceを用いて15台のJungleにツリートポロジーを形成させ、子ノードとJungleノード間>のデータの通信を行なった</li> </ul> @@ -369,54 +369,37 @@ <li>実行結果がLogディレクトリに吐き出される</li> </ul> -<style type="text/css"> -<!-- -*{ - font:nomal 100% 'PT Sans'; -} -ul > li{ - list-style-type:disc; -} - -.slide h1{ - text-align:left; - color:#777777; - font:bold 40px/1.13 'PT Sans', sans-serif; - margin-bottom: 50px; -} - -div#slide1 h1{ - text-align:left; - color:#777777; - font:bold 60px 'PT Sans', sans-serif; - margin-bottom: 50px; +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 lang="c" id="perl">perlスクリプト</h1> +<pre><code>mysystem("cd $jungleDir; ruby scripts/tree.rb $nodeNum > scripts/tree.dot"); +mkdir "$logFile"; +mysystem("ssh $nodes[0] \"cd $logFile;java -cp ../../build/libs/logupdateTest-1.1.jar alice.topology.manager.TopologyManager -conf ../../scripts/tree.dot -p 10000 --showTime --noKeepAlive > $logNum\" ",1); +$logNum++; +sleep 10; +for my $i (1..($#nodes-7)) { + mysystem("ssh $nodes[$i] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 --noKeepAlive > $logNum\" & "); + $logNum++; } -pre > code{ - font-family:'Droid Sans Mono', 'Courier New', monospace; +for my $j (($#nodes-6)..($#nodes)){ +mysystem("ssh $nodes[$j] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 -write -count 100 --noKeepAlive > $logNum\" &" ); } - -img[alt="opt"]{ - display: block; - margin-left: auto; - margin-right: auto; +for (@wait) { + wait; #1がついている部分だけweit TopologyManagerだけweit } +</code></pre> -img[alt="right"]{ - margin-right: 0; -} -table { - margin-left: auto; - margin-right: auto; -} - -th { - font-size: 120%; -} ---> -</style> +</div> +<div class='slide '> +<!-- _S9SLIDE_ --> +<h1 id="section-11">その言葉を待っていました</h1> +<ul> + <li>開発中です</li> +</ul> <!-- === end markdown block === --> </div>