view 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 source

<!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>