Am 10/9/18 um 11:41 AM schrieb Jay Pipes:
On 10/09/2018 04:34 AM, Christian Berendt wrote:On 8. Oct 2018, at 19:48, Jay Pipes <jaypi...@gmail.com> wrote:Why not send all read and all write traffic to a single haproxy endpoint and just have haproxy spread all traffic across each Galera node?Galera, after all, is multi-master synchronous replication... so it shouldn't matter which node in the Galera cluster you send traffic to.Probably because of MySQL deadlocks in Galera: —snip—Galera cluster has known limitations, one of them is that it uses cluster-wide optimistic locking. This may cause some transactions to rollback. With an increasing number of writeable masters, the transaction rollback rate may increase, especially if there is write contention on the same dataset. It is of course possible to retry the transaction and perhaps it will COMMIT in the retries, but this will add to the transaction latency. However, some designs are deadlock prone, e.g sequence tables.—snap—Source: https://severalnines.com/resources/tutorials/mysql-load-balancing-haproxy-tutorialHave you seen the above in production?
Yes of course. Just depends on the application and how high the workload gets.
Please read about deadloks and nova in the following report by Intel: http://galeracluster.com/wp-content/uploads/2017/06/performance_analysis_and_tuning_in_china_mobiles_openstack_production_cloud_2.pdfIf just Nova is affected we could also create an additional HAProxy listener using all Galera nodes with round-robin for all other services?
Anyway - proxySQL would be a great extension.
smime.p7s
Description: S/MIME cryptographic signature
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev