Re: pg_basebackup --slot=SLOTNAME -X stream - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: pg_basebackup --slot=SLOTNAME -X stream
Date
Msg-id CABUevEzAHC+zpFj3a+rfQKf5nKM5TGuaHs4OtHuZSdoMj8R1Bg@mail.gmail.com
Whole thread Raw
In response to Re: pg_basebackup --slot=SLOTNAME -X stream  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: pg_basebackup --slot=SLOTNAME -X stream  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Tue, Mar 18, 2014 at 2:32 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
On 03/18/2014 03:25 PM, Fujii Masao wrote:
Hi,

Is there the explicit reason why --slot option that pg_receivexlog
already has has not been added into pg_basebackup? If not,
I'd like to support that option to eliminate the need to increase
wal_keep_segments for pg_basebackup. Thought?

That seems rather cumbersome. pg_basebackup is a run once, and then it dies. The slot would have to be created before running pg_basebackup, and destroyed manually.

It would make sense to provide a new option that would tell the server to recycle segments until they've been sent to this client, or until the client disconnects. But that would look quite different from pg_receivexlog's --slot option.

I started working on that at some point long ago, but never got far enough.

Right now, it seems the right way to do that is to somehow reimplement it on top of a "lightweight slot" that gets automatically destroyed when pg_basebackup stops.

But as Andres said, there's a little more to it. You'd want the slot to be created in the connection that does BASE_BACKUP, then used by the replication client side, and then destroyed by BASE_BACKUP. But you also want it auto-destroyed if the BASE_BACKUP connection gets terminated for example.. 

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: pg_basebackup --slot=SLOTNAME -X stream
Next
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Make it easy to detach completely from shared memory.