At OSCON 2011 last week, Oracle delivered more early access (labs)
features for MySQL 5.6 replication. These features are focused on better integration,
performance and data integrity:
- The Binlog API: empowering the community to seamlessly
integrate MySQL with other applications and data stores;
- Binlog Group Commit and Enhanced Multi-Threaded Slaves:
continuing to deliver major improvements to replication performance;
- Durable Slave Reads: further enhancing data integrity.
new features build on the significant replication enhancements announced as part of the MySQL 5.6.2 Development Milestone Release back in
are always listening to our customers and community. And, based on their needs and input, the MySQL
engineering team continues to take replication to the next level.
new functionality is available for evaluation now and can be downloaded today
for each of the new capabilities are discussed below with links to blogs
written by the MySQL engineers, describing implementation and how to get
started in evaluating them.
value your feedback and therefore encourage you to share your input and
experiences through the comments sections of this and the blogs referenced
Binlog API empowers the MySQL community to seamlessly integrate MySQL with both
new and legacy applications and data stores.
volumes around the world now growing at the rate of 40% per annum,
driving users to implement more integrated data management technologies to
capture, integrate and analyze the trillions of bytes coming daily from web
applications, social networking, mobile broadband networks, embedded sensors,
Binlog API enables developers to reduce the complexity of integration by
standardizing their SQL data management operations on MySQL, while replicating
data to other applications within their data management infrastructure.
The Binlog API exposes a programmatic C++ interface to the binary log, implemented as a standalone library.
Using the API, developers can read and parse binary log events both from existing binlog files as well as from running servers and replicate the
changes into other data stores.
The Binlog API can be evaluated with the MySQL 5.6.2
Development Milestone Release as well as the current GA 5.5 release.
can download the code as part of MySQL Server Snapshot:
mysql-5.6-labs-binary-log-api from http://labs.mysql.com
To demonstrate the possibilities of the Binlog API, an example application for replicating changes from MySQL Server to Apache Solr
(a full text search server) has been developed. The example is available with the source download on Launchpad
Enhanced Multi-Threaded Slaves
slaves were previewed as part of a MySQL 5.6 Labs build in April 2011, delivering significant performance enhancements by allowing updates to be applied in parallel across databases, rather
testing and feedback from the community has enabled Oracle to release an
enhanced implementation of multi-threaded slaves including:
slave management options - now, when a user issues a STOP SLAVE command, the
operation waits until all threads across each database have applied their
updates before stopping, ensuring slave consistency. Slaves can still be
stopped immediately by killing the SQL thread on the slave;
support for statement-based replication by enhancing the handling of temporary
the renaming, reworking and reduction in parameters, without affecting overall
enhancements delivered as part of this labs release enables the community to
extend evaluation and prototyping of new applications using a more robust and
feature-complete implementation of multi-threaded slaves.
can download the code as part of MySQL Server Snapshot: mysql-5.6-labs-multi-threaded-slave
Binlog Group Commit
to improve the performance of MySQL replication, Group Commit applies updates
to the binary log in parallel and then commits them as a group to the binlog on
have complete control over the frequency of commits to disk – providing two
1. Configure the number of transactions that should be grouped together
2. Define the time interval, with millisecond granularity, before
the binary log is persisted.
are used to ensure all events have been written to the binary log.
The current Binlog Group Commit is a
snapshot of a work-in-progress. We have not benchmarked the
implementation at this time, and we expect results from that exercise to
influence final implementation decisions. This is a great opportunity for
the community to evaluate the implementation and feedback to the MySQL
can download the code as part of MySQL Server Snapshot: mysql-5.6-labs-binlog-group-commit
Durable Slave Reads
now have the option to control when a slave reads the master’s binary log. There are two options:
- Read the binlog as soon as updates are applied to it (with the
risk of the data being lost in the event of a master crash).
- Read the binlog only once the updates have been committed to disk,
making them read-durable and therefore not risking lost transactions, but
meaning the slave will be behind the master.
new flexibility means users can configure for performance or read-durability,
depending on the requirements of their application.
in summary, the enhancements delivered by these latest early access features deliver
new capabilities and flexibility that benefits almost all users of MySQL
evaluate them today by downloading the snapshot from http://labs.mysql.com/
us know what you think of these enhancements directly in comments for each
blog. We look forward to working with the community to perfect these new