Can anyone advise me if we choose Percona MyRocks storage engine on the slave and replicating off Galera Cluster running Innodb engine. Would such replication work and if so what are the chances of it breaking on schema changes done on Galera cluster via Pt-schema-change.
InnoDB is the only supported storage engine for Galera/PXC replication.
Re-reading your question, it seems you want to use MyRocks on a slave in a 'traditional' async replication scenario, not as part of a cluster. This should work fine as long as that slave does not participate in the Galera cluster. MyRocks only really works well with ROW format, so no STMT/MIX. Any replicated DDL that might alter the engine will cause the slave table alteration to the target engine.
Related
I want to change my cluster to mariadb innodb galera cluster
and need to know does this replication support in memory tables
bbefore this i have mysql in my cluster but need to use mariadb with innodb search engine
bbut the problem is these in memory table
does this replication end to an error?
allowing in memory table in mariadb galera cluster
Galera is all about HA (High Avility). The Query Cache, MyISAM, and MEMORY-table are not practical for a situation where multiple nodes are expected to stay perfectly in sync.
I do not expect any of those to be implemented in the future.;
Please explain what you want MEMORY for. Maybe we can suggest a workaround.
I have been reading about MySQL scaling and I found out that MySQL supports two type of architectures :
Master - Slave - Since updates from master to slave are asychronous then it is possible to have incosistent reads in case a slave is not updated ( due to latency or any other reason). So this system is highly available but not very consistent.
NDB Clustering - So MySQL can use NDB engine to deploy a cluster like NoSQL databases where sharding is also involved. I have two doubts in this that let's say I have 3 data nodes then how NDB engine performs JOIN queries because some of data can reside on Node 1 while other can be on Node2. Also does NDB cluster supports replication of data node? And if it supports replication then replication will be done to same data node or any other node?
I'm doing a migration work from MySql to MariaDB where replication is involved, everything is working fine and compatibility of master MySql (5.5.59) to slave MariaDB (10.1.26) is good.
The problem occur when I enable the replication from MariaDB master to MariaDB slave (same versions: 10.1.26). In some situations, identified on massive updates, the slave start to lag.
If I restore the master to MySql (5.5.59) and I replicate to the same slave in MariaDB, the lag never occur on the same set of updates.
I checked the relay logs in the MariaDB slave that is lagging, comparing the ones received when MySql is the master and the ones received when MariaDB is the master, the only differences are that when the master is MariaDB I can see statements related to gtid.
I would like to disable the presence of the gtid statements on the relay log when the master is MariaDB and make a replication similar to the "old style" MySql replication without gtid, but I've not found if is possible to do that.
The replication lag was due to the engine set in the table mysql.gtid_slave_pos in the slave server, by default this table is InnoDB and the tables that were receiving the replication updates are not InnoDB.
As explained in the link below, every transaction executed by the slave cause also an update on mysql.gtid_slave_pos, if the engines of the tables are different, that can cause a bad performance (in my case the server was lagging 4000+ seconds, changing the engine in the mysql.gtid_slave_pos the replication is now immediate).
https://mariadb.com/kb/en/library/mysqlgtid_slave_pos-table/
From MariaDB 10.3.1, a new parameter has been introduced to help with this problem: gtid_pos_auto_engines This parameter will create a different table mysql.gtid_slave_pos for each engine involved in the replication. Unfortunately seems not possible to accomplish that with previus version of MariaDB, the table mysql.gtid_slave_pos must be unique and the choice of its engine is up to the DBA and the tables/queries involved in the replication
On Galera Mysql Cluster (either Percona or MariaDB) limitation refers that XA transactions are not supported, cause of cluster nature, which is perfectly understand. My question: (i am not a developer so please show some mercy on me) is there any mechanism that replies an OK if the statement has been committed to majority of nodes - something like MongoDB write concern?
Galera replication is synchronous and when a write query gets back to you, the data is on every node in the cluster. If for any reason a node cannot apply the transaction, it will kill itself to maintain the integrity of data throughout the cluster.
Is it possible to configure slave in-memory database?
Master db is common, slave for read only operation could suit well into in-memory storage.
If it is not possible with MySQL, what are other database to use such scheme?
It might work for 'simple' slave, such as data size and replication, as well as tolerate lots of limits with the in-memory storage engine.