Dear Euler,
Sorry for posting e-mail each other. I will read your patch
but I want to reply one of yours.
>
I started reviewing v16-0007 but didn't finish yet. The general idea is ok.
However, I'm still worried about preventing some use cases if it provides only
the local connection option. What if you want to keep monitoring this instance
while the transformation is happening? Let's say it has a backlog that will
take some time to apply. Unless, you have a local agent, you have no data about
this server until pg_createsubscriber terminates. Even the local agent might
not connect to the server unless you use the current port.
>
(IIUC, 0007 could not overwrite a port number - refactoring is needed)
Ah, actually I did not have such a point of view. Assuming that changed port number
can avoid connection establishments, there are four options:
a) Does not overwrite port and listen_addresses. This allows us to monitor by
external agents, but someone can modify GUCs and data during operations.
b) Overwrite port but do not do listen_addresses. Not sure it is useful...
c) Overwrite listen_addresses but do not do port. This allows us to monitor by
local agents, and we can partially protect the database. But there is still a
room.
d) Overwrite both port and listen_addresses. This can protect databases perfectly
but no one can monitor.
Hmm, which one should be chosen? I prefer c) or d).
Do you know how pglogical_create_subscriber does?
Best Regards,
Hayato Kuroda
FUJITSU LIMITED
https://www.fujitsu.com/global/