Actual problems with DDL statements?

07-05-2012, 10:07 AM

I am seriously considering moving our MySQL infrastructure over to Percona XtraDB Cluster. However one of the statements in the limitations documentation concerns me: "DDL statements are problematic and may stall cluster."

What kind of problems are actually seen? We have a unusually large structure on the order of 50,000+ tables so DDL statements occur on a rather frequent basis. Any input would be appreciated.

If a DDL statement simple pauses the cluster for a brief interval that is completely acceptable, however if it behaves in an unexpected fashion with the potential to hang the cluster entirely that is not.

I think that "DDL statements are problematic" is an overstatement. However by default they are executed virtually synchronously and yes, they may stall the cluster for the duration of the operation: e.g. adding an index to a table will block all transactions updating this table and, consequently, all transactions that share rows with those. If no transactions reference the table, then the cluster will stall after processing 65K transactions and wait for the DDL statement to complete. If the statement completes before 65K limit, then you'll see no difference from standalone MySQL.