Re: checkpoint writeback via sync_file_range - Mailing list pgsql-hackers

From Andres Freund
Subject Re: checkpoint writeback via sync_file_range
Date
Msg-id 201201111525.13818.andres@anarazel.de
Whole thread Raw
In response to Re: checkpoint writeback via sync_file_range  (Greg Smith <greg@2ndQuadrant.com>)
Responses Re: checkpoint writeback via sync_file_range  (Greg Smith <greg@2ndQuadrant.com>)
List pgsql-hackers
On Wednesday, January 11, 2012 03:20:09 PM Greg Smith wrote:
> 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.
We do care imo. The heavy pressure putting it directly in the writeback queue 
leads to less efficient io because quite often it won't reorder sensibly with 
other io anymore and thelike. At least that was my experience in using it with 
in another application.
Lots of that changed with linux 3.2 (near complete rewrite of the writeback 
mechanism), so a bit of that might be moot anyway.

I definitely aggree that 9.2 opens new possibilities there.

Andres


pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: checkpoint writeback via sync_file_range
Next
From: Simon Riggs
Date:
Subject: Re: log messages for archive recovery progress