PostgreSQLコードリーディング
PostgreSQLのバージョンは8.3.5。
- ソースコードをブラウジングとか
- ソースコードのブラウジングにcscope
- 参考になる資料とか
- デバッグオプションをつけてコンパイル
- 参考になる資料とか その2
- index-only (別名 index covering)
- トランザクションログへの同期
- チェックポイントでの同期
- バッファ管理の仕組みに苦戦中
- バッファ管理。タプルとかページとか
- pg_filedumpを使ってみる
- バッファ管理。GDBでタプルの実データを見る
- バッファ管理。バッファの読み書き
- バッファ管理。共有メモリバッファの大きさ
- バッファ管理。BufferAllocでキャッシュにヒットしない場合
- Distributed TP: The XA Specification
- バッファ管理。clock sweepアルゴリズム、BufferAccessStrategyData構造体
- JDBCドライバとバックエンドのやりとり
- JDBCドライバとバックエンドのやりとり。フロントエンド/バックエンドプロトコル
- JDBCドライバ。PreparedStatement#setNull()とParameterMetaData
- 同時実行制御。スナップショット
- トランザクションブロックのステート
- リカバリ。WAL(Write Ahead Log)
- バッファ管理。タプルの追加
- バッファ管理。タプルの追加。宿題への回答
- oid2nameを使ってみた
- サブトランザクション、マルチトランザクション、2相コミットって何?
- バッファ管理。バッファ、ブロック、ページ、アイテムの区別。
- バッファ管理。チェックポイント
- バッファ管理。チェックポイント。トランザクションが未確定のデータのフラッシュについて
- CLOG
- バッファ管理。タプルの追加時のFKチェック
- バッファ管理。タプルのロックの開放
- PostgreSQLのコードを読むときに参考にしたいチューニングポイント
- バッファ管理。タプルの削除
- B-Treeインデックス。pg_filedumpと検索時の呼び出しシーケンスの確認
- B-Treeインデックス。内部状態?
- B-Treeインデックス。btgettuple()。検索時に使われる関数のざっくりとした概要
- JDBCドライバ。更新件数の取得
- B-Treeインデックス。btbeginscan()
- B-Treeインデックス。btbuild()。インデックスのタプルを一時領域に格納するまで
- B-Treeインデックス。btbuild()。インデックスのページを書き出すまで
- B-Treeインデックス。btinsert()。ページの分割が不要な場合
- B-Treeインデックス。btinsert()。ページの分割が必要な場合
- B-Treeインデックス。btbulkdelete()。PageからItemを削除するところ
- B-Treeインデックス。btbulkdelete()。削除対象のItemを特定するまで
- カーソル(ポータル)。フロントエンド/バックエンドプロトコル経由
- クエリのパース処理
- クエリのパース処理。パースツリーの構造体
- クエリのパース処理。クエリツリーの構造体
- クエリのパース処理。プランツリーの構造体
- エクゼキュータ。PlanStateとExprStateComments
- エクゼキュータ。ネストループ結合(Nested Loop Join)
- プランツリーのデバッグ出力
- エクゼキュータ。集約(Aggregate)
- EXPLAINでプランツリーの出力
- エグゼキュータ。ビットマップヒープスキャン(Bitmap Heap Scan)
- エグゼキュータ。LimitとSort