postgresql/src/include/storage
Thomas Munro d87251048a 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
2021-03-11 10:36:17 +13:00
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
backendid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
barrier.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
block.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buf.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
buf_internals.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
buffile.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
bufmgr.h Optimize DropRelFileNodesAllBuffers() for recovery. 2021-01-13 07:46:11 +05:30
bufpage.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
checksum.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
checksum_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
condition_variable.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
copydir.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
dsm_impl.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fd.h Minor header cleanup for the new iovec code. 2021-01-14 18:30:17 +13:00
freespace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
fsm_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
indexfsm.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
ipc.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
item.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemid.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
itemptr.h Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
large_object.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
latch.h Use SIGURG rather than SIGUSR1 for latches. 2021-03-01 12:44:12 +13:00
lmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lock.h Display the time when the process started waiting for the lock, in pg_locks, take 2 2021-02-15 15:13:37 +09:00
lockdefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
lwlock.h Replace buffer I/O locks with condition variables. 2021-03-11 10:36:17 +13:00
md.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
off.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_sema.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_shmem.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pmsignal.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
predicate.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
predicate_internals.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proc.h Display the time when the process started waiting for the lock, in pg_locks, take 2 2021-02-15 15:13:37 +09:00
procarray.h Detect the deadlocks between backends and the startup process. 2021-01-06 12:39:18 +09:00
proclist.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
proclist_types.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
procsignal.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
reinit.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
relfilenode.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
s_lock.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sharedfileset.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
shm_mq.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
shm_toc.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
shmem.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinval.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sinvaladt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
smgr.h Optimize DropRelFileNodeBuffers() for recovery. 2021-01-12 07:45:40 +05:30
spin.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
standby.h Use full 64-bit XIDs in deleted nbtree pages. 2021-02-24 18:41:34 -08:00
standbydefs.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
sync.h Update copyright for 2021 2021-01-02 13:06:25 -05:00