Mercurial > hg > Members > shoshi > 3Q > srl20110114
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>