Re: posix_fadvise missing in the walsender - Mailing list pgsql-hackers

From Robert Haas
Subject Re: posix_fadvise missing in the walsender
Date
Msg-id CA+TgmobH7v=L0o5C7GFmHsdTha_ktBVdwtmZ21MX5LVKAb+abA@mail.gmail.com
Whole thread Raw
In response to Re: posix_fadvise missing in the walsender  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: posix_fadvise missing in the walsender
Re: posix_fadvise missing in the walsender
List pgsql-hackers
On Tue, Feb 19, 2013 at 5:48 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> I agree with Merlin and Joachim - if we have the call in one place, we
> should have it in both.

We might want to assess whether we even want to have it one place.
I've seen cases where the existing call hurts performance, because of
WAL file recycling.  If we don't flush the WAL file blocks out of
cache, then they're still there when we recycle the WAL file and we
can overwrite them without further I/O.  But if we tell the OS to blow
them away, then it has to reread them when we try to overwrite the old
files, and so we stall waiting for the I/O.  I was able to clearly
measure this problem back when I was hacking on write scalability, so
it's not a purely hypothetical risk.

As for the proposed optimization, I tend to doubt that it's a good
idea.  We're talking about doing extra work to give the OS cache a
hint that may not be right anyway.  Color me skeptical...  but like
Heikki, I'm certainly willing to be proven wrong by some actual
benchmark results.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Selena Deckelmann
Date:
Subject: Re: streaming header too small
Next
From: Magnus Hagander
Date:
Subject: Re: streaming header too small