mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Allow background writing to be shut down by setting limit values to zero.
This does not disable the bgwriter process: it still has to wake up often enough to collect fsync requests from backends in a timely fashion. But it responds to the recent gripe about not being able to prevent the disk from being spun up constantly.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.180 2004/10/16 18:57:23 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.181 2004/10/17 22:01:50 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -671,8 +671,10 @@ UnpinBuffer(BufferDesc *buf, bool fixOwner)
|
||||
*
|
||||
* This is called at checkpoint time to write out all dirty shared buffers,
|
||||
* and by the background writer process to write out some of the dirty blocks.
|
||||
* percent/maxpages should be zero in the former case, and nonzero limit
|
||||
* values in the latter.
|
||||
* percent/maxpages should be -1 in the former case, and limit values (>= 0)
|
||||
* in the latter.
|
||||
*
|
||||
* Returns the number of buffers written.
|
||||
*/
|
||||
int
|
||||
BufferSync(int percent, int maxpages)
|
||||
@ -682,6 +684,10 @@ BufferSync(int percent, int maxpages)
|
||||
int num_buffer_dirty;
|
||||
int i;
|
||||
|
||||
/* If either limit is zero then we are disabled from doing anything... */
|
||||
if (percent == 0 || maxpages == 0)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Get a list of all currently dirty buffers and how many there are.
|
||||
* We do not flush buffers that get dirtied after we started. They
|
||||
|
Reference in New Issue
Block a user