aboutsummaryrefslogtreecommitdiff
path: root/src/include/storage/proc.h
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-01-26 18:19:48 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-01-26 18:39:13 +0200
commit6d90eaaa89a007e0d365f49d6436f35d2392cfeb (patch)
tree625c4dc75f0067c438696b9ebc96715521635e2f /src/include/storage/proc.h
parent467ff207f51439cadee7857d6a0874f34652ed53 (diff)
downloadpostgresql-6d90eaaa89a007e0d365f49d6436f35d2392cfeb.tar.gz
postgresql-6d90eaaa89a007e0d365f49d6436f35d2392cfeb.zip
Make bgwriter sleep longer when it has no work to do, to save electricity.
To make it wake up promptly when activity starts again, backends nudge it by setting a latch in MarkBufferDirty(). The latch is kept set while bgwriter is active, so there is very little overhead from that when the system is busy. It is only armed before going into longer sleep. Peter Geoghegan, with some changes by me.
Diffstat (limited to 'src/include/storage/proc.h')
-rw-r--r--src/include/storage/proc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
index 358d1a456cb..b68ae39268e 100644
--- a/src/include/storage/proc.h
+++ b/src/include/storage/proc.h
@@ -188,6 +188,8 @@ typedef struct PROC_HDR
PGPROC *freeProcs;
/* Head of list of autovacuum's free PGPROC structures */
PGPROC *autovacFreeProcs;
+ /* BGWriter process latch */
+ Latch *bgwriterLatch;
/* Current shared estimate of appropriate spins_per_delay value */
int spins_per_delay;
/* The proc of the Startup process, since not in ProcArray */