IT用語集 › データベース › full_page_writes

full_page_writes

データベース Svenska → 更新: 2026-10-21

PostgreSQL が、チェックポイント後に最初にページが変更されたとき、8キロバイトのページ全体をトランザクションログへ書く設定。半端に書かれたページへの防御策。

解決する問題はtorn page(破れたページ)だ。OSもストレージも、8キロバイトの書き込みがアトミックに行われることを保証しない。途中で電源が落ちると、ページの半分が新しく半分が古い状態になりうる。そのようなページは使えず、WALも助けにならない。ログレコードは、ページが無傷であることを前提とした相対的な変更を記述しているからだ。

チェックポイント後の最初の変更でページ丸ごとをログに入れておけば、リカバリの出発点となる完全なコピーが必ず存在する。代償は大きく、チェックポイント直後にWAL量が急増してから減っていくため、ログ統計にのこぎり状のパターンが現れる。ページ書き込みのアトミック性を本当に保証するストレージでのみ、無効化すべきだ。

← 用語集に戻る