diff slides/slides.html @ 89:396b121f989c

fixed slides
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Mon, 03 Feb 2014 14:19:00 +0900
parents f257e8ebd79c
children 8f5c9719d6ee
line wrap: on
line diff
--- a/slides/slides.html	Mon Feb 03 13:40:36 2014 +0900
+++ b/slides/slides.html	Mon Feb 03 14:19:00 2014 +0900
@@ -105,6 +105,7 @@
 	<p>ウェブサービスにとってデータベースは必須であり、ウェブサービスの規模に比例してデータベースへの負荷も高まる。</p>
 	<p>データベースの処理能力の高さはそのままウェブサービスの質に繋がるため、データベースのスケーラビリティの確保は重要である。</p>
 	<p>スケーラビリティ確保の方法としてデータ分散があるが、分散する方法により性能も変わってくる。</p>
+	<p>コンテンツマネジメントシステムに合ったスケーラビリティの確保ができるデータベースの開発を行う。</>
   </div>
 
   <div class='slide'>
@@ -158,7 +159,7 @@
 	<li>Webコンテンツを分散して管理</li>
 	<li>スケールアウトするシステム</li>
 	<p>データ全体の整合性に遅延がある、結果整合性でもよい。書き込みや読み込みを優先としたデータベースが必要。</p>
-	<p>そこで、非破壊的木構造データベースJungleの提案を行った。</p>
+	<p>そこで、非破壊的木構造データベースJungleの開発が行われた。</p>
   </div>
 
   <div class='slide'>
@@ -200,7 +201,7 @@
     <p>ここまでJungleに実装されている非破壊的木構造の利点について述べた。</p>
     <p>次に、Jungleにおける分散設計について述べる。</p>
     <p>データ分散を行うにあたり、まず考えることはトポロジーの形成と他のノードからデータの伝搬の仕方である。</p>
-    <p>Jungleはこの問題に対し、ツリートポロジーを形成し、データ編集の際に発生するcommit logを他のノードに流すことで解決する。</p>
+    <p>Jungleはこの問題に対し、ツリートポロジーを形成し、データ編集の際に発生するオペレーションを他のノードに流すことで解決する。</p>
   </div>
 
   <div class='slide'>
@@ -215,86 +216,127 @@
     </ul>
     <p>JungleにAliceを組み込み、Jungleのノード同士でトポロジーを形成する。</p>
     <p>Aliceの機能である他ノードへのデータアクセス機構を使用してデータ分散を行う。</p>
-
-  </div>
-
-  <div class='slide'>
-    <h1>
-	Jungleの分散設計: データ変更コマンドのAPI
-    </h1>
-
-    
-  </div>
-
-  <div class='slide'>
-    <h1>
-	
-    </h1>
-
-    
-  </div>
-
-
-
-  <div class='slide'>
-    <h1>
-	掲示板システムにおけるMerge
-    </h1>
-    <p style="text-align:center;">
-	<img src="./images/bulletinboard_merge.png">
-    </p>
-    <p>2つの状態をもつ掲示板の書き込みができる。</p>
-    <p>掲示板はcommutativeなため、Mergeが自然に行える。</p>
+    </ul>
   </div>
 
 
 
   <div class='slide'>
     <h1>
-	Jungleの分散設計:トポロジー形成とログによるデータ分散
+	分散設計: データ編集オペレーション
     </h1>
-	<table>
-	    <tr>
-		<th>commit log伝搬によるデータ分散</th>
-	    </tr>
-	    <tr>
-		<td>
-		    <img src="./images/distributed_jungle.png">
-		</td>
-	    </tr>
-	</table>
-	<p>サーバノード同士でツリートポロジーを形成する。データ編集をどのように行ったのかを示すログ commit log を伝搬させデータの分散を行う。</p>
+    <p>Aliceにより、ネットワークトポロジーの作成と他サーバが持つデータアクセス機構を実装できた。</p>
+    <p>次はどのデータを取得することでデータの分散を行うか考えなければならない。</p>
+    <br>
+    <p>Jungleにはデータ編集に使われるオペレーションがある。</p>
+    <p>データ編集に使われるオペレーションをそのまま他サーバノードへ流すことでデータの分散が行える。</p>
+    <p>オペレーションには次の4つがある</p>
+    <ul>
+	<li>addNewChild:子ノードの追加を行う</li>
+	<li>deleteChildAt:指定したノードの削除を行う</li>
+	<li>putAttribute:子ノードにattributeに追加を行う</li>
+	<li>deleteAttribute:子ノードのattributeを削除する</li>
+	<br>
   </div>
 
-
-
   <div class='slide'>
     <h1>
