Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug fix for lp:1536663. #468

Merged
merged 1 commit into from
May 4, 2016
Merged

Conversation

vlad-lesin
Copy link
Contributor

When read-free-replication is enabled for tokudb and there is no
explicit pk for replicated table there can be dublicated records in the table
on update operation.

Consider this update operation:
UPDATE t SET a = a + 10 WHERE b = 'b';
The master does rows lookup and updates the rows which values
correspond to the condition. The update events are written to binary log with
rows values from the master. As rows lookup is forbidden for slave
the new rows are added instead of updating corresponding rows.

Without the fix there will be several rows with b = 'b' in the table
on slave instead of one updated row.

The fix disables RFR for tables without explicit pk and do rows lookup
for update and delete binlog events and issues warning.

http://jenkins.percona.com/view/PS%205.6/job/percona-server-5.6-param/1122/

@george-lorch
Copy link
Contributor

@george-lorch
Copy link
Contributor

Vlad, is this a GCA branch and merge to 5.7? It looks like no GCA and two individual commits, one to 5.6 and one to 5.7.

When read-free-replication is enabled for tokudb and there is no
explicit pk for replicated table there can be dublicated records in the table
on update operation.

Consider this update operation:
  UPDATE t SET a = a + 10 WHERE b = 'b';
The master does rows lookup and updates the rows which values
correspond to the condition. The update events are written to binary log with
rows values from the master. As rows lookup is forbidden for slave
the new rows are added instead of updating corresponding rows.

Without the fix there will be several rows with b = 'b' in the table
on slave instead of one updated row.

The fix disables RFR for tables without explicit pk and do rows lookup
for update and delete binlog events and issues warning.
@vlad-lesin
Copy link
Contributor Author

Vlad, is this a GCA branch and merge to 5.7? It looks like no GCA and two individual commits, one to 5.6 and one to 5.7.

Yes, you a right. Rebased.

http://jenkins.percona.com/view/5.7/job/mysql-5.7-param/150/

@george-lorch george-lorch merged commit 4eeebb2 into percona:5.6 May 4, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants