Re: Copy function for logical replication slots - Mailing list pgsql-hackers

From Masahiko Sawada
Subject Re: Copy function for logical replication slots
Date
Msg-id CAD21AoCoSVJskCMpQZ9hG5VNxgaJZ20Mq2imSYSbxn6h3Xjv5Q@mail.gmail.com
Whole thread Raw
In response to Re: Copy function for logical replication slots  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Copy function for logical replication slots  (Masahiko Sawada <sawada.mshk@gmail.com>)
List pgsql-hackers
On Mon, Jul 9, 2018 at 10:34 AM, Michael Paquier <michael@paquier.xyz> wrote:
> On Mon, Jul 09, 2018 at 10:06:00AM +0900, Masahiko Sawada wrote:
>> I think that this patch might be splitted but I will be able to send
>> an updated patch in the next week. As you suggestion this patch needs
>> more careful thoughts. I'll move this patch to the next commit fest if
>> I will not be able to sent it. Is that okay?
>
> Fine by me.  Thanks for the update.

Attached new version of patch incorporated the all comments I got from
Michael-san.

To prevent the WAL segment file of restart_lsn of the origin slot from
removal during creating the target slot, I've chosen a way to copy new
one while holding the origin one. One problem to implement this way is
that the current replication slot code doesn't allow us to do
straightforwardly; the code assumes that the process creating a new
slot is not holding another slot. So I've changed the copy functions
so that it save temporarily MyReplicationSlot and then restore and
release it after creation the target slot. To ensure that both the
origin and target slot are released properly in failure cases I used
PG_ENSURE_ERROR_CLEANUP(). That way, we can keep the code changes of
the logical decoding at a minimum. I've thought that we can change the
logical decoding code so that it can assumes that the process can have
more than one slots at once but it seems overkill to me.

Please review it.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachment

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: missing toast table for pg_policy
Next
From: Alexander Lakhin
Date:
Subject: Re: make installcheck-world in a clean environment