Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication.
От | Robert Haas |
---|---|
Тема | Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication. |
Дата | |
Msg-id | AANLkTik0WoT+qwh09EUetgFVZy8zpm1Sc3hspa4ddJjs@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled synchronous replication. (Markus Wanner <markus@bluegap.ch>) |
Ответы |
Re: Re: [COMMITTERS] pgsql: Efficient transaction-controlled
synchronous replication.
|
Список | pgsql-hackers |
On Wed, Mar 23, 2011 at 3:27 AM, Markus Wanner <markus@bluegap.ch> wrote: > On 03/22/2011 09:33 PM, Robert Haas wrote: >> We might have a version of synchronous replication that works this way >> some day, but it's not the version were shipping with 9.1. The slave >> acknowledges the WAL records when they hit the disk (i.e. fsync) not >> when they are applied; WAL apply can lag arbitrarily. The point is to >> guarantee clients that the WAL is on disk somewhere and that it will >> be replayed in the event of a failover. Despite the fact that this >> doesn't work as you're describing, it's a useful feature in its own >> right. > > In that sense, our approach may be more synchronous than most others, > because after the ACK is sent from the slave, the slave still needs to > apply the transaction data from WAL before it gets visible, while the > master needs to wait for the ACK to arrive at its side, before making it > visible there. > > Ideally, these two latencies (disk seek and network induced) are just > about equal. But of course, there's no such guarantee. So whenever one > of the two is off by an order of magnitude or two (by use case or due to > a temporary overload), either the master or the slave may lag behind the > other machine. > > What pleases me is that the guarantee from the slave is somewhat similar > to Postgres-R's: with its ACK, the receiving node doesn't guarantee the > transaction *is* applied locally, it just guarantees that it *will* be > able to do so sometime in the future. Kind of a mind twister, though... Yes. What this won't do is let you build a big load-balancing network (at least not without great caution about what you assume). What it will do is make it really, really hard to lose committed transactions.Both good things, but different. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: