Re: Immediate standby promotion - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: Immediate standby promotion
Date
Msg-id CAA4eK1+FRQP_UurDZSP0=dviZHGG7zcpUQP_TY==ZFE29MTiUg@mail.gmail.com
Whole thread Raw
In response to Immediate standby promotion  (Fujii Masao <masao.fujii@gmail.com>)
Responses Re: Immediate standby promotion  (Fujii Masao <masao.fujii@gmail.com>)
List pgsql-hackers
On Thu, Aug 14, 2014 at 1:49 PM, Fujii Masao <masao.fujii@gmail.com> wrote:
>
> Hi,
>
> I'd like to propose to add new option "--immediate" to pg_ctl promote.
> When this option is set, recovery ignores any WAL data which have not
> been replayed yet and exits immediately. Patch attached.
>
> This promotion is faster than normal one but can cause data loss.

I think there is one downside as well for this proposal that
apart from data loss, it can lead to uncommitted data occupying
space in database which needs to be later cleaned by vacuum.
This can happen with non-immediate promote as well, but the
chances with immediate are more.  So the gain we got by doing
immediate promotion can lead to slow down of operations in some
cases.  It might be useful if we mention this in docs.

Few comments about patch:

1.
On standby we will see below message:

LOG:  received promote request

User will always see above message irrespective of whether it
is immediate promote or any other mode of promote. I think it will
be better to distinguish between different modes and display the
appropriate message.

2.
StartupXLOG()
{
..
+ if (immediate_promote)
+ break;
..
}

Why are you doing this check after pause
(recoveryApplyDelay/recoveryPausesHere) for recovery?

Why can't we do it after ReadRecord()?


3. 
! * of "promote" and "immediate_promote"
shouldn't in above sentence 'or' is more appropriate?

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: RLS Design
Next
From: Michael Paquier
Date:
Subject: Better support of exported snapshots with pg_dump