タイプ: integer
デフォルト: 200 (200ms)
分: 1 (1ms)
最大: 10000 (10s)
単位: milliseconds (ms)
コンテキスト: sighup
再起動: false

WALライタがWALを吐き出す頻度を時間で指定します。WALを吐き出したとあと、非同期コミットしているトランザクションに起こされない限り、wal_writer_delayミリ秒待機します。最後の吐き出しが過去wal_writer_delay以内に行われ、かつそれ以降wal_writer_flush_after相当のWALが生成されている場合は、WALはオペレーティングシステムに書き込まれますが、ディスクには吐出されません。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。デフォルト値は200ミリ秒(200ms)です。多くのシステムでは、待機間隔の実質的な分解能は10ミリ秒です。10の倍数以外の値をwal_writer_delayに設定しても、その次に大きい10の倍数を設定した場合と同じ結果となります。このパラメータはpostgresql.confファイル内またはサーバのコマンドラインでのみ設定可能です。

推奨事項 [EN]

Defines the maximum data (in time) that can be lost if synchronous_commit=off and the database shuts down. Because of long transactions, actual data lost can be up to twice this time. Has no effect if synchronous_commit=on. If you are going to turn synchronous_commit=off server-wide, you should probably lower this to prevent too much data loss.

件のコメント