Thread: pgsql: Try to avoid running with a full fsync request queue.

pgsql: Try to avoid running with a full fsync request queue.

From
Robert Haas
Date:
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

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=7f242d880b5b5d9642675517466d31373961cf98

Modified Files
--------------
src/backend/postmaster/bgwriter.c |  134 ++++++++++++++++++++++++++++++++++---
src/backend/storage/smgr/md.c     |    8 ++-
2 files changed, 131 insertions(+), 11 deletions(-)