We have some tables with row_format=Compact. The biggest table is around 30Gb, so how safely i can alter tables and set the row format as Compressed for the big table and Dynamic for other three tables which are under 10GB each? It is a cluster with three nodes with mariadb v10.4.12 and Galera 4. Running DDL / alter tables and change the row format can leads to cluster blocking and maybe it took long time!

Can anyone help and guide me how i can do it? Do you think using RSU mode helps here and is it safe since we talking about changing the row format?

1 Answer 1


Since you are not really changing any data nor the schema, just the underlying row_format, seems like RSU would be better, and a lot less invasive.

You might also take each node out of the cluster while doing the ALTER, or at least remove the one node from the proxy's list. This should avoid letting queries hit the table.

I feel pretty sure that the table will be blocked from writes and possibly reads during the conversion.

It would be wise to test this on an offline cluster, including testing reads/writes.

  • Thanks for your answer. Actually i did the changes as following: 1- We stopped all services / workers connected to the database so no write/reads 2- Then a full VMs and data backup of galera cluster nodes 3- Alter tables set row_fromat=Dynamic / Compressed - i started with smallest to biggest table 4- Start all services to connect to the database. I used the default TOI mode, but by turning off all APIs so no writes to the database it was smoother and it took around 150 minutes to finish the row format conversion. Apr 30, 2020 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.