i would like to know if Storage Engine MEMORY is working with the percona xtraDB Cluster 5.7 master-master replication.
I ask this because i have problems with a joomla installation when it try to execute some modifies on table, the error is “unknown storage engine ‘MEMORY’”
my default_storage_engine is innodb and i force the storage engine to be innodb
No. The Engine memory is not supported in any xtradb cluster configuration. It doesn’t matter whether it is with multiple nodes accepting writes or one writer.
The problem with memory engine is that it provides no persistence. This means that the table contents disappear when the node is rebooted.
Some applications use memory engine for performance considerations. But very often you can use innodb engine. Try changing the table to InnoDB and verify that the performance impact is reduced.
But you must make sure that joomla support properly XtraDB Cluster. There are other things that must be taken into consideration. If possible, avoid master-master configurations (unless applications are using separate databases).
i get ONLY innodb in the Engine column, so all the tables are innodb, could be that in the UPDATE is used a memory engine rule ?
Each application use a different DB, we use percona xtradb cluster from several years without problems, also with joomla, but this new version 4.x seems to arise this problem.
I’m sorry, but we can’t provide you with help for Joomla. If you have a testing environment, I suggest running the update on a standalone server (no pxc) and verifying if other engines than InnoDB are used in the new version.
I made a simple search and looks like some components require the MEMORY engine, but I don’t know if this is your case.
This is a bit complex. When you run the XtraDB Cluster version, you are running standard MySQL with some extensions that control the clustering. You can start the node with clustering disabled.
The Memory engine is supported by the standard component (linked and enabled by default) but is incompatible with the clustering component. There are two reasons for this engine not to be compatible with the clustering component:
It is not transactional.
It provides no durability.
Clustering requires the possibility of rolling back a transaction if there is a consistency issue. As memory is not transactional, it is impossible to roll back the changes. This would break the cluster and make it inconsistent.
Is possible for XtraDB to check the show engines command and show Support = NO in the engine list ?
Else if some application check for the available engine using mysql standard commands it will think that engine is supported and permitted, then when it will use that engine the clustering will answer with unknown storage engine ‘MEMORY’.
Or is there a way to know using a query which engines are actually supported by the cluster ?