postgresql/src/backend/postmaster
Andres Freund 12f3867f55 bufmgr: Support multiple in-progress IOs by using resowner
A future patch will add support for extending relations by multiple blocks at
once. To be concurrency safe, the buffers for those blocks need to be marked
as BM_IO_IN_PROGRESS. Until now we only had infrastructure for recovering from
an IO error for a single buffer. This commit extends that infrastructure to
multiple buffers by using the resource owner infrastructure.

This commit increases the size of the ResourceOwnerData struct, which appears
to have a just about measurable overhead in very extreme workloads. Medium
term we are planning to substantially shrink the size of
ResourceOwnerData. Short term the increase is small enough to not worry about
it for now.

Reviewed-by: Melanie Plageman <melanieplageman@gmail.com>
Discussion: https://postgr.es/m/20221029025420.eplyow6k7tgu6he3@awork3.anarazel.de
Discussion: https://postgr.es/m/20221029200025.w7bvlgvamjfo6z44@awork3.anarazel.de
2023-04-05 14:17:55 -07:00
..
autovacuum.c bufmgr: Support multiple in-progress IOs by using resowner 2023-04-05 14:17:55 -07:00
auxprocess.c Update copyright for 2023 2023-01-02 15:00:37 -05:00
bgworker.c Retire PG_SETMASK() macro. 2023-02-03 11:29:46 +13:00
bgwriter.c bufmgr: Support multiple in-progress IOs by using resowner 2023-04-05 14:17:55 -07:00
checkpointer.c bufmgr: Support multiple in-progress IOs by using resowner 2023-04-05 14:17:55 -07:00
fork_process.c Use WaitEventSet API for postmaster's event loop. 2023-01-12 16:32:20 +13:00
interrupt.c Perform apply of large transactions by parallel workers. 2023-01-09 07:52:45 +05:30
Makefile Redesign archive modules 2023-02-17 14:26:42 +09:00
meson.build Redesign archive modules 2023-02-17 14:26:42 +09:00
pgarch.c Redesign archive modules 2023-02-17 14:26:42 +09:00
postmaster.c Small tidyup for commit d41a178b, part II. 2023-03-17 14:44:12 +13:00
startup.c Disable STARTUP_PROGRESS_TIMEOUT in standby mode. 2023-02-06 10:51:08 -05:00
syslogger.c Retire PG_SETMASK() macro. 2023-02-03 11:29:46 +13:00
walwriter.c bufmgr: Support multiple in-progress IOs by using resowner 2023-04-05 14:17:55 -07:00