← Back to team overview

maria-developers team mailing list archive

Re: New replication hook

 

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@xxxxxxxxxxxxx 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





References