changeset 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
files Paper/master_paper.lol Paper/master_paper.pdf Paper/master_paper.tex TODO.md mindmaps/gears_fs_db.mm
diffstat 5 files changed, 57 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/master_paper.lol	Sat Jan 20 16:25:36 2024 +0900
+++ b/Paper/master_paper.lol	Tue Jan 23 14:38:18 2024 +0900
@@ -6,5 +6,5 @@
 \contentsline {lstlisting}{\numberline {3.5}Treeの仕様}{15}{}%
 \contentsline {lstlisting}{\numberline {3.6}RedBlackTreeの実装}{16}{}%
 \contentsline {lstlisting}{\numberline {3.7}RedBlackTreeの実装の型定義}{16}{}%
-\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{28}{}%
-\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{30}{}%
+\contentsline {lstlisting}{\numberline {6.1}CopyRedBlackTreeの実装}{29}{}%
+\contentsline {lstlisting}{\numberline {6.2}CopyRedBlackTreeのアルゴリズム}{31}{}%
Binary file Paper/master_paper.pdf has changed
--- 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]
--- a/TODO.md	Sat Jan 20 16:25:36 2024 +0900
+++ b/TODO.md	Tue Jan 23 14:38:18 2024 +0900
@@ -4,8 +4,10 @@
 - [x] 謝辞
 
 - [x] GearsOSのRedBlackTreeの説明
+
+- [x] レプリケーションの説明
 - [ ] DGMによる分散ファイルシステム
-- [ ] レプリケーションの説明
+- [ ] Nodeの説明
 - [ ] 実装の説明
 - [ ] まとめ
 - [ ] 今後の課題
\ No newline at end of file
--- a/mindmaps/gears_fs_db.mm	Sat Jan 20 16:25:36 2024 +0900
+++ b/mindmaps/gears_fs_db.mm	Tue Jan 23 14:38:18 2024 +0900
@@ -107,6 +107,7 @@
 <node TEXT="interface-&gt;methodで呼び出せる" ID="ID_717163611" CREATED="1705044776612" MODIFIED="1705044788098"/>
 <node TEXT="code next" ID="ID_966484010" CREATED="1705044813010" MODIFIED="1705044818116"/>
 <node TEXT="..." ID="ID_267004486" CREATED="1705044819091" MODIFIED="1705044978009"/>
+<node TEXT="implementの型定義" ID="ID_1147136141" CREATED="1705658008073" MODIFIED="1705658014391"/>
 </node>
 </node>
 <node TEXT="ファイルシステムとDB" ID="ID_1884932719" CREATED="1699849849835" MODIFIED="1699849855383">
@@ -396,7 +397,7 @@
 </node>
 <node TEXT="評価方法" POSITION="right" ID="ID_1979397312" CREATED="1699850131177" MODIFIED="1699850137060"/>
 <node TEXT="章立て" POSITION="left" ID="ID_378600647" CREATED="1699848424709" MODIFIED="1702112473403">
-<node TEXT="要旨" ID="ID_1862870052" CREATED="1705571598152" MODIFIED="1705571620770">
+<node TEXT="要旨" FOLDED="true" ID="ID_1862870052" CREATED="1705571598152" MODIFIED="1705571620770">
 <node TEXT="CbCでGearsOSを開発している" ID="ID_1596447160" CREATED="1705571621398" MODIFIED="1705571639432"/>
 <node TEXT="OSの重要な機能の一つにファイルシステムがある" ID="ID_1812705807" CREATED="1705571640078" MODIFIED="1705571676397">
 <node TEXT="プロセス管理やデータの保持" ID="ID_1002371513" CREATED="1705636979706" MODIFIED="1705636992169"/>
@@ -416,6 +417,10 @@
 </node>
 <node TEXT="メモリ管理機能もない" ID="ID_582237136" CREATED="1705636449288" MODIFIED="1705636458393">
 <node TEXT="GC" ID="ID_504953107" CREATED="1705636459464" MODIFIED="1705636461733"/>
