"nanyi607rao" <[email protected]> writes:

> I find a bug of ding-qing parallel replication.
>
> let's consider a table like this:
>  
> create table t1(
>   a int(11) NOT NULL DEFAULT '0',
>   b varchar(10),
>   PRIMARY KEY (a)
> )ENGINE=InnoDB
>
> if we do transactions on master(binlog_format=ROW) like this:
> trans 1:
>   begin;
>   insert into t1 values(1, "tt");
>   update t1 set a=2 where a=1;
>   commit;
> trans 2;
>   begin;
>   update t1 set b="kk" where a=2;
>   commit;
>
> then this two transactions binlog transmit to the slave, because trans 1 and 
> trnas 2 has different primary keys, it would disaptch in different threads 
> like this:
>    thread 1 do trans 1
>    thread 2 do trans 2

I wonder if this problem is because the code does not detect that trans 1
accesses both primary key values a=1 and a=2?

If so, it should be possible to fix. For an UPDATE statement, the row events
have both the before image (with a=1) and the after image (with a=2). Maybe
there is a bug in the current code that it does not look in the after image?

(I am still very interested in adding this feature to MariaDB. Unfortunately I
have been too busy with two other big tasks, hopefully once they are done I
can get back to this one).

 - Kristian.

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to