Re: Synchronous replication

Yeb Havinga <yebhavinga@gmail.com>

From: Yeb Havinga <yebhavinga@gmail.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Aidan Van Dyk <aidan@highrise.ca>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-07-22T08:37:12Z
Lists: pgsql-hackers
Fujii Masao wrote:
> How should the synchronous replication behave when the number of connected
> standby servers is less than quorum?
>
> 1. Ignore quorum. The current patch adopts this. If the ACKs from all
>    connected standbys have arrived, transaction commit is successful
>    even if the number of standbys is less than quorum. If there is no
>    connected standby, transaction commit always is successful without
>    regard to quorum.
>
> 2. Observe quorum. Aidan wants this. Until the number of connected
>    standbys has become more than or equal to quorum, transaction commit
>    waits.
>
> Which is the right behavior of quorum commit? Or we should add new
> parameter specifying the behavior of quorum commit?
>   
Initially I also expected the quorum to behave like described by 
Aidan/option 2. Also, IMHO the name "quorom" is a bit short, like having 
"maximum" but not saying a max_something.

quorum_min_sync_standbys
quorum_max_sync_standbys

The question remains what are the sync standbys? Does it mean not-async? 
Intuitively by looking at the enumeration of replication_mode I'd think 
that the sync standbys are all standby's that operate in a not async 
mode. That would be clearer with a boolean sync (or not) and for sync 
standbys the replication_mode specified.

regards,
Yeb Havinga