Re: Copy function for logical replication slots

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Copy function for logical replication slots
Date: 2018-07-12 12:28:52
Message-ID: CAD21AoCoSVJskCMpQZ9hG5VNxgaJZ20Mq2imSYSbxn6h3Xjv5Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

On Mon, Jul 9, 2018 at 10:34 AM, Michael Paquier <michael(at)paquier(dot)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 Content-Type Size
v4-0001-Copy-function-for-logical-and-physical-replicatio.patch application/octet-stream 39.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Lakhin 2018-07-12 12:32:00 Re: make installcheck-world in a clean environment
Previous Message Peter Eisentraut 2018-07-12 11:16:35 Re: missing toast table for pg_policy