← Back to team overview

maria-developers team mailing list archive

Re: Merge Percona patch MWL#47 into mariadb 5.2-percona.

 

Hi, Kristian!

A fourth option could be to take MySQL's version  and add
--binlog-annotate-rows-events and --replicate-annotate-rows-events
options, and make a slave read MWL#47 annotation event as a
rows_query_log_event. This option is basically the opposite of yours
third option.

In both cases we end up having a superset of both implementations and
fully compatible. But by preserving more of MySQL version we would
simplify future merges and would be able to get bugfixes with every
merge.

Regards,
Sergei

On Jan 12, Kristian Nielsen wrote:
> knielsen@xxxxxxxxxxxxxxx writes:
> 
> > message:
> >   Merge Percona patch MWL#47 into mariadb 5.2-percona.
> >   
> >   This patch adds options to annotate the binlog (and the mysqlbinlog
> >   output) with the original SQL query for queries that are logged
> >   using row-based replication.
> 
> Serg raised the very relevant issue about what to do about the similar feature
> in MySQL 5.6:
> 
>     http://forge.mysql.com/worklog/task.php?id=4033
>     http://forge.mysql.com/worklog/task.php?id=5404
> 
> The Oracle team has worked more on this since last I looked, and the two
> features are now very similar. Here are the main differences, as I see it:
... 
> So the question is how to prepare for when we merge MySQL 5.6. An easy option
> could be to just ditch MWL#47 (and possibly backport the MySQL 5.6
> patch). However, as I understand it, the original sponsor of MWL#47 is already
> using it, and so we may have to remain compatible with the existing MWL#47
> implementation. Can we get some definite information on that?
> 
> Another option might be to simply change the MWL#47 to use the same event type
> as MySQL (the event format is the same, and we can add the
> LOG_EVENT_IGNORABLE_F). And replace the MWL#47 options
> --binlog-annotate-rows-events and --replicate-annotate-rows-events with the
> MySQL --binlog_rows_query_log_events option (though I think the MySQL option
> name is not good). But again, I am not sure if this is a valid option given
> possible existing usage of MWL#47.
> 
> The third option I can think of is to leave MWL#47 as it is. Then when we get
> to merge MySQL 5.6, we will basically drop the MySQL part, doing the following
> to remain backwards compatible with MySQL:
> 
>  - Make the --binlog_rows_query_log_events option set
>    --binlog-annotate-rows-events and --replicate-annotate-rows-events.
> 
>  - Make a slave read a MySQL rows_query_log_event as a MWL#47 annotation
>    event.
> 
>  - Merge over the bit of the MySQL patch that makes mysqlbinlog output
>    annotation events using a BINLOG '...' statement.
> 
> This should make upgrade from MySQL 5.6 -> MariaDB fully work. Using MySQL5.6+
> with MariaDB will also work, only MySQL slaves will not receive MariaDB master
> annotation events.



References