Re: pgsql: Efficient transaction-controlled synchronous replication.

Fujii Masao <masao.fujii@gmail.com>

From: Fujii Masao <masao.fujii@gmail.com>
To: Simon Riggs <simon@2ndquadrant.com>
Cc: pgsql-committers@postgresql.org
Date: 2011-03-07T08:27:16Z
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 →
  1. Efficient transaction-controlled synchronous replication.

Attachments

On Mon, Mar 7, 2011 at 7:51 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
> Efficient transaction-controlled synchronous replication.
> If a standby is broadcasting reply messages and we have named
> one or more standbys in synchronous_standby_names then allow
> users who set synchronous_replication to wait for commit, which
> then provides strict data integrity guarantees. Design avoids
> sending and receiving transaction state information so minimises
> bookkeeping overheads. We synchronize with the highest priority
> standby that is connected and ready to synchronize. Other standbys
> can be defined to takeover in case of standby failure.
>
> This version has very strict behaviour; more relaxed options
> may be added at a later date.

Pretty cool! I'd appreciate very much your efforts and contributions.

And,, I found one bug ;) You seem to have wrongly removed the check
of max_wal_senders in SyncRepWaitForLSN. This can make the
backend wait for replication even if max_wal_senders = 0. I could produce
this problematic situation in my machine. The attached patch fixes this problem.

Regards,

-- 
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center