Sergei: Thanks for the answers. Instead of having a DEBATE among Maria developers exactly how replication should work, there should be an option to fully externalize replication to another process and put all replication logic there to handle fault tolerance and scaling. The various Maria replication options out there require too much human involvement and do not really address a wide variety of needs. Then when someone wants to reduce the human involvement (For example, CHANGE MASTER TO....during failover), they are faced with writing monitoring programs and other code just to complement the internal replication processing. The included MASTER-SLAVE replication included in Maria is an operational nightmare. Any little problem and replication STOPS, it is just too finicky to be of use on a larger scale. And requires too much vigilance by human beings to keep going. It is NOT ELASTIC. I want the choice of giving up some rigid processing criterion for the sake of elasticity and intelligence. So I am looking at putting a replication externalization hook that is managed OUTSIDE of MariaDB but can FEEDBACK intelligence into MariaDB if needed. The hook will NOT be targeted at synchronous replication. That should be left to other replication devices or maybe a future development. I just want to make the leap to intelligent, un-supervised async replication first. md On 8/28/2012 9:11 AM, Sergei Golubchik wrote:
Hi, md!
On Aug 27, md@rpzdesign.com wrote:
I was looking at sql_update.cc, sql_insert.cc, sql_delete.cc so I could insert a hook to feed an external replication engines by choosing the update, delete, insert AFTER trigger points to insert logic that is db scope and not table scope.
I am testing the idea on 5.5.25 sources and will send a patch in when I can get my bearings on the source code.
Some probably stupid questions:
1)
Does InnoDB and Aria transaction support having anything to do with the binary log? Or do transactions in innodb and aria get stored into different files than the binary log? InnoDB and Aria have their own logs. And *additionaly* transactions get stored in the binary log, in a storage engine independent way.
2)
Where are the the system command "SET" implemented? mainly set_var.cc and sys_vars.h
What are you trying to do?
Where is the definition/ of commands like "SHOW variables LIKE H%" implemented? sql_show.cc
3)
I am going to open source this external replication hook, how do I send something to you so that you can add a #ifdef WITH_EXTERNAL_REPLICATION into the sources so that it would appear in 5.5.26 or 5.5.27? You can post it to this list. Or submit a merge request on launchpad.
But firts, please, try to explain what are you trying to achieve with your patch.
Regards, Sergei