On Tue, Aug 16, 2016 at 11:06 PM, Stephen Frost <sfrost@snowman.net> wrote: > I could see supporting an additional "pause" option that means "pause at > the end of WAL if you don't reach the recovery target point". I'd also > be happy with a warning being emitted in the log if the recovery target > point isn't reached before reaching the end of WAL, but I don't think it > makes sense to change the existing behavior.
Indeed, let's not change the existing behavior. A warning showing up by default would be useful in itself, even if there are people that I think set up overly high recovery targets to be sure to replay WAL as much as possible. As recovery_target_action has meaning when a recovery target has been reached, I would guess that we would want a new option that has the same mapping value as recovery_target_action, except that it activates when the target recovery is *not* reached. Hence it would be possible to shutdown, pause or promote at will when recovery completes, and be able to take a separate action is the recovery target is indeed reached. The default of this parameter would be "promote", which is what happens now.
Yes, a new parameter with same options as recovery_target_action is the idea i had in mind as well and i have the following queries while working through the patch design -
Query 1
What about the existing parameter called "recovery_target" which accepts only one value "immediate", which will be similar to the "promote" option with the to-be-introduced new parameter.
Since this parameter's behaviour will be incorporated into the new parameter, I think, this parameter can be deprecated from the next PostgreSQL version ?
Query 2
I am thinking that the new parameter name should be "recovery_target_incomplete" or "recovery_target_incomplete_action" which (by name) suggests that recovery target point is not yet reached and accepts options "pause","promote" and "shutdown".
The other alternative name i thought of was - "recovery_target_immediate_action", which (by name) suggests the action to be taken when the recovery does not reach the actual set recovery target and reaches immediate consistent point.