mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
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
This commit is contained in:
@ -271,7 +271,6 @@ CheckpointerMain(void)
|
||||
LWLockReleaseAll();
|
||||
ConditionVariableCancelSleep();
|
||||
pgstat_report_wait_end();
|
||||
AbortBufferIO();
|
||||
UnlockBuffers();
|
||||
ReleaseAuxProcessResources(false);
|
||||
AtEOXact_Buffers(false);
|
||||
|
Reference in New Issue
Block a user