comparison Paper/paper.tex @ 6:cd057d7a1772

...
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Sat, 15 Apr 2023 18:52:04 +0900
parents 40cda6dcc16e
children 07b274fbdfda
comparison
equal deleted inserted replaced
5:40cda6dcc16e 6:cd057d7a1772
280 その後,コピーしたものはバックアップとしてディスクに書き込む. 280 その後,コピーしたものはバックアップとしてディスクに書き込む.
281 そうすることで,データの増加によるリソースの枯渇を防ぎ, 281 そうすることで,データの増加によるリソースの枯渇を防ぎ,
282 かつデータのバックアップを作成することで信頼性の向上が期待できる. 282 かつデータのバックアップを作成することで信頼性の向上が期待できる.
283 283
284 284
285 \section{ルートノードのトランザクション} 285 \section{トランザクション}
286 286
287 データをアップデートする際, 287 ルートノードはデータをリード,ライトする時に増やす.
288 % ルートノードのトランザクション 288 それにより,ルートノードは一つのスレッドを表現する.
289 % リードとライト分けて考える 289 スレッドがデータのアップデートを行う際は,他のスレッドとの競合を防ぐ必要がある.
290 290 スレッドはルートノードからアップデート対象のノードまで辿るようにロックを獲得していく.
291 \section{スキーマ} 291 その際,子ノードのロックを獲得した後は親ノードのロックを手放して良いことにする.
292 データのアップデートが完了し,ロックを解除後,ルートノードの切り替えを行う.
293 このような操作によって,トランザクションを実現する.
294 しかし,このままだとアップデートによってデータの一貫性を損なう場合がある.
295 常に最新のデータを持ったルートノードを選択する仕組みが必要になる.
296
297 なお,リードする際はその時点で最新のルートノードを元にリード用のルートノードを作成する.
298 リードは木を変更することがないので,
299 作成したリード用ルートノードの数だけ同時にリード可能となる.
300
301 \section{スキーマレスな実装}
302
303 従来のSQLのようなスキーマの定義が存在すると,
304 個別にバックアップなどを取らない限り
305 スキーマの変更以前にロールバックすることができない.
306 しかしながら,実際運用する上でスキーマを変更することは多々ある.
307 また,DB上のデータ構造とプログラム上で扱うデータ構造に差が生まれる
308 インピーダンスミスマッチが発生し,DBのデータをプログラムが扱う際に
309 その差を埋めるような変換を必要とする場合が生まれる.
310 これらは,データの信頼性を低下させると考える.
311 よって今回は,スキーマレスなDBとしてのファイルシステムを実装することを考える.
312
313
292 \section{インデックス} 314 \section{インデックス}
293 \section{今後の課題} 315 \section{今後の課題}
294 \section{まとめ} 316 \section{まとめ}
295 317
296 \nocite{*} 318 \nocite{*}