サブトランザクション、マルチトランザクション、2相コミットって何?
チェックポイントの処理(CheckPointGuts())でSUBTRANS、MultiXact、TwoPhaseというような用語が出てくる。それぞれ、サブトランザクション、マルチトランザクション、2相コミットのことだと思うが、サブトランザクションとマルチトランザクションが何のことなのかわからなかった。サブトランザクションはSAVEPOINT、マルチトランザクションは共有行ロックを管理すためのもののよう。
サブトランザクションはSAVEPOINTで実現できるとDatabase Management Systemsに書いてあった。
マルチトランザクションについては【PostgreSQLウォッチ】第20回 PostgreSQL 8.1ベータ・テスト開始,新機能ロールと共有行ロック で言及されていた。
2相コミットについては、ちょっと古いけど「PostgreSQL Conference 2003」開催の「PostgreSQLにおける二相コミットとその応用」という資料が参考になりそう。【PostgreSQLウォッチ】第18回 ついに2相コミット実装! もわかりやすい。