diff options
author | Thomas Munro <tmunro@postgresql.org> | 2021-03-11 10:05:58 +1300 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2021-03-11 10:36:17 +1300 |
commit | d87251048a0f293ad20cc1fe26ce9f542de105e6 (patch) | |
tree | be55439cbd689abd9073afe447dbb20a2c507941 /doc/src | |
parent | c3ffe34863688115dd7878f118f2a123bafd8a26 (diff) | |
download | postgresql-d87251048a0f293ad20cc1fe26ce9f542de105e6.tar.gz postgresql-d87251048a0f293ad20cc1fe26ce9f542de105e6.zip |
Replace buffer I/O locks with condition variables.
1. Backends waiting for buffer I/O are now interruptible.
2. If something goes wrong in a backend that is currently performing
I/O, waiting backends no longer wake up until that backend reaches
AbortBufferIO() and broadcasts on the CV. Previously, any waiters would
wake up (because the I/O lock was automatically released) and then
busy-loop until AbortBufferIO() cleared BM_IO_IN_PROGRESS.
3. LWLockMinimallyPadded is removed, as it would now be unused.
Author: Robert Haas <robertmhaas@gmail.com>
Reviewed-by: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Julien Rouhaud <rjuju123@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> (earlier version, 2016)
Discussion: https://postgr.es/m/CA%2BhUKGJ8nBFrjLuCTuqKN0pd2PQOwj9b_jnsiGFFMDvUxahj_A%40mail.gmail.com
Discussion: https://postgr.es/m/CA+Tgmoaj2aPti0yho7FeEf2qt-JgQPRWb0gci_o1Hfr=C56Xng@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/monitoring.sgml | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 3335d71eba0..1ba813bbb9a 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1587,6 +1587,10 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser scan to become available.</entry> </row> <row> + <entry><literal>BufferIO</literal></entry> + <entry>Waiting for buffer I/O to complete.</entry> + </row> + <row> <entry><literal>CheckpointDone</literal></entry> <entry>Waiting for a checkpoint to complete.</entry> </row> @@ -1877,10 +1881,6 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser <entry>Waiting to access a data page in memory.</entry> </row> <row> - <entry><literal>BufferIO</literal></entry> - <entry>Waiting for I/O on a data page.</entry> - </row> - <row> <entry><literal>BufferMapping</literal></entry> <entry>Waiting to associate a data block with a buffer in the buffer pool.</entry> |