<div dir="ltr"><div dir="ltr">On Fri, Jan 20, 2023 at 2:37 PM Tatsuo Ishii <<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">>> Can you elaborate the motivation behind this? It seems you just want<br>
>> to stop PostgreSQL node 1 and then rename PostgreSQL node 2 to node<br>
>> 1. I don't see benefit from this for admins/users except avoiding the<br>
>> node 1 "whole" from the configuration file.<br>
>><br>
> <br>
> We use pgpool as an integral part of solution to provide high availability<br>
> to our customers. We recommend our customers to run 3 instances on 3 sites<br>
> for the highest availability. Every instance of our application is a<br>
> virtual machine, running the application, pgpool, postgresql and some other<br>
> components. Sometimes, things break. For example, we've seen a case where<br>
> connectivity to one of the sites was bad. This would cause intermittent<br>
> failures. For this, we offer the option to temporarily disable one of the<br>
> nodes in the cluster. This will take the node out of the cluster,<br>
> preventing the other nodes from trying to communicate with it over the<br>
> unreliable connection. When the issue is fixed, the node can be re-enabled<br>
> and put back into the cluster.<br>
> <br>
> In the above scenario, the changes to the topology of the cluster are made<br>
> on a live environment and downtime should be reduced to a minimum. 2 of the<br>
> 3 nodes are healthy and capable of handling requests. They will however<br>
> need to be reconfigured to (temporarily) forget about the faulty node. We<br>
> can perform reconfiguration on one node at a time, taking it out of the<br>
> load balancer during this process, thus avoiding any downtime. If, however,<br>
> we need to restart pgpool on all nodes simultaneously, rather than one at a<br>
> time, that would interrupt service.<br>
> <br>
> Initially, we implemented this feature keeping the indexes of the backends<br>
> in place. So node 0 would only have a backend0 and a backend2, but that<br>
> didn't work. I don't know exactly what the problem was with that setup, as<br>
> this was quite some time ago (is such a configuration even allowed in<br>
> pgpool?). Because that setup did not work, we switched to reindexing the<br>
> backends, making sure we always start at 0 and do not skip any numbers.<br>
> This however confuses pgpool during the reconfiguration phase.<br>
> <br>
> I hope this makes our situation clear.<br>
<br>
Still I don't see why you can't leave the backend1 as "down" status<br>
instead of trying to take out the backend1 (if my understanding is<br>
correct, at the same time the pgpool node1 is brought to down status<br>
because node1 and backend1 are on the same virtual machine).<br>
<br>
This way, the node0 and the node2 can access the backend0 and the<br>
backend2 without being disturbed by the backend1.<br></blockquote><div><br></div><div>Under some circumstances the faulty node can cause disruption of service. This is especially the case when a link between nodes is unreliable. For example, we've seen problems when one of the interlinks is not working (i.e. node 1 and node 2 cannot communicate with each other, but can both communicate with node 0). Such a scenario can cause various different failures. Temporarily taking a node out of the cluster allows for the administrators to troubleshoot the issue without having to worry about causing interference on the service.</div><div><br></div><div>Another case we've seen is where one of the nodes needs to be migrated to a different site. If it is not possible to perform a live migration of the VM, the second best alternative is to first add a new node to the cluster and then remove the old one. The same steps need be performed when a vm host has had a catastrophic hardware failure and a node is lost permanently. Our entire software stack, with the exception of pgpool, supports performing these kinds of modifications without introducing any downtime.</div><div><br></div><div>Best regards,</div><div>Emond</div></div></div>