Re: pg_receivexlog --status-interval add fsync feedback - Mailing list pgsql-hackers

From Robert Haas
Subject Re: pg_receivexlog --status-interval add fsync feedback
Date
Msg-id CA+Tgmoa+O-hA57SWnBLoMMPoEN+2+sfSnpyHuCXgGmrFgosJYQ@mail.gmail.com
Whole thread Raw
In response to Re: pg_receivexlog --status-interval add fsync feedback  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: pg_receivexlog --status-interval add fsync feedback
List pgsql-hackers
On Wed, Oct 22, 2014 at 9:26 AM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:
> We seem to be going in circles. You suggested having two options,
> --feedback, and --fsync, which is almost exactly what Furuya posted
> originally. I objected to that, because I think that user interface is too
> complicated. Instead, I suggested having just a single option called
> --synchronous, or even better, have no option at all and have the server
> tell the client if it's participating in synchronous replication, and have
> pg_receivexlog automatically fsync when it is, and not otherwise [1]. That
> way you don't need to expose any new options to the user. What did you think
> of that idea?

I think it's pretty weird to make the fsync behavior of the client is
controlled by the server.

I also don't think that fsync() on the client side is useless in
asynchronous replication.  Yeah, it's true that there are no
*guarantees* with asynchronous replication, but the bound on how long
the data can take to get out to disk is a heck of a lot shorter if you
fsync frequently than if you don't.  And on the flip side, that has a
performance impact.

So I actually think the design you proposed is not as good as what was
proposed by Furuya and Simon.  But I don't feel incredibly strongly
about it.

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



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Lockless StrategyGetBuffer() clock sweep
Next
From: Asif Naeem
Date:
Subject: Re: Add shutdown_at_recovery_target option to recovery.conf