← Back to team overview

maria-developers team mailing list archive

Re: MDEV-6877 - binlog_row_image implementation advice

 

Hi Kristian,

I've gotten to a "sort of" stable state with binlog_row_image. It's not
100% complete as I did not add any tests for the new use cases.
Also there are a couple of changes that I am not 100% sure if they are
complete or correct.

I would like some input on these changes:
https://github.com/MariaDB/server/compare/10.1-MDEV-6877-binlog_row_image

The unpack_current_row being a very iffy change for me. I understand why it
is needed in the Update_rows_event::do_exec_row code, as the after image
has other columns that get written as opposed to the before image. Thing is
I've just made it in an attempt to fix a HA_ERR_SAME_KEY error that I kept
getting on the slave and it seems to have worked.

Do you think the implementation that MySQL chose is the correct one? The
changes are mostly the same as the MySQL variant, except they have V2 ROW
LOG EVENTS which seem to pass some extra info which we don't use (need?).

There are a lot of changes made and I've tried my best to not miss
anything. I agree that the git history could be better. I will rewrite it
when I get the final code variant.

Regards,
Vicentiu

On Mon, 30 Mar 2015 at 17:22 Vicențiu Ciorbaru <vicentiu@xxxxxxxxxxx> wrote:

> Hi Kristian,
>
> > Another concern that I have is how to test the implementation. Right
>> now, I
>> > run the test, get the binlog file and print it with mysqlbinlog and see
>> if
>> > the output is what I expect. Do we have something within mysql-test-run
>> > that automates this?
>>
>> There are some MTR tests that run mysqlbinlog and checks the output, for
>> example mysqlbinlog.test.
>>
>> But the usual way to check replication is all the MTR tests in
>> mysql-test/suite/rpl/t/. They start up a master and a slave server (or
>> more),
>> make some transactions on the master, check that they replicate as
>> expected to
>> the slave.
>>
>
> Thank you for the reply! I have already started doing the changes and I
> seem to be making some progress. The mysqlbinlog tests were the ones that I
> was looking for.
> I'll let you know if I run into any more issues. This actually turned out
> to be a very good learning experience for me as I previously had no
> experience with replication. I'll mark you as a reviewer when I have a
> patch ready.
>
> Vicențiu
>

Follow ups

References