Re: Synchronous replication - patch status inquiry
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Simon Riggs <simon@2ndQuadrant.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, Robert Haas <robertmhaas@gmail.com>, David Fetter <david@fetter.org>, Bruce Momjian <bruce@momjian.us>, fazool mein <fazoolmein@gmail.com>, pgsql-hackers@postgresql.org
Date: 2010-09-03T06:55:37Z
Lists: pgsql-hackers
On 03/09/10 09:36, Simon Riggs wrote: > On Fri, 2010-09-03 at 12:50 +0900, Fujii Masao wrote: >> That design would affect what the standby should reply. If we choose >> async/recv/fsync/replay on a per-transaction basis, the standby >> should send multiple LSNs and the master needs to decide when >> replication has been completed. OTOH, if we choose just sync/async, >> the standby has only to send one LSN. >> >> The former seems to be more useful, but triples the number of ACK >> from the standby. I'm not sure whether its overhead is ignorable, >> especially when the distance between the master and the standby is >> very long. > > No, it doesn't. There is no requirement for additional messages. Please explain how you do it then. When a commit record is sent to the standby, it needs to acknowledge it 1) when it has received it, 2) when it fsyncs it to disk and c) when it's replayed. I don't see how you can get around that. Perhaps you can save a bit by combining multiple messages together, like in Nagle's algorithm, but then you introduce extra delays which is exactly what you don't want. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com