On Thu, Aug 14, 2014 at 1:49 PM, Fujii Masao <masao.fu...@gmail.com> wrote:
> 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:
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
+ if (immediate_promote)
Why are you doing this check after pause
(recoveryApplyDelay/recoveryPausesHere) for recovery?
Why can't we do it after ReadRecord()?
! * of "promote" and "immediate_promote"
shouldn't in above sentence 'or' is more appropriate?