Tech Table Log: 同期エンジニアの雑談・勉強ログ

#33: PostgreSQLのロック:アプリ開発の「はまりどころ」から内部実装まで(前編)

Tech Table Log: 同期エンジニアの雑談・勉強ログ

Show Notes

PostgreSQLのロックの仕組みについて、アプリケーション開発者向けの視点から、データベース内部実装(SpinlockやLWLockなど)のディープな世界までを2回に分けて深掘りします。

前編となる今回は、アプリケーション開発者が気を付けるべき「はまりどころ」を解説します。複数トランザクションの同時更新や本番環境でのDDL(ALTER TABLEなど)実行時など、ロックの理解が不可欠なケースを取り上げ、4種類のテーブルロックと行ロック(FOR UPDATE)の基本を整理します。

さらに、実践的な5つのトラブルケースとその対策を紹介します。長時間のSELECTとALTER TABLEが引き起こす連鎖的なブロックや、外部キー・ユニーク制約の暗黙的ロックによるINSERT同士のデッドロックを解説します。また、例外的に自動キャンセルされない「トランザクションID周回防止バキューム」や、テーブルファイル末尾のページ切り詰め処理に潜む罠など、予期せぬサービス停止を防ぐための知識を議論します。

PostgreSQLのロック / MVCC / テーブルロックと行ロック / FOR UPDATE / Access Exclusive / デッドロック / ALTER TABLEの連鎖ブロック / 外部キー・ユニーク制約の暗黙的ロック / トランザクションID周回防止バキューム / ページ切り詰め

参考リンク PostgreSQLのロックでハマりがちな挙動5選 AWS Engineer Reports PostgreSQL Performance Halved By Linux 7.0, But A Fix May Not Be Easy I really dislike the use of spinlocks in postgres

More from Tech Table Log: 同期エンジニアの雑談・勉強ログ

Oct 20, 2026

PostgreSQLをドキュメント、ベクトル、全文検索、時系列、地理空間データ、メッセージキューとして活用する設計思想を解説した書籍の翻訳プロジェクトについて解説します。

Oct 6, 2026

Sebastian Raschka さんのブログをもとに、話題の GPT-6 Astra について「何が良くなったのか」「推測されているアーキテクチャ」「トークン効率」の3点から振り返りました。Mac mini / Mac Studio を操作対象にした強化学習で強くなった PC 操作、2018年の Universal Transformers に端を発する Looped Transformer や Mixture-of-Recursions、賢いモデルほど少ないトークンで答えにたどり着くという話と reasoning trace の監視性の論点などを話しています。

Sep 22, 2026

PostgreSQLの公式コミュニティにより「Significant Contributor」に認定されたShinyaの実体験を元に、大規模OSSコミュニティへの貢献プロセスと歩みについて解説します。

Sep 8, 2026

前回に引き続き対面収録で、2人が最近「始めたこと」と「やめたこと」について雑談します。 ポッドキャスト1周年 / オーダーメイドインソール / 睡眠トラッキング / Claude Cowork で栄養管理 / 筋トレとパーソナルトレーニング / 耳栓で睡眠改善 / Xをみなくなった話 / vibe codingと腰痛 / ELSA / 英語学習 / ディズニー英語

Aug 18, 2026

Lon が Cloudflare 社の OSS プロダクト「Cloudflare OS」を紹介するエピソードです。機能紹介ブログと CIO によるブログの 2 本をもとに、エージェント用ワークスペース、セキュリティとアクセス権限管理、アプリの配布・共有という 3 つの柱を解説しています。データアクセス権限だけでなく AI が生成したアウトプットに対する権限管理まで考慮されたセキュリティ設計や、ノンテクニカルな人にも使いやすくするための工夫、V1 の課題を踏まえた V2 の設計思想についても取り上げています。

See all episodes →