Re: [HACKERS] Function to move the position of a replication slot - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: [HACKERS] Function to move the position of a replication slot
Date
Msg-id CAB7nPqRseAUja2CR5w7D0=swj5ysL6M7AE1mgXNO=ZjzkQDmmQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Function to move the position of a replication slot  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Function to move the position of a replication slot  (Craig Ringer <craig@2ndquadrant.com>)
List pgsql-hackers
On Thu, Aug 17, 2017 at 7:14 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andres Freund <andres@anarazel.de> writes:
>> On 2017-08-16 17:06:42 -0400, Tom Lane wrote:
>>> If I understand what this is meant to do, maybe better
>>> pg_move_replication_slot_lsn() or pg_change_replication_slot_lsn() ?
>>> The point being that you're adjusting the LSN pointer contained
>>> in the slot, which is distinct from the slot itself.
>
>> I think we should constrain the API to only allow later LSNs than
>> currently in the slot, rather than arbitrary ones. That's why I was
>> thinking of "forward".  I'm not convinced it's a good / safe idea to
>> allow arbitrary values to be set.
>
> +1 for constraining it like that, but I don't think that's an argument
> against using "move" or "change" as the verb.  I don't like "forward"
> because that's not the right word.  The only verb senses of "forward"
> in my Mac's dictionary are "send a message on to a further destination"
> and "help to advance or promote" (the latter usage is pretty obscure IMO).
> Neither one seems applicable here.

Definitely agreed on that. Any move function would need to check if
the WAL position given by caller is already newer than what's
available in the local pg_wal (minimum of all other slots), with a
shared lock that would need to be taken by xlog.c when recycling past
segments. A forward function works on a single entry, which should be
disabled at the moment of the update. It looks dangerous to me to do
such an operation if there is a consumer of a slot currently on it.
-- 
Michael



pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: [HACKERS] [BUGS] Replication to Postgres 10 on Windows isbroken
Next
From: Thomas Munro
Date:
Subject: Re: [HACKERS] Server crash due to SIGBUS(Bus Error) when trying toaccess the memory created using dsm_create().