+<node TEXT="無いと" ID="ID_1503773801" CREATED="1705637772905" MODIFIED="1705637780271">
+<node TEXT="不要なオブジェクトの解放漏れが発生" ID="ID_147194106" CREATED="1705638014648" MODIFIED="1705638069085"/>
+<node TEXT="フラグメンテーションが解決されない" ID="ID_376737325" CREATED="1705638069954" MODIFIED="1705638222328"/>
+</node>
 </node>
 <node TEXT="バックアップ,レプリケーション,GCを実装したい" ID="ID_209049582" CREATED="1705636465798" MODIFIED="1705636493249"/>
 <node TEXT="実装したい機能は基本的にRedBlackTreeのコピー操作となる" ID="ID_401787855" CREATED="1705636494950" MODIFIED="1705636514799"/>
@@ -675,7 +680,10 @@
 <node TEXT="i-node treeをbackup, replication, gc可能であることを書きたい" ID="ID_559931709" CREATED="1705551366386" MODIFIED="1705551399134"/>
 </node>
 </node>
-<node TEXT="CopyRedBlackTreeの実装" FOLDED="true" ID="ID_1619882257" CREATED="1701697553803" MODIFIED="1703491075408" VSHIFT_QUANTITY="-4.5 pt">
+<node TEXT="CopyRedBlackTreeの実装" ID="ID_1619882257" CREATED="1701697553803" MODIFIED="1703491075408" VSHIFT_QUANTITY="-4.5 pt">
+<node TEXT="実装方法" ID="ID_1774988166" CREATED="1705735668943" MODIFIED="1705735677711">
+<node TEXT="Tree InterfaceのAPIにCopyを追加する" ID="ID_95904284" CREATED="1705735678228" MODIFIED="1705735715335"/>
+</node>
 <node TEXT="コピーのアルゴリズム" ID="ID_64994373" CREATED="1703491215841" MODIFIED="1703491223454">
 <node TEXT="アルゴリズム" ID="ID_972208221" CREATED="1699849518269" MODIFIED="1699849522647">
 <node TEXT="左側を深さ優先で辿る" ID="ID_239741561" CREATED="1699849525266" MODIFIED="1699849604742">
@@ -711,9 +719,17 @@
 <node TEXT="評価" ID="ID_1053436711" CREATED="1702112499515" MODIFIED="1702112509004"/>
 <node TEXT="今後" ID="ID_87524419" CREATED="1702112509364" MODIFIED="1702112512270"/>
 </node>
-<node TEXT="修論で言いたいこと" POSITION="left" ID="ID_1194781583" CREATED="1701690732709" MODIFIED="1701696321975" HGAP_QUANTITY="29 pt" VSHIFT_QUANTITY="134.25 pt">
+<node TEXT="修論で言いたいこと" POSITION="right" ID="ID_1194781583" CREATED="1701690732709" MODIFIED="1701696321975" HGAP_QUANTITY="29 pt" VSHIFT_QUANTITY="134.25 pt">
 <node TEXT="RedBlackTreeのCopyでreplicationによる信頼性の向上とGCの仕組みを実装した" ID="ID_729318951" CREATED="1701690742376" MODIFIED="1701691473760"/>
 <node TEXT="ファイルシステムとDBを同一システムとして実装してしまおうという試みの一部" ID="ID_803529790" CREATED="1701693180112" MODIFIED="1701696299725"/>
 </node>
+<node TEXT="DataGearManagerによる分散ファイルシステム" POSITION="right" ID="ID_1005780153" CREATED="1703315001066" MODIFIED="1703315085575">
+<node TEXT="ikkiさんの研究" ID="ID_557379148" CREATED="1704630869165" MODIFIED="1704630876474"/>
+<node TEXT="DataGearManager" ID="ID_521285238" CREATED="1705646099321" MODIFIED="1705646107853">
+<node TEXT="" ID="ID_1859471968" CREATED="1705646108176" MODIFIED="1705646108176"/>
+</node>
+<node TEXT="分散ファイルシステムのトポロジー形成" ID="ID_1837705741" CREATED="1704631962837" MODIFIED="1704631974676"/>
+<node TEXT="Christieを用いている" ID="ID_703384422" CREATED="1704631982827" MODIFIED="1704631995001"/>
+</node>
 </node>
 </map>