diff index.html @ 0:33ef50590b20 default tip

hg init
author shoshi
date Fri, 14 Jan 2011 11:12:27 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/index.html	Fri Jan 14 11:12:27 2011 +0900
@@ -0,0 +1,213 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<title>Cassandraを利用したサービスのPCクラスタを利用したスケーラビリティの検証</title>
+<!-- metadata -->
+<meta name="generator" content="S5" />
+<meta name="version" content="S5 1.1" />
+<meta name="presdate" content="20100807" />
+<meta name="author" content="ShoshiTAMAKI" />
+<meta name="company" content="University of Ryukyus" />
+<meta http-equiv="ContentType : text/html; charset=UTF-8"/>
+<!-- configuration parameters -->
+<meta name="defaultView" content="slideshow" />
+<meta name="controlVis" content="hidden" />
+<!-- style sheet links -->
+<link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
+<link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
+<link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
+<link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
+<!-- embedded styles -->
+<style type="text/css" media="all">
+.imgcon {width: 525px; margin: 0 auto; padding: 0; text-align: center;}
+#anim {width: 270px; height: 320px; position: relative; margin-top: 0.5em;}
+#anim img {position: absolute; top: 42px; left: 24px;}
+img#me01 {top: 0; left: 0;}
+img#me02 {left: 23px;}
+img#me04 {top: 44px;}
+img#me05 {top: 43px;left: 36px;}
+</style>
+<!-- S5 JS -->
+<script src="ui/default/slides.js" type="text/javascript"></script>
+</head>
+<body>
+
+<div class="layout">
+<div id="controls"><!-- DO NOT EDIT --></div>
+<div id="currentSlide"><!-- DO NOT EDIT --></div>
+<div id="header"></div>
+<div id="footer">
+<h1>Cassandraを利用したサービスのPCクラスタを用いたスケーラビリティの検証</h1>
+<h2>shizuku.cr.ie.u-ryukyu.ac.jp</h2>
+</div>
+
+</div>
+<div class="presentation">
+
+<div class="slide">
+<h1>Cassandraを利用したサービスのPCクラスタを用いたスケーラビリティの検証</h1>
+<h3>Shoshi TAMAKI , Shinji KONO</h3>
+<h4><a href="http://www.cr.ie.u-ryukyu.ac.jp/">University of Ryukyus</a></h4>
+</div>
+
+<div class="slide">
+<h1>研究の目的</h1>
+<p>インターネット上のサービスで重要なのはスケーラビリティ、つまり、ユーザのアクセスの増大に対して一定のサービス品質を提供することである。
+<p>
+スケーラブルなサービスを提供するために分散Key-Value store Cassandra が注目されている。 RDBの個々のテーブルも、Key-Value store と見ることができる。
+<p>
+本研究では,特に汎用性のある木構造を扱うインターネットサービスに着目する。Cassandra 上に木構造を取り扱うサービスをスケーラブルに提供するフレームワークを設計し実装する。
+</div>
+
+<div class="slide">
+<h1>研究のスケジュール</h1>
+<small>
+<ul>
+	<li>第1クォーター:Cassandraの検証</li>
+	<li>第2クォーター:スケーラビリティの高いサービスの設計</li>
+	<li>第3クォーター:<span style="color:red;">スケーラビリティの高いサービスの実装</span></li>
+	<li>第4クォーター:実装したサービスの検証</li>
+</ul>
+<p>1Qでは、Cassandra のPCクラスタを用いたスケーラビリティを実験する環境を構築した。</p>
+<p>しかし、1対1の環境ではmySQLの方が性能が良かった。</p>
+<p>今回はCassandraが実際にスケールすることを確認した。</p>
+<p>その結果を元に、木構造をスケーラブルに取り扱うシステムの設計を行なった。</p>
+</small>
+<div>
+
+<div class="slide">
+<h1>1Qまでのあらすじ</h1>
+<p>前回の発表では以下のことについて発表を行った.</p>
+<ul>
+	<li>Cassandraの紹介と基本的な使用方法</li>
+	<li>Cassandraを利用したアプリケーション</li>
+	<li>コンシステント・ハッシュ</li>
+	<li>1台のクライアントとサーバーを用いた簡単なベンチマーク</li>
+</ul>
+<p>シンプルなベンチマークではMySQLにCassandraでは超えられられなかった</p>
+<p>課題として,Cassandraがスケールする条件の検証が残った.</p>
+</div>
+
+<div class="slide">
+<h1>2Qまでのあらすじ</h1>
+<ul>
+	<li>スケーラビリティの検証環境をTorqueを使って構築した</li>
+	<li>Cassandraが実際にスケールすることを実験で確認した</li>
+	<li>スケーラビリティの高い木構造を対象としたサービスの設計を行った</li>
+</ul>
+<small>
+<p>3Qの課題としてCassandraのノード数を増やした場合、コア数の多いサーバの場合の検証が必要なこともわかった。</p>
+<p>プロタイプ実装でも実験によってスケーラビリティを確認しながら設計/実装を深めていく必要がある。</p>
+</small>
+</div>
+
+<div class="slide">
+<h1>非破壊木構造Editorの実装</h1>
+<ul>
+<li>イメージとしては分散リポジトリ(Git,Mercurial)</li>
+<li>APIとしてcommit,push,pull,update,discard,mergeがある。</li>
+<li>木構造をコピーし、ローカルへ保存して編集しリモートへ更新する。(非破壊的)</li>
+<li>更新は変更をコミットする際に検出する。(ポーリングの利用)</li>
+</ul>
+</div>
+
+<div class="slide">
+<h1>非破壊木構造Editorの実装</h1>
+<div align="center">
+<img width="60%" src="pics/editor01.png"/>
+</div>
+</div>
+
+<div class="slide">
+<h1>非破壊木構造Editorの実装</h1>
+<ul>
+<li>このEditorを各ステージ(ブラウザ上、APIサーバー上、Cassandra)において実装する。</li>
+<li>こうすることで非破壊構造を分散して構築することが出来る。</li>
+</ul>
+</div>
+
+<div class="slide">
+<h1>リンクの実装</h1>
+<small>
+<ul>
+<li>非破壊木構造の特性上、ルートノードに負荷がかかる。</li>
+<li>そのため、リンクを導入しある部分で親ノードに更新が伝搬しないようにする。</li>
+<li>リンクされた先をルートノードとし編集することでリンクの親ノードへ更新は伝搬されない。</li>
+</ul>
+</small>
+<div align="center">
+<img width="75%" src="pics/link.png"/>
+</div>
+</div>
+
+<div class="slide">
+<h1>現在の開発状況</h1>
+<ul>
+<li>グラフィカルな編集ツールの動作(ツリー編集前)</li>
+</ul>
+<div align="center">
+<img width="45%" src="./pics/gui1.png"/>
+</div>
+</div>
+
+<div class="slide">
+<h1>現在の開発状況</h1>
+<ul>
+<li>グラフィカルな編集ツールの動作(ツリー編集後)</li>
+</ul>
+<div align="center">
+<img width="45%" src="./pics/gui2.png"/>
+</div>
+</div>
+
+<div class="slide">
+<h1>現在の開発状況</h1>
+<ul>
+<li>開発環境はJavaとEclipse</li>
+<li>オンメモリ上とCassandra上の実装を同時に進行中</li>
+<li>非破壊木構造EditorのInterface定義</li>
+</ul>
+<pre>
+public interface Editor extends Browser
+{
+	//ユーザー認証
+	public void login(String user,String pass);
+	public void logout();
+	//編集するノードを複製して取得
+	public Node edit(Node _target);
+	//編集結果を確定する
+	public boolean commit(boolean _force);
+	public boolean update(); //最新にする
+	public void merge(); //編集の衝突を解決する
+}
+</pre>
+</div>
+
+<div class="slide">
+<h1>まとめ</h1>
+<ul>
+	<li>非破壊木構造Editorは分散リポジトリを参考にした構造。</li>
+	<li>ローカルにコピーし、それを非破壊的に変更していく。</li>
+	<li>複数ステージにおいてツリーをコピーし、それぞれの段階で非破壊的に編集する。</li>
+	<li>ルートノードの負荷分散のためにリンクを導入する。</li>
+</ul>
+</div>
+
+<div class="slide">
+<h1>今後の課題</h1>
+<ul>
+	<li>実装したEditorを使ったベンチマークテスト</li>
+	<li>引き続きEditorの実装</li>
+	<li>レンダリングエンジンの実装</li>
+</ul>
+</div>
+
+<div class="slide">
+<h2>ご清聴ありがとうございました</h2>
+</div>
+
+</body>
+</html>