Does a Galera Cluster Node Serve During a Heavy Data Replication?
To simplify the question, I want to ask that with a scenario. So I have a 3-Node Galera Cluster and I am using an IP routing service named Keepalived. When the Node 1 is available, the Keepalived routes all connections to the Node 1. When the Node 1 is gone, the Keepalived routes all connections to the Node 2. But if the Node 1 is gone for a long time (for example 30minute), all insert, update, delete etc.. operations are done in the Node 2 and when the Node 1 becomes available again, the Keepalived routes all connections to the Node 1 again. The question is here. There were gathered a lot of changes on Node 2 and the data transfer from the Node 2 to the Node 1 will take a few minutes, so the Node 1 will get the changes when it was not available but it will also serve during the data transfer. What will happened here? Will the Node 1 serve to the connections when it is receiving data from Node 2 or it will wait until the data transfer is completed? What will happened if a connection requests a data which is not replicated from the Node 2 to the Node 1 yet?
Answer Answered by Daniel Black in this comment.
Depending on your SST mechanism Node 1 may be able to serve data after some initialization. i.e only mariabackup (aka xtrabackup equivalent) per https://galeracluster.com/library/documentation/sst.html out of the built in SST mechanisms.
Glad to see you have a 3-node cluster. I hope the last node isn't arbitrator.