# HG changeset patch
# User suruga
# Date 1519215689 -32400
# Node ID 9978f2fd4954fa9bf9453f5bb80b5624e83b04ad
# Parent 48fbb9e3c335a4bbfd7a3cac82dc4f83f837c909
slide fix
diff -r 48fbb9e3c335 -r 9978f2fd4954 paper/.DS_Store
Binary file paper/.DS_Store has changed
diff -r 48fbb9e3c335 -r 9978f2fd4954 paper/final_main/.DS_Store
Binary file paper/final_main/.DS_Store has changed
diff -r 48fbb9e3c335 -r 9978f2fd4954 paper/final_main/pic/topologymanager2.graffle
Binary file paper/final_main/pic/topologymanager2.graffle has changed
diff -r 48fbb9e3c335 -r 9978f2fd4954 paper/final_main/result/result.txt
--- a/paper/final_main/result/result.txt Wed Feb 21 18:16:11 2018 +0900
+++ b/paper/final_main/result/result.txt Wed Feb 21 21:21:29 2018 +0900
@@ -356,9 +356,8 @@
hostname: node14 time = 20
hostname: node14 time = 19
hostname: node14 time = 18
-hostname: node14 time = 18
-hostname: node14 time = 5
-hostname: node14 time = 4
+hostname: node14 time = 5
+hostname: node14 time = 4
LogUpdator: write to node parent from local
!-write 2
diff -r 48fbb9e3c335 -r 9978f2fd4954 paper/slides/sample.html
--- a/paper/slides/sample.html Wed Feb 21 18:16:11 2018 +0900
+++ b/paper/slides/sample.html Wed Feb 21 21:21:29 2018 +0900
@@ -86,7 +86,7 @@
@@ -105,8 +105,8 @@
研究背景(2/2)
- 一般的なウェブサイトの構造は大体が木構造であるため、Jungleはデータ構造として木構造を採用している
- - JungleはNoSQLで開発されており、木構造をそのまま読み込むことが可能
- - Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している。
+ - JungleはNoSQLを元に開発されており、木構造等の複雑なデータをそのまま読み込むことができる
+ - Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している
- Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している
@@ -117,7 +117,7 @@
問題提起
- これまでJungleの分散性能を測定する方法はWebサーバー込みで行われていた
- - Jungleの単体の分散性能を測定したい
+ - 出力結果がWebサーバーの性能に依存する為、Jungleの単体の分散性能を測定できなかった
@@ -126,9 +126,10 @@
研究目的
- - Jungleを用いるデータの伝搬方式や、トランザクションのmergeに関する研究開発をしやすくする為
-木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、
-変更が全体に伝搬するまでの実験をできるようにする
+ - Jungle単体の分散性能を測定できる環境を構築したい
+ - また、Jungleを用いるデータの伝搬方式や、トランザクションのmergeに関する研究開発をしやすくしたい
+ - 本研究では、Webサーバーを取り除き、木構造に構築したJungleのノード上で、いくつかのノードから書き込みを伝搬させて、
+変更が全体に伝搬するまでの実験を行なった
@@ -138,7 +139,7 @@
JUngleデータベースの構造
- 一般的なウェブサイトの構造は大体が木構造であるため、データ構造として木構造を採用している
- - NoSQLを元に開発されている為、RDBと異なり、木構造をそのまま読み込める
+ - NoSQLを元に開発されている為、RDBと異なり、木構造等の複雑なデータをそのまま読み込める
- Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している
@@ -148,8 +149,8 @@
Jungleの分散機構(1/2)
- - ノード間でデータの衝突が起きるのを避ける為、Mergeの機能が実装されている
- - Jungleの分散機構には、当研究室で開発している分散フレームワークAliceのTopologyManagerという機能を使用している
+ - Jungleの分散機構には、当研究室で開発している分散フレームワークAliceを使用している
+ - 並列環境上のノード間でデータの衝突が起きるのを避ける為、JungleにはMergeの機能が実装されている
@@ -160,8 +161,20 @@
- Jungleの分散機構はツリートポロジーを想定している
- ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える
- - ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである
-
+ - ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである
+
+
+
+
+
+
+
+
+
TreeOperationLog
+
+ - TreeOperationLogには、Jungleのノード編集の履歴が入っている。
+ - TreeOperationLogはAliceでも扱えるようシリアライズされている
+ - Aliceによって他のノードへTreeOperationLogを送り、そこでTreeOperationLogと同じ編集をさせることで、トポロジー上でのデータの整合性を取る。
@@ -172,10 +185,11 @@
- 学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる
- 15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する
- - 1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する
-(画像)
+ - 1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する
+
+
@@ -185,6 +199,19 @@
学科のKVM上の仮想マシンによる仮想クラスタ環境を用いて実験を行った
他の利用者とリソースが競合しないよう、TORQUEジョブスケジューラーを利用している
+
+ マシン台数 |
+ OS |
+ CPU |
+ Memory |
+
+
+ 16台 |
+ CentOS Linux release 7.2.1511 (Core) |
+ |
+ 16GB |
+
+
@@ -196,20 +223,31 @@
本実験では、TORQUEを用いて、計測用に作成したperlスクリプトを15台のJungleに一度に投入するジョブスクリプトを投入した
+
+
TORQUEの使い方
-
$ qsub scripts/LogupdateTest-qsub.sh
+
+
- ジョブの処理状況はqstatで確認できる
- - その際、Rは処理中であり、Cは処理完了を表している
-(ジョブの状態のテキストを貼る)
+ - その際、Rは処理中であり、Cは処理完了を表している
+
$ qstat
+
+Job ID Name User Time Use S Queue
+------------------------- ---------------- --------------- -------- - -----
+563.tino-VM1 LogUpdateTest ie-user 0 C jungle
+
@@ -220,7 +258,7 @@
TORQUEで測定するにはJungleのノードを15台全部起動して、全部終了するようにしないといけない
実験が終了したらタスクを終了させるコードを実装した
- - 書き込みの最後にnullLogを送ると全体が終了するコードを実装した
+ - データ書き込みの最後にnullLogを送ると全体が終了するコードを実装した
@@ -247,74 +285,105 @@
本実験ではTopologyManagerにツリー型のトポロジーファイルを渡すことで、15台のJUngleでツリートポロジーを構成させた。
+
+
-
TreeOperationLog
+
結果/本研究で工夫した所
- - TreeOperationLogには、Jungleのノード編集の履歴が入っている。
- - TreeOperationLogはAliceでも扱えるようシリアライズされている
- - Aliceによって他のノードへTreeOperationLogを送り、そこでTreeOperationLogと同じ編集をさせることで、トポロジー上でのデータの整合性を取る。
+ - 無事7台の子ノードJungleからデータが書き込まれ、rootノードJungleへデータがmergeされた時間を計測できた
+ - JungleとAliceで生じていたJava等のバージョンのズレを修正した
+ - 測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した
+ - mavenリポジトリのキャッシュをクリアし、アップデートできた
-
用意したスクリプト
+
今後の課題
- - 任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した
-
-
-
-
-
-
-
結果
-
- - 無事7台の子ノードJungleからデータが書き込まれ、ルートノードJungleへデータがmergeされた時間を計測できた
+ - 今回構築した測定環境で、現在のJungleのmergeや分散アルゴリズムを研究したい
+ - 再接続時に、Jungleのノードのデータを再ロードできるプロトコルを定義したい
+
+ - 方法としては、他のノード、もしくはディスクからデータを読み込む
+
+
+ - ディスク上にあるツリートポロジーを読み出すプロトコルを定義したい
-
まとめ
-
- - JungleとAliceで生じていたJava等のバージョンのズレを修正した
- - 測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した
- - mavenリポジトリのキャッシュをクリアすることアップデートできた
+計測結果(1/2)
+
+
TopologymanagerTime = 5285
+
+hostname: node6 time = 214
+
+
+
TopologymanagerTime = 5115
+
+hostname: node9 time = 98
+
+
-
今後の課題
-
TopologymanagerTime = 5425
+
+hostname: node14 time = 278
+hostname: node14 time = 210
+ ...
+hostname: node14 time = 5
+hostname: node14 time = 4
+
+
+
TopologymanagerTime = 5351
+
+hostname: node10 time = 290
+hostname: node10 time = 209
+ ...
+hostname: node10 time = 17
+hostname: node10 time = 16
+
-
計測結果
-
+
ジョブスクリプト
+
#!/bin/sh
+#PBS -q jungle
+#PBS -N LogUpdateTest
+#PBS -l nodes=16,walltime=00:08:00
-
-
-
-
ジョブスクリプト
+cd /mnt/data/jungle_workspace/Log
+/usr/bin/perl /mnt/data/jungle_workspace/scripts/LogupdateTest.pl
+
+
+ - -q … queueを指定。
+ - -N … 実行結果の出力ファイル名
+ - nodes … 使用するnodeの台数、
+ - walltime … 実行制限時間
+ - Logディレクトリに移動し,今回政策したperlスクリプトを実行している
+ - 実行結果がLogディレクトリに吐き出される
+