\contentsline {chapter}{\numberline {第1章}序論}{1} \contentsline {section}{\numberline {1.1}序論}{1} \contentsline {subsection}{\numberline {1.1.1}研究背景と目的}{1} \contentsline {subsection}{\numberline {1.1.2}本論文の構成}{2} \contentsline {chapter}{\numberline {第2章}分散データベースのスケーラビリティ検証}{3} \contentsline {section}{\numberline {2.1}スケーラビリティとは}{3} \contentsline {section}{\numberline {2.2}分散データベース Cassandra}{4} \contentsline {subsection}{\numberline {2.2.1}SEDA}{4} \contentsline {section}{\numberline {2.3}分散データベースCassandraのスケーラビリティ検証}{5} \contentsline {subsubsection}{検証方法}{5} \contentsline {subsection}{\numberline {2.3.1}検証環境}{5} \contentsline {subsection}{\numberline {2.3.2}検証結果}{6} \contentsline {subsubsection}{2Coreを搭載したコア数の少ないサーバーを用いた検証}{6} \contentsline {subsubsection}{4Core8Threadsを搭載したコア数の多いサーバーを用いた検証}{7} \contentsline {subsection}{\numberline {2.3.3}まとめ}{7} \contentsline {chapter}{\numberline {第3章}分散コンテンツマネージメントシステムの設計}{8} \contentsline {subsection}{\numberline {3.0.4}スケーラブルにするためには}{8} \contentsline {section}{\numberline {3.1}木構造を用いたデータ表現}{10} \contentsline {section}{\numberline {3.2}提案手法}{11} \contentsline {subsection}{\numberline {3.2.1}非破壊的木構造}{11} \contentsline {subsubsection}{破壊的木構造}{11} \contentsline {subsubsection}{非破壊的木構造}{12} \contentsline {subsection}{\numberline {3.2.2}分散バージョン管理システム}{14} \contentsline {subsubsection}{Push/Pull方式}{14} \contentsline {subsubsection}{マージ}{15} \contentsline {subsection}{\numberline {3.2.3}グラフデータベース}{17} \contentsline {subsubsection}{トラバース}{17} \contentsline {subsection}{\numberline {3.2.4}ブラウザサイドの実装}{18} \contentsline {section}{\numberline {3.3}全体の設計}{19} \contentsline {subsection}{\numberline {3.3.1}サーバーサイド}{19} \contentsline {subsection}{\numberline {3.3.2}クライアントサイド}{20} \contentsline {chapter}{\numberline {第4章}分散コンテンツマネージメントシステムの実装}{21} \contentsline {section}{\numberline {4.1}木構造データベースJungle}{21} \contentsline {subsubsection}{木の作成}{21} \contentsline {subsubsection}{木と木を構成するノード}{22} \contentsline {subsubsection}{木の編集}{22} \contentsline {subsubsection}{木の編集にNodeEditorを利用する}{23} \contentsline {subsubsection}{木のトラバース}{24} \contentsline {section}{\numberline {4.2}木構造データベースJungleの実装}{25} \contentsline {subsection}{\numberline {4.2.1}開発環境}{25} \contentsline {subsubsection}{言語}{25} \contentsline {subsection}{\numberline {4.2.2}全体の構造}{25} \contentsline {subsection}{\numberline {4.2.3}型パラメータつきインターフェイスParentの導入}{25} \contentsline {section}{\numberline {4.3}Node}{27} \contentsline {section}{\numberline {4.4}NodeEditor}{28} \contentsline {subsubsection}{EditableNode}{28} \contentsline {subsubsection}{EditableAttributes}{28} \contentsline {subsubsection}{EditableChildren}{29} \contentsline {subsubsection}{NodeEditor}{29} \contentsline {subsection}{\numberline {4.4.1}TreeEditor}{30} \contentsline {subsubsection}{TreeNode}{30} \contentsline {subsubsection}{TreeAttribute}{30} \contentsline {subsubsection}{TreeNodeChildren}{30} \contentsline {subsubsection}{TreeEditor}{31} \contentsline {subsection}{\numberline {4.4.2}Traverser}{32} \contentsline {subsubsection}{TraversableNode}{32} \contentsline {subsubsection}{TraversableChildren}{32} \contentsline {subsubsection}{Evaluator}{32} \contentsline {subsubsection}{Traversal}{33} \contentsline {subsubsection}{Direction}{34} \contentsline {subsubsection}{Traverserを用いた走査の流れ}{34} \contentsline {subsection}{\numberline {4.4.3}Jungle}{36} \contentsline {subsubsection}{Jungle}{36} \contentsline {subsubsection}{JungleTree}{37} \contentsline {subsubsection}{JungleTreeEditor}{37} \contentsline {chapter}{\numberline {第5章}木構造データベースJungleを用いたCMSの検証}{38} \contentsline {section}{\numberline {5.1}実験方法}{38} \contentsline {subsubsection}{Torque ResourceManager}{39} \contentsline {subsubsection}{簡易掲示板システム}{39} \contentsline {subsection}{\numberline {5.1.1}実験環境}{40} \contentsline {subsubsection}{サーバー}{40} \contentsline {subsubsection}{サーバーのnf\_conntrack}{41} \contentsline {subsubsection}{クラスタ}{41} \contentsline {section}{\numberline {5.2}実験}{42} \contentsline {section}{\numberline {5.3}実験結果}{44} \contentsline {subsection}{\numberline {5.3.1}VMWareを用いた検証}{44} \contentsline {subsubsection}{コア数が多いサーバーの場合}{44} \contentsline {subsubsection}{コア数が少ないサーバーの場合}{45} \contentsline {subsection}{\numberline {5.3.2}KVMクラスタを用いた検証}{46} \contentsline {subsubsection}{コア数が多いサーバーの場合}{46} \contentsline {subsubsection}{コア数が少ないサーバーの場合}{47} \contentsline {chapter}{\numberline {第6章}結論}{48} \contentsline {section}{\numberline {6.1}まとめ}{48} \contentsline {section}{\numberline {6.2}今後の課題}{48} \contentsline {subsection}{\numberline {6.2.1}Journalの実装}{48} \contentsline {subsection}{\numberline {6.2.2}Mergerの実装}{48} \contentsline {subsection}{\numberline {6.2.3}メモリ使用量の問題}{49} \contentsline {subsection}{\numberline {6.2.4}台数効果の問題}{49} \contentsline {subsection}{\numberline {6.2.5}KVMを用いた仮想クラスタについて}{49} \contentsline {chapter}{謝辞}{50} \contentsline {chapter}{参考文献}{51} \contentsline {chapter}{発表文献}{52}