changeset 4:991d2e95a7a6

...
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Sat, 15 Apr 2023 07:39:37 +0900
parents ff938946c7f8
children 40cda6dcc16e
files Paper/paper.aux Paper/paper.log Paper/paper.pdf Paper/paper.synctex.gz Paper/paper.tex
diffstat 5 files changed, 50 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/paper.aux	Sat Apr 15 04:00:32 2023 +0900
+++ b/Paper/paper.aux	Sat Apr 15 07:39:37 2023 +0900
@@ -22,8 +22,7 @@
 \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces 非破壊的なTree編集\relax }}{3}{}\protected@file@percent }
 \newlabel{fig:TreeEdit}{{4}{3}}
 \@writefile{toc}{\contentsline {section}{\numberline {5}\hskip 1zw{ディスク上とメモリ上のデータ構造}}{3}{}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{データのロールバック}}{3}{}\protected@file@percent }
-\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{並行アップデート時の問題}}{3}{}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {6}\hskip 1zw{データのロールバックとバックアップ}}{3}{}\protected@file@percent }
 \citation{*}
 \bibstyle{ipsjunsrt}
 \bibdata{matac-bib}
@@ -39,6 +38,7 @@
 \bibcite{xv6component}{10}
 \bibcite{xv6}{11}
 \bibcite{christie}{12}
+\@writefile{toc}{\contentsline {section}{\numberline {7}\hskip 1zw{並行アップデート時の問題}}{4}{}\protected@file@percent }
 \@writefile{toc}{\contentsline {section}{\numberline {8}\hskip 1zw{スキーマ}}{4}{}\protected@file@percent }
 \@writefile{toc}{\contentsline {section}{\numberline {9}\hskip 1zw{インデックス}}{4}{}\protected@file@percent }
 \@writefile{toc}{\contentsline {section}{\numberline {10}\hskip 1zw{今後の課題}}{4}{}\protected@file@percent }
--- a/Paper/paper.log	Sat Apr 15 04:00:32 2023 +0900
+++ b/Paper/paper.log	Sat Apr 15 07:39:37 2023 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.141592653-p4.0.0-220214-2.6 (utf8.euc) (TeX Live 2022) (preloaded format=platex 2022.6.9)  15 APR 2023 04:00
+This is e-pTeX, Version 3.141592653-p4.0.0-220214-2.6 (utf8.euc) (TeX Live 2022) (preloaded format=platex 2022.6.9)  15 APR 2023 07:35
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -3226,9 +3226,7 @@
 \OT1/cmr/m/n/8.8711 https://pdos.csail.mit.edu/6.828/2018/xv6/book-
  []
 
-) [4
-
-] (./paper.aux)
+) [4] (./paper.aux)
 
 LaTeX Font Warning: Some font shapes were not available, defaults substituted.
 
@@ -3240,6 +3238,6 @@
  23498 multiletter control sequences out of 15000+600000
  499135 words of font info for 160 fonts, out of 8000000 for 9000
  929 hyphenation exceptions out of 8191
- 55i,11n,63p,294b,1696s stack positions out of 10000i,1000n,20000p,200000b,200000s
-
-Output written on paper.dvi (4 pages, 30072 bytes).
+ 55i,10n,63p,294b,1696s stack positions out of 10000i,1000n,20000p,200000b,200000s
+
+Output written on paper.dvi (4 pages, 32464 bytes).
Binary file Paper/paper.pdf has changed
Binary file Paper/paper.synctex.gz has changed
--- a/Paper/paper.tex	Sat Apr 15 04:00:32 2023 +0900
+++ b/Paper/paper.tex	Sat Apr 15 07:39:37 2023 +0900
@@ -267,10 +267,51 @@
 よって,ディスク上とメモリ上のデータ構造をRedBlackTreeに統一することが考えられる.
 そうすることによって,ディスク上とメモリ上のデータのやりとりは単純なコピーで実装できる.
 
-メモリからディスクに書き戻すタイミングの話をしたい
+% メモリからディスクに書き戻すタイミングの話をしたい
+
+\section{データのロールバックとバックアップ}
+
+DBの重要な機能の一つにロールバックがある.
+RDBのロールバックは,
+コミットするまではトランザクションの開始時点に戻ることができる機能である.
+コミットが完了するとそれ以前の状態に戻すことはできないが,
+データのバックアップをとっておくことで復元を行う.
+このような,ロールバックとバックアップの仕組みをファイルシステムに実装したい.
+
+今回は,RedBlackTreeのルートノードがデータのバージョンの役割を果たしていることを利用し,
+データの復元が行える仕組みを構築することを考える.
+非破壊的なTree編集はアップデートのたびに,ルートノードを増やす.
+つまり,ルートノードはアップデートのログと言えその時点のデータのバージョンを表していると考えることができる.
+よって,ロールバックを行いたい場合は参照を過去のルートノードに切り替える.
 
-\section{データのロールバック}
+ルートノードはデータのアップデート時に増えるため,
+データが際限なく増加していく問題がある.
+この問題はCopyingGCを行うことによって解決する.
+まず,RedBlackTreeを丸ごとコピーして最新のルートを残して他のルートは削除する.
+その後,コピーしたものはバックアップとしてディスクに書き込む.
+そうすることで,データの増加によるリソースの枯渇を防ぎ,
+かつデータのバックアップを作成することで信頼性の向上が期待できる.
+
+
+
+% CopyingGCを用いたデータのバックアップを考える.
+% 木をコピーして,最新のルートだけを残す.
+% コピーしたものはそのままディスクに書き込み,バックアップとして活用する.
+
+
+
+% また,トランザクションは複数のプロセスがデータにアクセスする際に,
+% データの整合性を保つための機能だが,それについては後の章で述べる.
+
+
+% RedBlackTreeのルートをバージョンとしてとっておいて戻る機能と,
+% 過去のツリーをバックアップしておく機能を持たせたい.
+
+
 \section{並行アップデート時の問題}
+
+
+
 \section{スキーマ}
 \section{インデックス}
 \section{今後の課題}