comparison index.html @ 0:33ef50590b20 default tip

hg init
author shoshi
date Fri, 14 Jan 2011 11:12:27 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:33ef50590b20
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4 <html xmlns="http://www.w3.org/1999/xhtml">
5
6 <head>
7 <title>Cassandraを利用したサービスのPCクラスタを利用したスケーラビリティの検証</title>
8 <!-- metadata -->
9 <meta name="generator" content="S5" />
10 <meta name="version" content="S5 1.1" />
11 <meta name="presdate" content="20100807" />
12 <meta name="author" content="ShoshiTAMAKI" />
13 <meta name="company" content="University of Ryukyus" />
14 <meta http-equiv="ContentType : text/html; charset=UTF-8"/>
15 <!-- configuration parameters -->
16 <meta name="defaultView" content="slideshow" />
17 <meta name="controlVis" content="hidden" />
18 <!-- style sheet links -->
19 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
20 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
21 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
22 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
23 <!-- embedded styles -->
24 <style type="text/css" media="all">
25 .imgcon {width: 525px; margin: 0 auto; padding: 0; text-align: center;}
26 #anim {width: 270px; height: 320px; position: relative; margin-top: 0.5em;}
27 #anim img {position: absolute; top: 42px; left: 24px;}
28 img#me01 {top: 0; left: 0;}
29 img#me02 {left: 23px;}
30 img#me04 {top: 44px;}
31 img#me05 {top: 43px;left: 36px;}
32 </style>
33 <!-- S5 JS -->
34 <script src="ui/default/slides.js" type="text/javascript"></script>
35 </head>
36 <body>
37
38 <div class="layout">
39 <div id="controls"><!-- DO NOT EDIT --></div>
40 <div id="currentSlide"><!-- DO NOT EDIT --></div>
41 <div id="header"></div>
42 <div id="footer">
43 <h1>Cassandraを利用したサービスのPCクラスタを用いたスケーラビリティの検証</h1>
44 <h2>shizuku.cr.ie.u-ryukyu.ac.jp</h2>
45 </div>
46
47 </div>
48 <div class="presentation">
49
50 <div class="slide">
51 <h1>Cassandraを利用したサービスのPCクラスタを用いたスケーラビリティの検証</h1>
52 <h3>Shoshi TAMAKI , Shinji KONO</h3>
53 <h4><a href="http://www.cr.ie.u-ryukyu.ac.jp/">University of Ryukyus</a></h4>
54 </div>
55
56 <div class="slide">
57 <h1>研究の目的</h1>
58 <p>インターネット上のサービスで重要なのはスケーラビリティ、つまり、ユーザのアクセスの増大に対して一定のサービス品質を提供することである。
59 <p>
60 スケーラブルなサービスを提供するために分散Key-Value store Cassandra が注目されている。 RDBの個々のテーブルも、Key-Value store と見ることができる。
61 <p>
62 本研究では,特に汎用性のある木構造を扱うインターネットサービスに着目する。Cassandra 上に木構造を取り扱うサービスをスケーラブルに提供するフレームワークを設計し実装する。
63 </div>
64
65 <div class="slide">
66 <h1>研究のスケジュール</h1>
67 <small>
68 <ul>
69 <li>第1クォーター:Cassandraの検証</li>
70 <li>第2クォーター:スケーラビリティの高いサービスの設計</li>
71 <li>第3クォーター:<span style="color:red;">スケーラビリティの高いサービスの実装</span></li>
72 <li>第4クォーター:実装したサービスの検証</li>
73 </ul>
74 <p>1Qでは、Cassandra のPCクラスタを用いたスケーラビリティを実験する環境を構築した。</p>
75 <p>しかし、1対1の環境ではmySQLの方が性能が良かった。</p>
76 <p>今回はCassandraが実際にスケールすることを確認した。</p>
77 <p>その結果を元に、木構造をスケーラブルに取り扱うシステムの設計を行なった。</p>
78 </small>
79 <div>
80
81 <div class="slide">
82 <h1>1Qまでのあらすじ</h1>
83 <p>前回の発表では以下のことについて発表を行った.</p>
84 <ul>
85 <li>Cassandraの紹介と基本的な使用方法</li>
86 <li>Cassandraを利用したアプリケーション</li>
87 <li>コンシステント・ハッシュ</li>
88 <li>1台のクライアントとサーバーを用いた簡単なベンチマーク</li>
89 </ul>
90 <p>シンプルなベンチマークではMySQLにCassandraでは超えられられなかった</p>
91 <p>課題として,Cassandraがスケールする条件の検証が残った.</p>
92 </div>
93
94 <div class="slide">
95 <h1>2Qまでのあらすじ</h1>
96 <ul>
97 <li>スケーラビリティの検証環境をTorqueを使って構築した</li>
98 <li>Cassandraが実際にスケールすることを実験で確認した</li>
99 <li>スケーラビリティの高い木構造を対象としたサービスの設計を行った</li>
100 </ul>
101 <small>
102 <p>3Qの課題としてCassandraのノード数を増やした場合、コア数の多いサーバの場合の検証が必要なこともわかった。</p>
103 <p>プロタイプ実装でも実験によってスケーラビリティを確認しながら設計/実装を深めていく必要がある。</p>
104 </small>
105 </div>
106
107 <div class="slide">
108 <h1>非破壊木構造Editorの実装</h1>
109 <ul>
110 <li>イメージとしては分散リポジトリ(Git,Mercurial)</li>
111 <li>APIとしてcommit,push,pull,update,discard,mergeがある。</li>
112 <li>木構造をコピーし、ローカルへ保存して編集しリモートへ更新する。(非破壊的)</li>
113 <li>更新は変更をコミットする際に検出する。(ポーリングの利用)</li>
114 </ul>
115 </div>
116
117 <div class="slide">
118 <h1>非破壊木構造Editorの実装</h1>
119 <div align="center">
120 <img width="60%" src="pics/editor01.png"/>
121 </div>
122 </div>
123
124 <div class="slide">
125 <h1>非破壊木構造Editorの実装</h1>
126 <ul>
127 <li>このEditorを各ステージ(ブラウザ上、APIサーバー上、Cassandra)において実装する。</li>
128 <li>こうすることで非破壊構造を分散して構築することが出来る。</li>
129 </ul>
130 </div>
131
132 <div class="slide">
133 <h1>リンクの実装</h1>
134 <small>
135 <ul>
136 <li>非破壊木構造の特性上、ルートノードに負荷がかかる。</li>
137 <li>そのため、リンクを導入しある部分で親ノードに更新が伝搬しないようにする。</li>
138 <li>リンクされた先をルートノードとし編集することでリンクの親ノードへ更新は伝搬されない。</li>
139 </ul>
140 </small>
141 <div align="center">
142 <img width="75%" src="pics/link.png"/>
143 </div>
144 </div>
145
146 <div class="slide">
147 <h1>現在の開発状況</h1>
148 <ul>
149 <li>グラフィカルな編集ツールの動作(ツリー編集前)</li>
150 </ul>
151 <div align="center">
152 <img width="45%" src="./pics/gui1.png"/>
153 </div>
154 </div>
155
156 <div class="slide">
157 <h1>現在の開発状況</h1>
158 <ul>
159 <li>グラフィカルな編集ツールの動作(ツリー編集後)</li>
160 </ul>
161 <div align="center">
162 <img width="45%" src="./pics/gui2.png"/>
163 </div>
164 </div>
165
166 <div class="slide">
167 <h1>現在の開発状況</h1>
168 <ul>
169 <li>開発環境はJavaとEclipse</li>
170 <li>オンメモリ上とCassandra上の実装を同時に進行中</li>
171 <li>非破壊木構造EditorのInterface定義</li>
172 </ul>
173 <pre>
174 public interface Editor extends Browser
175 {
176 //ユーザー認証
177 public void login(String user,String pass);
178 public void logout();
179 //編集するノードを複製して取得
180 public Node edit(Node _target);
181 //編集結果を確定する
182 public boolean commit(boolean _force);
183 public boolean update(); //最新にする
184 public void merge(); //編集の衝突を解決する
185 }
186 </pre>
187 </div>
188
189 <div class="slide">
190 <h1>まとめ</h1>
191 <ul>
192 <li>非破壊木構造Editorは分散リポジトリを参考にした構造。</li>
193 <li>ローカルにコピーし、それを非破壊的に変更していく。</li>
194 <li>複数ステージにおいてツリーをコピーし、それぞれの段階で非破壊的に編集する。</li>
195 <li>ルートノードの負荷分散のためにリンクを導入する。</li>
196 </ul>
197 </div>
198
199 <div class="slide">
200 <h1>今後の課題</h1>
201 <ul>
202 <li>実装したEditorを使ったベンチマークテスト</li>
203 <li>引き続きEditorの実装</li>
204 <li>レンダリングエンジンの実装</li>
205 </ul>
206 </div>
207
208 <div class="slide">
209 <h2>ご清聴ありがとうございました</h2>
210 </div>
211
212 </body>
213 </html>