
Show Notes
PostgreSQLのロックの仕組みについて、データベース内部実装(SpinlockやLWLockなど)のディープな世界を深掘りする2回エピソードの後編です。
今回は、DBAやデータベース開発者、並行プログラミングに関心がある方向けに、PostgreSQLの内部的な排他制御を解説します。CPUのアトミック命令であるCAS (Compare-and-Swap) を前提知識として、WAL (Write-Ahead Logging)の書き込みなどで使われ競合時にスリープする「Lightweight Lock (LWLock)」と、スリープせずにCPUを回し続けてロック獲得を待つ「Spinlock」の仕組みや用途の違いを整理します。
さらに、Linux 7.0環境で話題になったPostgreSQLの性能劣化問題の真相に迫ります。カーネルのスケジューラ変更(プリエンプションの挙動変化)がSpinlockに与えた影響や、PostgreSQLコミッタが指摘する、Spinlockをfutexに置き換えることの構造的な難しさを紹介します。また、この性能劣化報告の根本的な原因が「Huge Pages」の未設定によるTLBミスとページテーブル探索のオーバーヘッドにあったことを挙げ、OS・CPUレベルの適切なパラメータ設定がいかに重要であるかを議論します。
PostgreSQL内部実装 / CAS命令 (Compare-and-Swap) / Lightweight Lock (LWLock) / Spinlock / WAL書き込み / Linux 7.0性能劣化問題 / プリエンプション / futex / Huge Pages / パラメータチューニング
参考リンク 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: 同期エンジニアの雑談・勉強ログ
PostgreSQLをドキュメント、ベクトル、全文検索、時系列、地理空間データ、メッセージキューとして活用する設計思想を解説した書籍の翻訳プロジェクトについて解説します。
Sebastian Raschka さんのブログをもとに、話題の GPT-6 Astra について「何が良くなったのか」「推測されているアーキテクチャ」「トークン効率」の3点から振り返りました。Mac mini / Mac Studio を操作対象にした強化学習で強くなった PC 操作、2018年の Universal Transformers に端を発する Looped Transformer や Mixture-of-Recursions、賢いモデルほど少ないトークンで答えにたどり着くという話と reasoning trace の監視性の論点などを話しています。
PostgreSQLの公式コミュニティにより「Significant Contributor」に認定されたShinyaの実体験を元に、大規模OSSコミュニティへの貢献プロセスと歩みについて解説します。
前回に引き続き対面収録で、2人が最近「始めたこと」と「やめたこと」について雑談します。 ポッドキャスト1周年 / オーダーメイドインソール / 睡眠トラッキング / Claude Cowork で栄養管理 / 筋トレとパーソナルトレーニング / 耳栓で睡眠改善 / Xをみなくなった話 / vibe codingと腰痛 / ELSA / 英語学習 / ディズニー英語
Lon が Cloudflare 社の OSS プロダクト「Cloudflare OS」を紹介するエピソードです。機能紹介ブログと CIO によるブログの 2 本をもとに、エージェント用ワークスペース、セキュリティとアクセス権限管理、アプリの配布・共有という 3 つの柱を解説しています。データアクセス権限だけでなく AI が生成したアウトプットに対する権限管理まで考慮されたセキュリティ設計や、ノンテクニカルな人にも使いやすくするための工夫、V1 の課題を踏まえた V2 の設計思想についても取り上げています。