Postgres LISTEN/NOTIFYは実はスケールするDBOS検証
Judul asli: Postgres LISTEN/NOTIFY actually scales
Mengapa Ini Penting
PostgresをLLMトークンストリーム等のリアルタイム基盤として活用する際の性能上限が実証的に更新された
DBOSのエンジニアPeter Kraftが、Postgres LISTEN/NOTIFYのグローバルロック問題を最適化し、単一サーバーで毎秒6万回書き込み・ミリ秒レイテンシを達成したと2026年7月24日に発表。
DBOSのエンジニアPeter Kraftは、Postgres LISTEN/NOTIFYが「スケールしない」とされてきた通説を覆す検証結果を公開した。LISTEN/NOTIFYはストリーム・pub/subなど低レイテンシ通知に有用な機能だが、NOTIFYがグローバル排他ロックを取得する仕様により、初期実装では毎秒2,900回の書き込みで頭打ちになった。CPU・メモリ・IOPSなどPostgresリソースが飽和していないにもかかわらずボトルネックが発生するという直感に反する挙動が原因だった。DBOSチームはこのグローバルロックの仕組みを分析し最適化を実施。ストリームテーブルへの挿入ごとにトリガーでNOTIFYを発火する方式を見直し、単一Postgresサーバーで毎秒6万回書き込み・ミリ秒スケールのレイテンシを実現した。ポーリングはインターバルが長すぎると対話用途で遅延が大きく、短すぎるとデータベースを圧迫するため、LISTEN/NOTIFYによるブロッキング通知が優れた代替手段となる。