3.課題を設定しよう - PostgreSQL のソースコードを読む
おおまかな構造の把握をしよう。
流れは以下の通りと予想。
- クライアントの接続 => postmaster
- postermaster => postgres : postermaster
- Query のコンパイル : backend/parser
- 実行計画 : backend/optimizer
- 最適化 : backend/optimizer
- インデックスあれば使用
- データ fetch
- Buffer : backend/storage
- Storage : backend/storage
さて列挙してみたものの、やはり具体的に読まないと進まない。
自分の予想として、小さな課題を設定し読み進める事で共通データ構造への理解が深まるのではないかと思っている。
課題設定が問題.とりあえず「PostgreSQL - Wikipedia」を読んでみよう。
よし課題を決めた「/tcop/postgres.c にある exec_simple_query(const char *query_string) から大まかに処理を追い、結果をまとめる」。
おおまかなフェーズ毎に以下の情報をまとめる。
- 関係するファイル、entry 関数
- 関連するデータ構造で大事そうなものの名前
続きは明日。