mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Wake up for latches in CheckpointWriteDelay().
The checkpointer shouldn't ignore its latch. Other backends may be waiting for it to drain the request queue. Hopefully real systems don't have a full queue often, but the condition is reached easily when shared_buffers is small. This involves defining a new wait event, which will appear in the pg_stat_activity view often due to spread checkpoints. Back-patch only to 14. Even though the problem exists in earlier branches too, it's hard to hit there. In 14 we stopped using signal handlers for latches on Linux, *BSD and macOS, which were previously hiding this problem by interrupting the sleep (though not reliably, as the signal could arrive before the sleep begins; precisely the problem latches address). Reported-by: Andres Freund <andres@anarazel.de> Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20220226213942.nb7uvb2pamyu26dj%40alap3.anarazel.de
This commit is contained in:
@ -2235,6 +2235,10 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
|
||||
<entry><literal>BaseBackupThrottle</literal></entry>
|
||||
<entry>Waiting during base backup when throttling activity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>CheckpointerWriteDelay</literal></entry>
|
||||
<entry>Waiting between writes while performing a checkpoint.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>PgSleep</literal></entry>
|
||||
<entry>Waiting due to a call to <function>pg_sleep</function> or
|
||||
|
Reference in New Issue
Block a user