Daniel-Constantin Mierla writes:
reordering does not help with round robin operations and parallel write.
i know, but it would solve the problem in the common case of a master-master replicated mysql cluster, where it does not matter, which of the two mysql servers is used.
The list of connections is cloned by each process in private memory (as it needs to be one db connection per process). A connecton can be part of many clusters.
in that case each process could reorder the list on its own. when connection on top of the list does not respond, it would be moved to the end of the list. that means one miss per process, which would be ok to me.
For each connection there is a pointer to shared memory where to store the state (active/inactive), with the goal that when an operation fails in one process, all the others will consider the connection inactive until is reactivated. While the shared pointer is there, the logic itself is not implemented yet.
that solution would be ok too, but would require a timer process to do the checking and reactivation.
-- juha