Mercurial > hg > Papers > 2024 > matac-master
diff Paper/master_paper.tex @ 42:a6031e4cd85a
replication
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 23 Jan 2024 14:38:18 +0900 |
parents | f91daa5cc651 |
children | 6e3720c12b23 |
line wrap: on
line diff
--- a/Paper/master_paper.tex Sat Jan 20 16:25:36 2024 +0900 +++ b/Paper/master_paper.tex Tue Jan 23 14:38:18 2024 +0900 @@ -594,7 +594,8 @@ データのバックアップやシステム自体のレプリケーションをすることが挙げられる. メモリ管理の機能としてはガーベージコレクションが挙げられる. ガベージコレクションは通常プログラム言語のレイヤで行われる. -これらの機能を実装することでファイルシステムの信頼性を高めたい. +これらの機能をファイルシステムのレベルで実装することで, +より信頼性の高いファイルシステムを構築したい. \section{メモリの管理手法} @@ -679,14 +680,41 @@ \section{GearsFileSystemのレプリケーション} +DBの多重性を確保する機能としてレプリケーションがある. +レプリケーションはデータや状態が等しいレプリカを別のノードに生成する機能である. +レプリケーション機能があることによって,地理的に距離のあるノードにレプリカを設置することが可能になり, +災害などによって発生するシステム障害を防止することや, +アクセス分散によるネットワーク負荷の低減につながる. +そのため,GearsFileSystemにおいてもレプリケーションの機能を実装したい. +GearsFileSystemではディレクトリをRedBlackTreeによって構成しており, +RedBlackTreeから全てのデータにアクセス可能である. +よって,RedBlackTreeのコピーを行うことによって, +FileSystemのレプリカを作成することが可能であると考えられる. +GearsFileSystemのレプリケーションの基本設計を図\ref{fig:RBTreeReplica}に示す. + \begin{figure}[ht] \begin{center} \includegraphics[width=160mm]{fig/rbtree_replica.png} \end{center} - \caption{Copyのアルゴリズム} - \label{fig:CopyAlgo} + \caption{GearsFileSystemのレプリケーションの基本設計} + \label{fig:RBTreeReplica} \end{figure} +基本的には図\ref{fig:TreeCopyGC}に示されているGCの仕組みと同様で, +RedBlackTreeのCopyで構成される. +レプリケーションにおいてコピー元をメイン,コピーをレプリカと呼ぶ場合, +Node1がメインでNode2がレプリカとなる. +Node1はGCの仕組みと同様であり,違いはNode2にもコピーを行う部分である. +このように,GCとレプリケーションを同様の仕組みで実装することが考えられる. +しかし,Node2にコピーを行う際はNode1とNode2間で操作やデータを送信するための +通信の仕組みが必要である. +レプリケーションを実装する際は通信の仕組みについて考える必要がある. + +\section{GearsFileSystemのバックアップ} + +レプリケーションを作成した際でも,データのバックアップを別個で取ることは必要である. + + \chapter{CopyRedBlackTreeの実装} データのバックアップやレプリケーション,GCの機能を実装するためには, @@ -699,6 +727,8 @@ \section{コピーのアルゴリズム} + + \lstinputlisting[label=src:CopyRedBlackTree.cbc, caption=CopyRedBlackTreeのアルゴリズム]{src/copyAlgorithm.cbc} \begin{figure}[ht]