Обсуждение: recovery_min_apply-delay and remote_apply

Поиск
Список
Период
Сортировка

recovery_min_apply-delay and remote_apply

От
Bernd Helmle
Дата:
Current PostgreSQL Documentation on recovery.conf has this about
recovery_min_apply_delay[1]:

---<---

This parameter is intended for use with streaming replication deployments;
however, if the parameter is specified it will be honored in all cases.
Synchronous replication is not affected by this setting because there is
not yet any setting to request synchronous apply of transaction commits.

--->---

If i understand correctly, this is not true anymore with 9.6, where
remote_apply will have exactly the behavior the paragraph above wants to
contradict: any transaction executed with synchronous_commit=remote_apply
will wait at least recovery_min_apply_delay to finish. Given that
synchronous_commit can be controlled by any user, this might be dangerous
if someone doesn't take care enough.

I think we need a doc patch for that at least, see attached patch against
master, but 9.6 should have a corrected one, too.

[1] <https://www.postgresql.org/docs/devel/static/standby-settings.html>


--
Thanks

    Bernd
Вложения

Re: recovery_min_apply-delay and remote_apply

От
Thomas Munro
Дата:
On Sat, Sep 17, 2016 at 8:45 AM, Bernd Helmle <mailings@oopsware.de> wrote:
> Current PostgreSQL Documentation on recovery.conf has this about
> recovery_min_apply_delay[1]:
>
> ---<---
>
> This parameter is intended for use with streaming replication deployments;
> however, if the parameter is specified it will be honored in all cases.
> Synchronous replication is not affected by this setting because there is
> not yet any setting to request synchronous apply of transaction commits.
>
> --->---
>
> If i understand correctly, this is not true anymore with 9.6, where
> remote_apply will have exactly the behavior the paragraph above wants to
> contradict: any transaction executed with synchronous_commit=remote_apply
> will wait at least recovery_min_apply_delay to finish. Given that
> synchronous_commit can be controlled by any user, this might be dangerous
> if someone doesn't take care enough.

Yes, I missed that sentence.  Thanks.

> I think we need a doc patch for that at least, see attached patch against
> master, but 9.6 should have a corrected one, too.

+1

-- 
Thomas Munro
http://www.enterprisedb.com



Re: recovery_min_apply-delay and remote_apply

От
Robert Haas
Дата:
On Fri, Sep 16, 2016 at 5:55 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> On Sat, Sep 17, 2016 at 8:45 AM, Bernd Helmle <mailings@oopsware.de> wrote:
>> Current PostgreSQL Documentation on recovery.conf has this about
>> recovery_min_apply_delay[1]:
>>
>> ---<---
>>
>> This parameter is intended for use with streaming replication deployments;
>> however, if the parameter is specified it will be honored in all cases.
>> Synchronous replication is not affected by this setting because there is
>> not yet any setting to request synchronous apply of transaction commits.
>>
>> --->---
>>
>> If i understand correctly, this is not true anymore with 9.6, where
>> remote_apply will have exactly the behavior the paragraph above wants to
>> contradict: any transaction executed with synchronous_commit=remote_apply
>> will wait at least recovery_min_apply_delay to finish. Given that
>> synchronous_commit can be controlled by any user, this might be dangerous
>> if someone doesn't take care enough.
>
> Yes, I missed that sentence.  Thanks.
>
>> I think we need a doc patch for that at least, see attached patch against
>> master, but 9.6 should have a corrected one, too.
>
> +1

Committed with a bit of adjustment, and back-patched to 9.6.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company