OSDN Git Service

Try to avoid running with a full fsync request queue.
authorRobert Haas <rhaas@postgresql.org>
Sat, 29 Jan 2011 13:08:41 +0000 (08:08 -0500)
committerRobert Haas <rhaas@postgresql.org>
Sat, 29 Jan 2011 13:08:41 +0000 (08:08 -0500)
commit7f242d880b5b5d9642675517466d31373961cf98
tree81245187cb86ff5448819d86b84257056e1fc7ca
parentb2826ad52d72195317a13c2074a5cd002c98a338
Try to avoid running with a full fsync request queue.

When we need to insert a new entry and the queue is full, compact the
entire queue in the hopes of making room for the new entry.  Doing this
on every insertion might worsen contention on BgWriterCommLock, but
when the queue it's full, it's far better than allowing the backend to
perform its own fsync, per testing by Greg Smith as reported in
http://archives.postgresql.org/pgsql-hackers/2011-01/msg02665.php

Original idea from Greg Smith.  Patch by me.  Review by Chris Browne
and Greg Smith
src/backend/postmaster/bgwriter.c
src/backend/storage/smgr/md.c