[MDEV-6877] Merge binlog_row_image from MySQL 5.6 Created: 2014-10-16  Updated: 2015-11-01  Resolved: 2015-06-30

Status: Closed
Project: MariaDB Server
Component/s: Replication
Fix Version/s: 10.1.6

Type: Task Priority: Major
Reporter: Arjen Lentz Assignee: Vicențiu Ciorbaru
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-7471 Enable binlog_row_image parameter in ... Closed
is duplicated by MDEV-5765 Replication 5.6=>10.0 causes garbage ... Open
Relates
relates to MDEV-8398 Minimal/NOBLOB Binlog Row Image repli... Open
relates to MDEV-8408 Assertion `inited==INDEX' failed in i... Closed
relates to MDEV-8426 mysqlbinlog: "Corrupted replication e... Closed
relates to MDEV-5765 Replication 5.6=>10.0 causes garbage ... Open
Sprint: 10.1.6-1

 Description   

Sadly, many production environments do have InnoDB tables without PRIMARY KEY. This happens for instance in Drupal deployments where either core or modules may not always have a PK defined in their structure.

This MySQL 5.6 optimisation would help MariaDB slaves execute certain queries faster.

Ref http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_row_image heading "Optimized Row-Based Replication" quoted below
===
The final piece in improving replication performance is to introduce efficiencies to the binary log itself.

By only replicating those elements of the row image that have changed following INSERT, UPDATE and DELETE operations, replication throughput for both the master and slave(s) can be increased while binary log disk space, network resource and server memory footprint are all reduced.

This is especially useful when replicating across datacenters or cloud availability zones.

Another performance enhancements is the was Row-Based Replication events are handled on the slave against tables without Primary Keys. Updates would be made via multiple table scans. In MySQL 5.6, no matter size of the event, only one table scan is performed, significantly reducing the apply time.

You can learn more about Optimized Row Based Replication from the MySQL documentation (http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_row_image)
===



 Comments   
Comment by Arjen Lentz [ 2014-10-16 ]

This option was already flagged for porting by Kristian Nielsen in November 2013 on the MariaDB dev list, in response to an email from Sergey Vojtovic.
Ref: MDEV-5277

Comment by Vicențiu Ciorbaru [ 2015-06-22 ]

Can you please review the patch set found here?

https://github.com/MariaDB/server/compare/10.1-MDEV-6877-binlog_row_image

Thanks
Vicentiu

Comment by Vicențiu Ciorbaru [ 2015-06-30 ]

Implemented with:

https://github.com/MariaDB/server/compare/768620ee5c71...1a3321b6496d

Comment by Daniel Black [ 2015-07-29 ]

great work cvicentiu.

missing from documentation however https://mariadb.com/kb/en/mariadb/server-system-variables/

Comment by Daniel Black [ 2015-08-06 ]

greenman - ^ new variable undocumented

Comment by Daniel Black [ 2015-08-22 ]

thanks greenman

Generated at Thu Feb 08 07:15:16 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.