Обсуждение: pgsql: Make bgwriter sleep longer when it has no work to do, to save el

Поиск
Список
Период
Сортировка

pgsql: Make bgwriter sleep longer when it has no work to do, to save el

От
Heikki Linnakangas
Дата:
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.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/6d90eaaa89a007e0d365f49d6436f35d2392cfeb

Modified Files
--------------
src/backend/postmaster/bgwriter.c   |  144 +++++++++++++++++++++++++++++++----
src/backend/storage/buffer/bufmgr.c |   41 ++++++++---
src/include/storage/bufmgr.h        |    2 +-
src/include/storage/proc.h          |    2 +
4 files changed, 163 insertions(+), 26 deletions(-)


Re: pgsql: Make bgwriter sleep longer when it has no work to do, to save el

От
Peter Geoghegan
Дата:
On 26 January 2012 16:43, Heikki Linnakangas <heikki.linnakangas@iki.fi> wrote:
> Make bgwriter sleep longer when it has no work to do, to save electricity.

Perhaps this is pedantic, but shouldn't we be initialising
bgwriterLatch to NULL within InitProcGlobal(), much as we already do
for the other pointers in that structure?

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services

Re: pgsql: Make bgwriter sleep longer when it has no work to do, to save el

От
Heikki Linnakangas
Дата:
On 27.01.2012 16:43, Peter Geoghegan wrote:
> On 26 January 2012 16:43, Heikki Linnakangas<heikki.linnakangas@iki.fi>  wrote:
>> Make bgwriter sleep longer when it has no work to do, to save electricity.
>
> Perhaps this is pedantic, but shouldn't we be initialising
> bgwriterLatch to NULL within InitProcGlobal(), much as we already do
> for the other pointers in that structure?

Yeah, it should. Fixed.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com