annotate shoshi-paper.tex @ 7:f542388881a9 default tip

added slides beta
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Sun, 25 Sep 2011 03:42:16 +0900
parents bd7d39a4e57f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 % Sample file for the use of compsoft style file.
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \documentclass[T]{compsoft}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 % Preamble
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 %
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
7 % 「コンピュータソフトウェア」誌に掲載される論文の場合, 次で
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
8 % 巻数, 号数, 開始ページ, 終了ページを指定する.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 %\volNoPp{16}{5}{78}{83}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
11 % ワークショップによる推薦論文の場合, ワークショップ名を指定する.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 % \suisen{ワークショップ名}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
14 % 特集の場合, 特集のタイトルを与える.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 % \tokushu{特集のタイトル}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
17 % 大会論文の場合, \taikai で開催年を指定する. ここで指定した年から
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
18 % 大会の回数は計算される.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \taikai{2011}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
21 % ここに, 使用するパッケージを列挙する.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \usepackage[dvipdfm]{graphicx}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \usepackage{mediabb}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \usepackage{url}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
26 % ユーザが定義したマクロなどはここに置く. ただし学会誌のスタイルの
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
27 % 再定義は原則として避けること.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 \begin{document}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 % 論文のタイトル
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 \title{Cassandraと非破壊的構造を用いたCMSのスケーラビリティ検証環境の構築}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 % 著者
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
35 % 和文論文の場合, 姓と名の間には半角スペースを入れ,
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 % 複数の著者の間は全角スペースで区切る
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 \author{玉城 将士 \and 河野 真治
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 %
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
40 % ここにタイトル英訳 (英文の場合は和訳) を書く.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 \ejtitle{Constructing Scalability Evaluation Environment for CMS using Monotonic-Tree Operation and Cassandra}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 % ここに著者英文表記 (英文の場合は和文表記) および
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
45 % 所属 (和文および英文) を書く.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
46 % 複数著者の所属はまとめてよい.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \shozoku{Shoshi TAMAKI, Shinji KONO}{琉球大学理工学研究科情報工学専攻}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 {Dept. \ of Information Engineering, Ryukyu University}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 %
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
51 % 出典情報は \shutten とすれば出力される.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 %\shutten
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 %
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
54 % 受付年月日, 記事カテゴリなどは自動的に生成される.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 %\uketsuke{1999}{8}{3}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 %
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
57 % その他, 脚注に入れるものがあれば, \note に記述する.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 %\note{脚注に入れる内容}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 }
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
61 % 全角,全角. を使わない.,<sp> .<sp> を使う.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
62 % テ゛になっているのがある.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
63 % 行頭の間隔は使わない
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
64 % 段落は1行空ける
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 % 和文アブストラクト
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 \Jabstract{%
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
68 本研究では, スケーラビリティのあるCMSを開発するために, PCクラスタを利用したスケーラビリティの検証環境を構築し, ロックフリーな木構造である非破壊的木構造・多段キャッシュ・Cassandraを用いた設計と実装を行って来た.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
69 今回は, 実装したシステムのスケーラビリティを検証するため, 構築した検証環境を用いてベンチマークを取り, スケーラビリティがあるか確認するために, 環境構築を行った.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
70 また, 非破壊的木構造をバランス木に応用し, バランス木の性能であるO(log N)を保ちつつ並列に読み・書き込みが可能である辞書アルゴリズムの提案をする.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 }
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 % 英文アブストラクト(大会論文には必要なし)
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 % \Eabstract{}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 %
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 \maketitle
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 \section{はじめに}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
79 Cassandraは複数のサーバーで動作を想定した分散デデータベースある. Cassandraは, FaceBookが自社のために開発した分散Key-Valueストアデータベースであり, Dynamo\cite{DYNAMO}とBigTable\cite{BIGTABLE}を合わせた特徴を持っている.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
80 2008年にオープンソースとして公開され, 2009年にApache Incubatorのプロジェクトとなり,現在でも頻繁にバージョンアップが行われている. 本研究は, Cassandraの検証と非破壊的木構造を用いたスケーラビリティのあるCMSの設計と開発を行った.
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
81 非破壊的木構造を用いたCMSのとは, 木構造で表すことの出来るコンテンツを編集する際に, 編集元の木構造を破壊することなく編集するアルゴリズムである. これを利用してCassandra上に非破壊的木構造を構築しCMSを実装することができた.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
82 本研究では, 開発したCMSのスケーラビリティの検証を行うため, 仮想環境を用いた検証環境の構築と管理ソフトウェアを開発した.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
83
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 \section{非破壊的木構造}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
85 非破壊的木構造は, 木構造を編集する際に編集元の木構造を破壊することなく, 新しく木構造を構築する. 新しい木構造のルートノードを置き換えることにより編集する方法である.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
86 非破壊的に変更することで, 編集元の木構造を破壊することなく編集することが出来るため, 木構造の整合性を保ちつつ変更することが可能になる. \\
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
87 従来の破壊的木構造は, 存在する木構造を書き換えて編集する. 以下の様な操作を行う.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 \includegraphics[scale=0.5]{dest-tree1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 \caption{木構造の破壊的変更例}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 \label{fig:dest-tree1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 \end{figure}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
95 図\ref{fig:dest-tree1}の操作では, ノード$F$の内容をノード$G$に書き換える操作を行った. 破壊的変更では, 単純に編集したいノードを書き換えることにより行われる. この操作では, 編集時に木を参照している処理がある場合, 参照されている木構造を破壊するため, 参照を開始した時点での木構造の整合性が破壊されるという問題が起きる.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 \includegraphics[scale=0.4]{dest-tree2.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 \caption{破壊的変更の問題点}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 \label{fig:dest-tree2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 \end{figure}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
103 この問題を解決するためには, 木構造の操作に排他制御を取り入れてロックする必要がある. しかし, その方法ではスケーラビリティを確保できるとは考えられないため, 非破壊的な変更を用いて木構造を編集する. \\
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
104 木構造の非破壊的な変更は, 編集元の木構造を破壊せずに編集を行う, 編集の様子を図\ref{fig:mono-tree1}に示す. 図\ref{fig:mono-tree1}では図\ref{fig:dest-tree1}と同様にノード$F$の内容をノード$G$に書き換える処理を行っている.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
105
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 \includegraphics[scale=0.4]{mono-tree1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 \caption{木構造の非破壊的変更例}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 \label{fig:mono-tree1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
113
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
114 この方法での編集は以下の手順を用いて行われる.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \begin{enumerate}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
116 \item{ルートノードであるノード$A$から編集対象であるノード$F$までのパスをコピーする. (ノード$A,C,F$をコピーする)}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
117 \item{パスに含まれないノードは編集元のノードと共有する. (コピーノード$A$からノード$B$へリンクを作成する)}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
118 \item{編集対象であるノード$F$は編集せず, コピーしたノード$F$をノード$G$へと編集する. }
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
119 \item{木構造のルートノードをノード$A$からコピーしたノード$A$へと置き換える. }
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 \end{enumerate}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
121 この手順では, 元の木構造は破壊されることは無く, 木の閲覧者が存在していても閲覧している木構造の整合性が破壊されることはない.
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
122 よって, 並列に読み書きを行うことが出来る.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
124 \section{非破壊的木構造を用いた二分木辞書}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
125
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
126 この方法の応用例として非破壊的木構造とバランス木を用いた二分木辞書を考えることが出来る. 二分木辞書とは二分探索を用いたO(lg n)を保証する辞書アルゴリズムである. 二分木辞書では, バランスのとれた木構造を維持するためにバランス木のアルゴリズムを利用する.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
127 これらのアルゴリズムと非破壊的木構造を組み合わせることにより, 並列に読み書きを行うことが出来る辞書を作成することが出来る.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
128 また, この辞書アルゴリズムの利点として辞書全体のコピーにかかる計算量がO(1)で済むことも利点の一つである.
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
129 \subsection{AVL-Treeを用いた非破壊的二分木辞書}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
130
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
131 実装例として, AVL-Treeを用いた非破壊的二分木辞書を紹介する. この辞書は読み書きがO(lg n)かつ辞書の複製のコストがO(1)で有ることを保証する.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 \begin{enumerate}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
133 \item{辞書の読み込み}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
134
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
135 非破壊二分木辞書の読み込みは通常の二分木と同様で, ルートノードよりキーの大小関係を比較し値を検索する.
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
136 キーを検索する際に, 二分木辞書で使われている木構造は破壊されることがないため, 並列に行うことが出来き, スレッドセーフである.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
137 \item{辞書の書き込み}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
138
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
139 非破壊辞書の書き込みは以下の手順で行われる.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 \begin{enumerate}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
141 \item{二分木探索より, 書きこむ場所を特定する. この時, 同時に通過したノードのコピーを行う. }
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 \includegraphics[scale=0.4]{mono-dic1.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 \caption{手順1:ノードのコピーと書き込み}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 \label{fig:mono-dic1}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
149
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
150 図\ref{fig:mono-dic1}では, 木構造に新しくノード$7$を追加する. そのため, 編集元の二分木より$50,25,15$のノードをコピーする. 他の影響のない$100,35$は共有する.
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
151 \item{ローカルにコピーしたノードを編集し, 書き込みむ}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
152
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
153 次に, コピーした木構造を編集し書き込みを行う. 図\ref{fig:mono-dic1}の例ではノード$15$の右部分に新しくノード$7$を追加する.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
154 \item{コピーし編集したノードよりルートノードまでを走査し, 木の回転が必要な場合は回転させる. }
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 \includegraphics[scale=0.4]{mono-dic2.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 \caption{手順2:コピーした木構造のバランス}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 \label{fig:mono-dic2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
162
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
163 新しく構築した二分木のバランスさせるために木構造を追加したノードよりルートノードまで辿りバランスを確認する. 図\ref{fig:mono-dic2}ではノードを$7-15-25-50$とルートへとバランスを確認し, 回転が必要であるノード$50$の位置で木の回転を行う.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
164 \item{CASを用いて, ルートノードへの参照を入れ替える. }
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
165 最後に, 二分木辞書がルートノードとして保持している編集元の木構造を, 新しい木構造へと置き換える. この時CASを使用することによりアトミックに置き換える. 他のスレッドがこの木構造を編集し置き換えていた場合, この処理は失敗する. その場合, 再度, 非破壊的に編集を行う.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 \begin{figure}[!htbp]
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 \begin{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 \includegraphics[scale=0.4]{mono-dic3.pdf}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 \end{center}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 \caption{手順3:非破壊的に編集した木構造の適用}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 \label{fig:mono-dic2}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 \end{figure}
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 \end{enumerate}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
174 \item{辞書のコピー}
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
175
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
176 非破壊辞書のコピーは, 単にルートノードを共有するだけで行うことが出来る. 木構造は破壊されないため, 元の木構造は不変である. 共有した木構造を元にローカル新しい木構造を作成していくため, 問題は起きない. よって, この場合の計算量は定数でありO(1)である.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 \end{enumerate}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
178 この二分木辞書は主に, 辞書をコピーするときに効果を発揮する. 本研究で開発した非破壊的構造を用いたCMSでは, 木構造を編集する際に, ノードの持つ属性を同時にコピーする.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
179 本来は単純な辞書のコピーで合ったが, これを非破壊的二分木辞書を利用することで改善することが出来るのではないかと考えられる.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 \section{非破壊的木構造を用いたCMS}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
182
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
183 本研究では, 非破壊木構造を用いてスケーラビリティのあるCMSの設計と実装を行った. \cite{SHOSHI2}本システムではコンテンツを木構造で表現する. Cassandra上に木構造を構築し, それを非破壊的に編集する. 図\ref{fig:tree-cms1}に概略図を示す.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
184 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
185 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
186 \includegraphics[scale=0.2]{tree-cms1.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
187 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
188 \caption{システムのアーキテクチャ}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
189 \label{fig:tree-cms1}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
190 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
191 本システムでは, Cassandra上に木構造を構築するサーバー(API Server)を設ける, サーバーの提供するAPIを用いてコンテンツを非破壊的に操作することができる.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
192 WebServerはAPI Serverを利用してコンテンツを操作しコンテンツの配置を記述したレイアウトを用いてレンダリングを行い, 木構造を編集する際には専用のエディタを提供する. (図\ref{fig:tree-cms2})
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
193 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
194 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
195 \includegraphics[scale=0.35]{tree-cms2.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
196 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
197 \caption{木構造のレンダリングと編集}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
198 \label{fig:tree-cms2}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
199 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
200 また, 各段階(API Server , WebServer , Browser)で木構造のキャッシュを保持している. 各段階のキャッシュは, 親の木構造に対してコミット, マージ処理を行うことができ, 分散レポジトリと同様の機能を提供している. こうすることでスケーラビリティを確保することが出来ると考えられる.
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
201 (図\ref{fig:tree-cms3})
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
202 \begin{figure}[!htbp]
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
203 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
204 \includegraphics[scale=0.35]{tree-cms3.pdf}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
205 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
206 \caption{多段キャッシュとマージ処理}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
207 \label{fig:tree-cms3}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
208 \end{figure}
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 \section{検証環境の構築}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
210 検証では, 新しく導入されたブレードサーバーによる仮想環境において検証環境を構築する. \cite{SHOSHI1}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
211 仮想環境のホストとして利用するサーバーを表\ref{tab:bldsv-info}に示す.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
212 \begin{table}[!htbp]
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
213 \caption{検証環境に用意したサーバー}
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
214 \label{tab:bldsv-info}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
215 \begin{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
216 \begin{tabular}{|c|c|c|c|} \hline
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
217 サーバー名 & CPU & メモリ & 仮想化 \\ \hline \hline
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
218 server01 & Xeon X5650 x2 & 130GB & VMware ESX \\ \hline
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
219 server02 & Xeon X5650 x2 & 130GB & VMware ESX \\ \hline
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
220 server03 & Xeon X5650 x2 & 130GB & VMware ESX \\ \hline
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
221 server04 & Xeon X5650 x2 & 130GB & KVM \\ \hline
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
222 \end{tabular}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
223 \end{center}
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
224 \end{table}
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 \subsection{仮想環境}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
226 仮想化とは1つの物理マシン上にて複数のオペレーティングシステムを動作させる技術である. 物理マシンにハイパーバイザと呼ばれる物理マシンのリソースを仮想化するレイヤを追加する.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
227 ハイパーバイザは仮想マシンを作成し仮想化したリソースを仮想マシンに提供する. その上でオペレーティングシステムを動作させることで, 複数のオペレーティングシステムの稼働を可能にする.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
228 ハイパーバイザは複数ありVMWare,KVM,Xen,Hyper-Vなどがあげられる. 本検証では, KVMとVMWareを用いた検証を行う予定である.
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
229 \subsection{仮想環境を用いた検証方法の検討}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
230 仮想環境を用いた検証方法は基本的に前回\cite{SHOSHI1}のPCクラスタを用いたスケーラビリティ検証と同様の方法を採用する. (図\ref{fig:bench-method1})
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
231 つまり, 並列アクセス用のクライアントクラスタとサーバー用のクラスタを用意する. 今回は, server01-03をクライアントクラスタ用の仮想環境に, server04をサーバークラスタ用の仮想環境として用いる.
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
232 \begin{figure}[!htbp]
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
233 \begin{center}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
234 \includegraphics[scale=0.35]{bench-method1.pdf}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
235 \end{center}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
236 \caption{PCクラスタを用いたベンチマーク方法}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
237 \label{fig:bench-method1}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
238 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
239 今回の検証では, PCクラスタを用いるのではなく仮想環境利用する. 仮想環境において複数の仮想マシンで物理マシンのリソースを共有することになるため, 仮想マシン同士が物理マシンのリソースを奪い合う可能性が出てくる. リソースの奪い合いによる, 仮想マシンの性能低下を防ぐため, 仮想マシンのリソースを予約・制限する必要がある. (図\ref{fig:bench-method2})
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
240 仮想マシンのリソースを予約・制限すると, 制限以上の性能は出なくなる. それを応用し, 物理マシンのリソースの範囲内で同様の仮想マシンを構築することにより台数効果も検証できるのではないかと思われる.
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
241 \begin{figure}[!htbp]
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
242 \begin{center}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
243 \includegraphics[scale=0.4]{bench-method2.pdf}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
244 \end{center}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
245 \caption{仮想環境を用いたクラスタ環境の構築}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
246 \label{fig:bench-method2}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
247 \end{figure}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
248 以上のように仮想環境を構築し仮想環境において検証を行う. 仮想環境の構築において, 複数の仮想マシンを操作することが必要となる.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
249 通常, 物理マシンのコンソールより個々の仮想マシンを操作する作業は効率が悪いため, 管理ツールの開発を行う.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 \subsection{仮想化管理ツールの実装}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
251 仮想環境で複数の仮想マシンを操作する場合, 仮想マシン個々の設定を物理マシンのコンソールより操作するのは大変困難な作業であり, 仮想化管理ツールの利用が必須であると考えられる.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
252 そこで, 本研究では初めに仮想環境を管理するツールを開発し, 検証環境の構築に利用する.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
253 \subsubsection{libvirt}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
254 libvirtとは, 複数ある仮想環境においてノードをリモートより共通で十分に安全な安定した管理方法を提供するライブラリである. この場合のノードは1台の物理的なマシンであり, ドメインは仮想マシンを指す.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
255 様々な言語とハイパーバイザ, ユーザーの認証方法に対応している.
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
256 \begin{enumerate}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
257 \item{ハイパーバイザ}\\
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
258 KVM,Xen,VirtualBox,VMWare,etc..
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
259 \item{プログラミング言語}\\
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
260 C,Python,C\#,Java,Perl,Ruby,PHP,etc..
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
261 \end{enumerate}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
262 libvirtを用いた仮想化管理ツールは複数存在している, 以下にその一例を示す.
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
263 \begin{table}[!htbp]
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
264 \caption{libvirtを用いた管理ツール}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
265 \begin{center}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
266 \begin{tabular}{|c|c|} \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
267 virsh & CUI \\ \hline
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
268 virt-manager & GUI \\ \hline
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
269 oVirt,AbiCloud,etc... & Web \\ \hline
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
270 \end{tabular}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
271 \end{center}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
272 \end{table}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
273 {\tt libvirt}を用いた管理ツールは複数存在するが, インストールが複雑であり, 必要のない機能を実装してることが多い. そこで, 導入が用意であり, かつ十分な機能を提供するウェブ上の管理ツールを実装する.
1
600b5de23cc6 added description of TreeCMS
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
274 \subsubsection{webvirt}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
275 {\tt webvirt}とは, 本研究室で開発した仮想環境のウェブ管理ツールである. ウェブアプリケーションフレームワークであるCakePHPとlibvirt-phpを用いて開発した.
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
276 webvirtは, シンプルで十分なシングルノード上でのウェブ仮想化管理ツールを目指して開発した. インストールに必要なのはPHPが動作可能なウェブサーバー・PHP・libvirt-phpのみであり, 主な機能として, 以下の機能を提供する.
2
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
277 \begin{itemize}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
278 \item{VNCViewer(TightVNCViewer2)}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
279 \item{仮想マシンのシャットダウン}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
280 \item{仮想マシンの起動}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
281 \item{仮想マシンの定義・変更}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
282 \item{ストレージプールの管理}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
283 \item{ネットワークの管理}
d9e526a0e9ff added description of webvirt and virtualization.
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
284 \end{itemize}
5
bb4327f3c4c4 format fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
285 また, シングルノードのみを管理する目的で開発されているため, ライブマイグレーションなどの機能は実装していない.
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
286 \section{まとめ}
6
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
287 本研究では, 開発した非破壊的構造を用いたCMSのスケーラビリティ検証を行うため, 仮想環境における検証環境の構築方法について検討した.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
288 基本的な方法は前回\cite{SHOSHI1}と同様に行い, クライアントクラスタとサーバークラスタの仮想環境を構築する必要がある.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
289 仮想環境下では, 仮想マシンによる物理リソースの取り合いを防ぐため, 仮想マシンのリソースを予約・制限しつつ構築する必要があることが分かった. 仮想マシンは複数存在するため管理が困難だと考えられ,ウェブ上の管理用ツールを開発した.
bd7d39a4e57f correct spellmiss,wordiness,etc...
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
290 また, 非破壊的構造の応用例として並列に読み書きを行うことの出来るバランス木を用いた二分木辞書の実装例を示した. 次回は, 構築した仮想環境によるスケーラビリティの検証を行う予定である.
3
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
291
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
292 \begin{adjustvboxheight} % needed only when Appendix follows
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
293 \begin{thebibliography}{99}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
294 \bibitem{BIGTABLE}{Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
295 Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber}: Bigtable : A Distributed Storege System for Structured Data
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
296 \bibitem{DYNAMO} {Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati , Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall , Werner Vogels}:
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
297 Dynamo: Amazon's Highly Avaliable Key-value Store , SOSP (2007)
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
298 \bibitem{SHOSHI1}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
299 {Shoshi TAMAKI,Shinji KONO}:Cassandraを用いたCMSのPCクラスタを用いたスケーラビリティの検証,ソフトウェア科学会 (2010)
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
300 \bibitem{SHOSHI2}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
301 {Shoshi TAMAKI,Shinji KONO,Yu TANINARI}:
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
302 Cassandraを使ったスケーラビリティのあるCMSの設計,情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
303
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
304 \end{thebibliography}
d779b8753c55 added conclusions and modified desc of treecms , benchmark method
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
305 \end{adjustvboxheight} % needed only when Appendix follows
0
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
306
50a9279c19eb hg init and
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 \end{document}