New
-
Web+DB PRESS 買ってみた
- 2ヶ月に一回だし、知らない分野のこと知るのにはよさそうなので
- Svelte シンプルだしよさそうに思った
- あとはRDBMS自作に惹かれて
-
耳下に粉瘤ぽいものがあったので切除した
- 薬代含めて¥12000くらい
- お風呂一週間入れないのがしんどい
- 保険治療は月に1個までしか対応していないらしい
- 背中にも一個あるのでいつか取りに行く
Web+DB の RDBMS 作成について
RDBMSの基本的な構造
- 構文解析
- 実行計画
-
クエリ実行
- クエリエクスキュータ
- 実行計画に基づいて、下記のモジュールのハンドリング
- アクセスメソッド
- ディスク上のデータ構造を取り扱う
- バッファプールマネージャ
- データをメモリにキャッシュする
- ディスクマネージャ
- ディスクの読み書きを行う
ディスクマネージャ
ディスクマネージャが読み書きするファイルは ヒープファイル と呼ばれる構造になっている
ヒープファイルは、ページという単位で区切られている
ページの単位は 4096バイトの 1 ~ 4 倍になっていることが多いらしい
ページには番号が振られていて、ディスクマネージャは読み書きをページ番号(ページIDを採番していく)で指定して行っていく
そのため、ページの一部を読むことはできない。必ず単位分のページを読み込む。
バッファプールマネージャ
ページの内容をメモリに載せて高速化を実現している。
メモリとページのマッピングを key-value の形で保持し、要求があったときにすぐに引き出せるようにしている。
これはページテーブルと呼ばれる。
バッファの掃除には、clock sweep アルゴリズムを本書では使っている。
Postgres で利用されている。
バッファの中のデータを順に見ていって、参照カウントが少ないものを対象に(0?)メモリを開放する。