Type: | integer |
Default: | 30000 (30s) |
Min: | -1 (-1) |
Max: | 2147483647 (2147483647ms) |
Unit: | milliseconds (ms) |
Context: | sighup |
Restart: | false |
When Hot Standby is active, this parameter determines how long the standby server should wait before canceling standby queries that conflict with about-to-be-applied WAL entries, as described in hot-standby-conflict. max_standby_streaming_delay
applies when WAL data is being received via streaming replication. If this value is specified without units, it is taken as milliseconds. The default is 30 seconds. A value of -1 allows the standby to wait forever for conflicting queries to complete. This parameter can only be set in the postgresql.conf file or on the server command line.
Note that max_standby_streaming_delay
is not the same as the maximum length of time a query can run before cancellation; rather it is the maximum total time allowed to apply WAL data once it has been received from the primary server. Thus, if one query has resulted in significant delay, subsequent conflicting queries will have much less grace time until the standby server has caught up again.
Recommendations
On StackOverflow
- Manage conflicts and lag on Postgres Replication in Hot Standby with read heavy Slave
- AWS RDS PostgreSQL: what's the promised value for PostgreSQL replication lag?
- Postgres Hot Standby and Long Running Queries On Slave
- How to force Laravel database layer to retry queries that have canceled because of replication error
- How to modify the max_standby_archive_delay parameter on AWS RDS instance?