リカバリーで競合が発生したためステートメントをキャンセルしています
レプリケーション環境下のスレープサーバへの参照問い合わせ、主に重いクエリ発行時に発生する
原因は以下のクエリで確認できる
database => select * from pg_stat_database_conflicts ; datid | datname | confl_tablespace | confl_lock | confl_snapshot | confl_bufferpin | confl_deadlock -------+-----------+------------------+------------+----------------+-----------------+---------------- 16386 | database | 0 | 0 | 1 | 0 | 0
この場合は参照中のテーブルに対してマスタ側で変更があったことを表す
こういった場合、スレーブ側はmax_standby_streaming_delayの値まで、レプリケーション同期を待つのだがmax_standby_streaming_delayの値内で処理が終わらない場合、confl_snapshotとなる
max_standby_streaming_delayはdefaultで30秒となっており、30秒以上かかるクエリ且つマスタ側で対象テーブルにデータ更新が行われると発生する
単純に値を増やす、または-1(無制限)とすれば解決するのだが、その分、長時間かかるクエリ時のwal同期が遅れるので注意する
可能であればシーケンシャルスキャンする専用のスレープを用意し、同期遅延前提でのデータベースとして取り扱うことを考える