Thread: quorum commit Re: Synchronous replication

quorum commit Re: Synchronous replication

From
Fujii Masao
Date:
On Thu, Jul 22, 2010 at 5:37 PM, Yeb Havinga <yebhavinga@gmail.com> wrote:
> 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.

I have another question about the detailed design of quorum commit.

In the following case, how should quorum commit behave?

1. quorum_standbys = 2; there are three connected synchronous standbys
2. One standby sends the ACK back and fails
3. The ACK arrives from another standby
4. How should quorum commit behave?

(a) Transaction commit returns a "success" since the master has already   received two ACKs
(b) Transaction commit waits for the "last" ACK since only one of   currently connected standbys has sent the ACK

Regards,

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


Re: quorum commit Re: Synchronous replication

From
Yeb Havinga
Date:
Fujii Masao wrote:
> In the following case, how should quorum commit behave?
>
> 1. quorum_standbys = 2; there are three connected synchronous standbys
> 2. One standby sends the ACK back and fails
> 3. The ACK arrives from another standby
> 4. How should quorum commit behave?
>
> (a) Transaction commit returns a "success" since the master has already
>     received two ACKs
> (b) Transaction commit waits for the "last" ACK since only one of
>     currently connected standbys has sent the ACK
>   
I'd opt for option (b) if that doesn't make the code very complex, or 
expensive (to check connected state when reaching quorum).

regards,
Yeb Havinga