Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication.
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Simon Riggs <simon@2ndquadrant.com>
Cc: Markus Wanner <markus@bluegap.ch>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Kevin Grittner <Kevin.Grittner@wicourts.gov>, MARK CALLAGHAN <mdcallag@gmail.com>, Alvaro Herrera <alvherre@commandprompt.com>, Andrew Dunstan <andrew@dunslane.net>, Aidan Van Dyk <aidan@highrise.ca>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2011-03-18T21:18:28Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Efficient transaction-controlled synchronous replication.
- a8a8a3e09652 9.1.0 cited
On Fri, Mar 18, 2011 at 3:29 PM, Simon Riggs <simon@2ndquadrant.com> wrote: > On Fri, 2011-03-18 at 20:19 +0100, Markus Wanner wrote: >> Simon, >> >> On 03/18/2011 05:19 PM, Simon Riggs wrote: >> >>> Simon Riggs<simon@2ndQuadrant.com> wrote: >> >>>> In PostgreSQL other users cannot observe the commit until an >> >>>> acknowledgement has been received. >> >> On other nodes as well? To me that means the standby needs to hold back >> COMMIT of an ACKed transaction, until receives a re-ACK from the master, >> that it committed the transaction there. How else could the slave know >> when to commit its ACKed transactions? > > We could do that easily enough, actually, if we wished. > > Do we wish? Seems like it would be nice, but isn't it dreadfully expensive? Wouldn't you need to prevent the slave from applying the WAL until the master has released the sync rep waiters? You'd need a whole new series of messages back and forth. Since the current solution is intended to support data-loss-free failover, but NOT to guarantee a consistent view of the world from a SQL level, I doubt it's worth paying any price for this. Certainly in the hot_standby=off case it's a nonissue. We might need to think harder about it when and if someone impements an 'apply' level though, because this would seem more of a concern in that case (though I haven't thought through all the details). -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company