Re: checkpoint writeback via sync_file_range

Greg Smith <greg@2ndquadrant.com>

From: Greg Smith <greg@2ndQuadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org, Robert Haas <robertmhaas@gmail.com>
Date: 2012-01-11T14:20:09Z
Lists: pgsql-hackers
On 1/11/12 7:46 AM, Andres Freund wrote:
> I played around with this before and my problem was that sync_file_range is not
> really a hint. It actually starts writeback *directly* and only returns when
> the io is placed inside the queue (at least thats the way it was back then).
> Which very quickly leads to it blocking all the time...

Right, you're answering one of Robert's questions here:  yes, once 
something is pushed toward writeback, it moves toward an actual write 
extremely fast.  And the writeback queue can fill itself.  But we don't 
really care if this blocks.  There's a checkpointer process, it will be 
doing this work, and it has no other responsibilities anymore (as of 
9.2, which is why some of these approaches suddenly become practical). 
It's going to get blocked waiting for things sometimes, the way it 
already does rarely when it writes, and often when it call fsync.


-- 
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com