On 2015-07-29 08:57:38 +0100, Simon Riggs wrote: > On 22 July 2015 at 05:43, Michael Paquier <michael.paquier@gmail.com> wrote: > > > > Now, do we plan to do something about the creation of a slot. I > > imagine that it would be useful if we could have --create-slot to > > create a slot when beginning a base backup and if-not-exists to > > control the error flow. There is already CreateReplicationSlot for > > this purpose in streamutils.c so most of the work is already done. > > Also, when a base backup fails for a reason or another, we should try > > to drop the slot in disconnect_and_exit() if it has been created by > > pg_basebackup. if if-not-exists is true and the slot already existed > > when beginning, we had better not dropping it perhaps... > > > What is the purpose of creating a temporary slot?
> If we create a slot when one is needed and then drop automatically on > session disconnect (as Heikki suggest), what benefit does using a slot give > us?
The goal is to have a reliable pg_basebackup that doesn't fail due to missing WAL (which can easily happen even with -X) . That seems like a sane desire.
Agreed, that is sane. Slots are good.
The point of using a temporary slot is to not have a leftover slot afterwards, reserving resources. Especially important if the basebackup actually failed...
Creating a slot and then deleting it if the session disconnects does not successfully provide the functionality desired above.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services