同期コミット
クライアントにOKを返す前に、COMMITをどこまで確実にするかを決めるPostgreSQLの設定。最も厳格な場合は、WALがディスクに書かれる(場合によっては同期レプリカが受領を返す)まで待つ。永続性を犠牲にしてレイテンシを下げることもできる。
設定値(synchronous_commit)は、on(デフォルト。ローカルでWALをフラッシュし、場合によりレプリカのackも待つ)、remote_apply(レプリカが適用済みで、読み取り可能)、local(ローカルディスクのみ)、off(即座に返し、WALは少し後にフラッシュ。クラッシュ時に直近のトランザクションを失う恐れはあるが、破損は決して起きない)。ミソはトランザクション単位で設定できる点で、重要な決済はon、重要でないログは速度優先でoffにできる。同期レプリケーションと組み合わせた場合、コミットがレプリカを待つかどうか(データ損失ゼロかどうか)がこの設定で決まる。永続性と性能のトレードオフを調整する、古典的なダイヤルである。