Reading about RELAY, I have the following doubts about what should I expect when using one of this layers.
RELAY.txt documentation says:
"The data centers in NYC and SFO are *completely autonomous local clusters*. There are no stability, flow control or
retransmission messages exchanged between NYC and SFO. This is critical because we don't want the SFO cluster to block
for example on waiting for credits from a node in the NYC cluster!"
But in RELAY2.txt it is said that message routing across sites is performed (and, I think, is the point of having RELAY). So, which guaranties are given across sites?
Also, it says:
"A relay member has a UDP stack which additionally contains a protocol RELAY at the top (shown in the bottom part
of the figure). RELAY has a JChannel which connects to the TCP group, but *only* when it is (or becomes) coordinator
of the local cluster. The configuration of the TCP channel is done via a property in RELAY."
That means that every member of each site has to be able to connect to the "global" cluster?
Strictly speaking (I think), every potential coordinator needs to be able to connect to the "global" cluster. Right? I guess I could handle it by specifying a coordinator selection algorithm.
Anyway, I _must_ have the RELAY setting in every node of the site (despite the fact I would force it to never become a coordinator), right? Or relaying is only important/active for the current coordinator?
Finally, in RELAY.txt says:
#3 Handling temp coordinator outage - how do we prevent message loss?
#4 State transfer - replication across clusters, to bootstrap initial coords in a local cluster"
Are these issues supported in RELAY2?
Messages can be lost across sites? FORWARD_TO_COORD fixes this issue?
State transfer isn't supported across sites?
Sorry for the long mail and many questions!