git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: c3ffe34) | patch
Replace buffer I/O locks with condition variables.
2021年3月10日 21:05:58 +0000 (10:05 +1300)
2021年3月10日 21:36:17 +0000 (10:36 +1300)
commit d87251048a0f293ad20cc1fe26ce9f542de105e6
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
doc/src/sgml/monitoring.sgml diff | blob | blame | history
src/backend/postmaster/pgstat.c diff | blob | blame | history
src/backend/storage/buffer/README diff | blob | blame | history
src/backend/storage/buffer/buf_init.c diff | blob | blame | history
src/backend/storage/buffer/bufmgr.c diff | blob | blame | history
src/backend/storage/lmgr/lwlock.c diff | blob | blame | history
src/include/pgstat.h diff | blob | blame | history
src/include/storage/buf_internals.h diff | blob | blame | history
src/include/storage/condition_variable.h diff | blob | blame | history
src/include/storage/lwlock.h diff | blob | blame | history
src/tools/pgindent/typedefs.list diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /