Thanks for elaborating, Rohit.

On 2023-08-22 16:25, Rohit Yadav wrote:
Shiv, Lucian, all,

It's a known limitation for all available MySQL clustering solutions such as Galera, Percona XtraDB, Innodb Cluster that GET_LOCK [1] isn't supported [2][3]. The GET_LOCK is used by CloudStack for global locking critical code when more than one management server(s) are running against the same database/server.

(MySQL NDB, InnoDB cluster could be something to experiment, as well as, coming up with a locking service framework which could help get around the mysql/native get_lock limitations).

[1] https://dev.mysql.com/doc/refman/8.0/en/locking-functions.html#:~:text=MySQL%20enforces%20a%20maximum%20length,lock%20with%20the%20same%20name.

[2] https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/

[3] https://docs.percona.com/percona-xtradb-cluster/8.0/limitation.html



Regards.

________________________________
From: Nux <n...@li.nux.ro>
Sent: Tuesday, August 22, 2023 20:12
To: dev@cloudstack.apache.org <dev@cloudstack.apache.org>
Cc: us...@cloudstack.apache.org <us...@cloudstack.apache.org>; K B Shiv Kumar <s...@indiqus.com.invalid>
Subject: Re: [Consultation] Remove DB HA feature (db.ha.enabled)

But what do you think of the removal of DB HA code?

When using Galera you need to query against a single node, don't spread
the load among all 3, as this will break certain locking functionality
in Cloudstack and lead to problems.

In a Haproxy configuration you should be keeping just one active, eg:
         server galera1 10.0.3.2:3306 check
         server galera2 10.0.3.3:3306 check backup
         server galera3 10.0.3.4:3306 check backup

Regards

On 2023-08-22 15:36, K B Shiv Kumar wrote:
We faced some issues when running Galera. We went back to master slave.

Anyone using Galera in production for a long time?

Regards,
Shiv




On 22-Aug-2023, at 19:34, Nux <n...@li.nux.ro> wrote:

Happy to contribute a doc on how to achieve HA if we decide to remove
this.

Thanks

On 2023-08-22 15:01, Rohit Yadav wrote:
+1 it's a broken feature that at least doesn't work with MySQL 8.x,
I'm not sure if it worked with prior versions of MySQL. However, we
need to document some sort of suggested MySQL HA setup in our docs.
Regards.
________________________________
From: Nux <n...@li.nux.ro>
Sent: Tuesday, August 22, 2023 18:54
To: us...@cloudstack.apache.org <us...@cloudstack.apache.org>; Dev
<dev@cloudstack.apache.org>
Subject: [Consultation] Remove DB HA feature (db.ha.enabled)
Hello everyone,
A few weeks ago I asked you if you use or managed to use the DB HA
Cloudstack feature (db.ha.enabled)[1] and after reading some of the
replies and doing intensive testing myself I have found out that the
feature is indeed non-functional, it's broken.
In my testing I discovered DB HA can easily be done outside of
Cloudstack by employing load balancers and other techniques.
Personally I have achieved that by using Haproxy in front of Galera
cluster, but also introduced Keepalived (vrrp) in my setup to
"balance"
multiple Haproxies which also worked well.
As such, since the feature is basically broken, it will not be
trivial
to fix it and there are better ways of doing HA, then I propose to
remove it altogether.
Thoughts? Anyone against it?
Cheers
[1] -
https://docs.cloudstack.apache.org/en/latest/adminguide/reliability.html#database-high-availability

Reply via email to