-
-   </h1>
+	データ編集オペレーション
+    </h1>
+    <p>子ノードを追加し、その子ノードにattributeを追加する場合次のノードオペレーションが実行される。</p>
+    <ol>
+	<li>[APPEND_CHILD:<-1>:pos:0]</li>
+	<li>[PUT_ATTRIBUTE:<-1,0>:key:mes,value:hello]</li>
+    </ol>
+    <p>このノードオペレーションの実行結果を図に示す。</p>
+    <p style="text-align:center;">
+    <img src="./images/node_operation.png">
+    </p>
+    <p><font color="">トポロジー上でノードオペレーションを渡すことで同じ編集を行いデータの分散を行う。</font></p>
+    <br/>
+    <br/>
   </div>
 
 
   <div class='slide'>
     <h1>
+	Jungle分散実装
+    </h1>
+    <p>以上の設計を元にJungleに分散実装を行った。</p>
+    <p>以下の図はJungleにおけるデータ分散の様子を表している。</p>
+    <p style="text-align:center;">
+	<img src="./images/distributed_jungle.png">    
+    </p>
+    <p>Aliceでトポロジーを形成後に、データ編集に使われたオペレーションを他サーバノードに送る。</p>
+    <p>オペレーションを受信したノードはデータ編集を行う。他にサーバが繋がっている場合はそちらにもオペレーションを送る。</p>
+    <br/>
+    <br/>
+  </div>
 
-   </h1>
+  <div class='slide'>
+    <h1>
+	Jungle分散実装
+    </h1>
+    <p>これまでの実装でJungleのデータが分散が行われるようになった。</p>
+    <p>しかしもう1つ問題がある。複数のノードから書き込まれるデータの整合性を取る方法が必要である。</p>
+    <p>JungleではこれをMergeを使うことで自動的に解決する。</p>
+    <p>Mergeとは2つ以上の変更の結果を受けて1つの変更に変えることである。</p>
+    <p>今回は、性能比較に用いる掲示板システムにMergeの実装を行った。</p>
+    <p>掲示板システムにおけるMergeを説明する。</p>
   </div>
 
+  <div class='slide'>
+    <h1>
+	掲示板システムにおけるMerge
+    </h1>
+    <p>2つの状態をもつ掲示板の書き込みができる。この2つの書き込みから新しい書き込みを作る。</p>
+    <p style="text-align:center;">
+	<img style="width:70%;" src="./images/bulletinboard_merge.png">
+    </p>
+    <p>掲示板はcommutativeなため、いつ書き込んでも良い。よってMergeが自動的に行える。</p>
+    <br/>
+  </div>
+
+  
+
 
   <div class='slide'>
     <h1>
-
+	    分散データベースJungleの評価
    </h1>
+	<p>分散データベースとしてJungleの性能を評価する。</p>
+	<p>分散Key-ValueデーターべースCassandraと比較を行う。</p>
+	<p>比較方法は、Jungle, Cassandra をそれぞれバックエンドとした簡易掲示板を作成する。</p>
+	<p>掲示板に対してHTTP Requestで並列に読み込みと書き込みの負荷をかけ計測する。</p>
+	<p>レスポンスが返る平均時間と標準偏差を求めグラフ化する</p>
   </div>
 
 
   <div class='slide'>
-    <h1>
-
-   </h1>
+      <h1>
+	  実験内容
+      </h1>
+	<p>実験は2つ行う</p>
+	<li>実験1:サーバを単体で起動し、複数のクライアントからの負荷をかける。</li>
+	<p style="text-align:center;">
+	    <img style="width:60%;" src="./images/cluster_request_server.png">
+	</p>
+	<p>サーバ単体の性能を比較する。</p>
+	<p>クライアントの増加に対してサーバ1台にかかるリクエストも増加</p>
   </div>
 
+  <div class='slide'>
+      <h1>
+	  実験内容
+      </h1>
+	<li>実験2:サーバを単体で起動し、複数のクライアントからの負荷をかける。</li>
+	<p style="text-align:center;">
+	    <img style="width:60%;" src="./images/clients_request_servers.png">
+	</p>
+	<p>分散環境下における性能を比較する。</p>
+	<p>クライアントとサーバがともに増加するため、サーバ一台に対するリクエストは変わらず。</p>
+	<p>サーバが全体で受けるリクエストは増加する。</p>
+  </div>
 
   <div class='slide'>
     <h1>
@@ -303,11 +345,10 @@
 	<p style="text-align:center;">
 	    <img style="width:70%;" src="./images/cluster_request_server.png">
 	</p>
+       <p>レスポンス速度(縦軸の数値)が低い程良い</p>
+       <p>クライアント(横軸の数値)の増加に対してレスポンス速度の増加がゆるやかなものほどよい</p>
   </div>
 
-
-
-
   <div class='slide'>
     <h1>
 	単体サーバへの負荷:読み込み負荷
@@ -351,7 +392,7 @@
 	   <img style="width:70%;" src="./images/clients_request_servers.png">
        </p>
        <p>レスポンス速度(縦軸の数値)が低い程良い</p>
-       <p>クライアトとノードの数(横軸の数値)の増加に対してレスポンス速度の増加がゆるやかなものほどよい</p>
+       <p>クライアントとノードの数(横軸の数値)の増加に対してレスポンス速度の増加がゆるやかなものほどよい</p>
   </div>