Mercurial > hg > Papers > 2014 > nobuyasu-master
annotate paper/conclusion.tex @ 102:6f73e05d5024
Fixed chapter4.tex
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 15 Feb 2014 06:00:54 +0900 |
parents | 5c5d71d36c14 |
children | aed0bf04bdfb |
rev | line source |
---|---|
0 | 1 \chapter{結論} \label{chapter:conclusion} |
2 | |
3 \section{まとめ} | |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
4 本研究では, まず初めにRDBとNoSQLの説明を行い, 既存のNoSQLであるCassandra, MongoDB, Neo4jが |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
5 スケーラビリティをどのように確保しているかを述べた. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
6 次に木構造データベースJungleで使われている非破壊的木構造について述べ, 破壊的 |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
7 木構造に比べロックが少ないというメリットがあることを論じた. |
69 | 8 Jungleは非破壊的木構造により過去のデータを保持することでMergeを行うことができる等, 分散管理システム |
9 と似た分散設計が行えることを述べた. | |
10 また, Jungleの分散設計では当研究室で開発している並列分散フレームワークAliceを用いた. | |
11 Aliceにより自由にトポロジーを組むことができ, 他サーバノードへのデータアクセス機構を手に入れることができた. | |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
12 Jungleの分散実装ではデータの編集履歴であるTreeOperationLogをAliceが使用できるようにし, 木の名前と |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
13 いった必要な情報を追加することでデータの分散を行った. |
63
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
14 また, Jungleに元々設計されていたJournalを使ってログをディスクへ書き出すことで永続性の実装を行った |
69 | 15 最後に簡易掲示板を作成し, Cassandraとの性能比較を行った. |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
16 読み込み, 書き込みの負荷をかける実験を2つ行った. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
17 1つの実験ではサーバノード1台に対し複数のクライアントから負荷をかけた. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
18 2つめの実験では複数のクライアントに対し同じ数のサーバノードを用意し数を増やしていき負荷を高めた. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
19 どちらの実験もJungleがCassandraよりも良い結果を示すことを確認した. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
20 |
0 | 21 |
22 \section{今後の課題} | |
75
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
23 |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
24 |
76 | 25 \subsection{pull/push方式による分断耐性の実装} |
75
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
26 現在の実装のJungleは, プログラムの起動時に複数ノードが接続をしトポロジーを形成する. |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
27 プログラムの途中で接続がきれるとトポロジーがくずれたままになる. |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
28 接続がきれたJungleは単独では稼働し続けるが, トポロジーへの復帰を行えるようにしたい. |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
29 そのためには、今の実装で行っている非同期でログを送信する方法とは別に同期をとり差分のデータを伝搬する方法を |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
30 実装する必要がある。 |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
31 これは, 分散管理システムにおけるpull/push APIの機能にあたる. |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
32 |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
33 |
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
34 \if0 % push/pullの話と内容がかぶる? |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
35 \subsection{データ分割の実装} |
69 | 36 現在Jungleの分散実装は全てのデータを全てのノードで保持させる実装である. |
37 だが, この方法ではメモリの使用量が高いこととネットワーク帯域に対しての | |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
38 負荷が懸念される. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
39 そのため, ノード単位で保持するデータを分ける実装が必要になる. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
40 ノード毎に木構造単位で別々のデータを保持し, 持っていない木のデータ |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
41 に対して要求がくると他からとってきて返すといった機能が必要になる. |
75
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
42 \fi |
0 | 43 |
63
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
44 |
4
d42d2acf5d1d
Added some tex files
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
45 \subsection{Mergerアルゴリズムの設計} |
56
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
46 JungleはMergeを使うことでデータ衝突の問題を解決をはかるが, この |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
47 Mergeはアプリケーション毎に考えなければならない. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
48 今回, JungleにおけるMergeの例として掲示板プログラムにおけるMergeについて述べた. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
49 だが掲示板のような単純なMergeですむアプリケーションは少ない. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
50 また, アプリケーション毎でデータの保存の仕方といったものも違ってくる. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
51 そのため, アプリケーションに合ったMergeアルゴリズムを設計しなければならない. |
1d07365c60ff
Writed conclstion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
25
diff
changeset
|
52 |
20 | 53 |
75
986f07c56c83
Fixed conclusion
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
54 |
63
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
55 \subsection{過去のデータの掃除について} |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
56 Jungleは非破壊でデータを保持し続けるため, メモリの使用量が大きい. |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
57 ある程度の単位で過去のデータの掃除を行いたい. |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
58 今回分散実装を行ったことで, 多数のノードでデータが保持され, その内の数台が |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
59 ディスクへ書き出すといったことも可能になった. |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
60 だが, Mergeの問題含め, どのタイミングで過去のデータを掃除すべきかは自明ではない. |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
61 分断耐性の実装の問題とも関わってくるが, どのデータがどれだけ複製して持っているといった |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
62 情報も扱う必要がでてくるかもしれない. |
d770a2b534b3
Writed description of persistent
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
56
diff
changeset
|
63 |
20 | 64 |
74 | 65 |
20 | 66 %\subsection{Treeのバランスの問題} |