Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication.
От | Andrew Dunstan |
---|---|
Тема | Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication. |
Дата | |
Msg-id | 4D74E9FA.7070202@dunslane.net обсуждение исходный текст |
Ответ на | Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication. (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Ответы |
Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled
synchronous replication.
|
Список | pgsql-hackers |
On 03/07/2011 09:02 AM, Heikki Linnakangas wrote: > On 07.03.2011 15:30, Andrew Dunstan wrote: >> Previously, Simon said: >> >>> Truly "synchronous" requires two-phase commit, which this never was. >> >> So I too am confused about how it's now become "truly synchronous". Are >> we saying this give the same or better guarantees than a 2PC setup? > > The guarantee we have now with synchronous_replication=on is that when > the server acknowledges a commit to the client (ie. when COMMIT > command returns), the transaction is safely flushed to disk on the > master and at least one synchronous standby server. > > What you don't get is a guarantee on what happens to transactions that > were not acknowledged to the client. For example, if you pull the > power plug, the transaction that was just being committed might be > committed on the master, but not yet on the standby. > > For me, that's enough to call it "synchronous replication". It > provides a useful guarantee to the client. But you could argue for an > even stricter definition, requiring atomicity so that if a transaction > is not successfully replicated for any reason, including crash, it is > rolled back in the master too. That would require 2PC. > My worry is that the stricter definition is what many people will expect, without reading the fine print. cheers andrew
В списке pgsql-hackers по дате отправления: