maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #05865
Re: a bug of ding-qing parallel replication
"nanyi607rao" <nanyi607rao@xxxxxxxxx> 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.
References