How do you implement a parallel algorithm for a software which
needs to be streamed to tapes?
How do you ensure that you have the capability to be able to tune
the level of parallelism for varying input and output devices and
varying levels of load?
These were some of the questions that we needed to answer when we
were trying to implement multi-threading capability for MySQL
Enterprise Backup (MEB).
The trivial way of achieving parallelism is by having the
multiple threads pick up the different files (in a file per
table) scenario. But this did not seem adequate because:
a) The sizes of these files (corresponding to the tables) could
be different and then one large file would limit the level of
parallelism since it would be processed by a single thread.
b) If you have to stream the backup how do you reconcile these
multiple files being streamed by separate threads? Large backups
are streamed directly to tape so it is …
The MySQL Enterprise Backup 3.8.1 release's main goal was support MySQL 5.6 server. But also beyond that primary goal MEB team added some valuable new options and features to ensure you'll get most from the new features in 5.6 as well. At a glance, here are some of the highlights,
MEB copy of InnoDB undo log tablespaces
MySQL 5.6 introduces a new feature to store undo logs in separate files called as undo tablespaces for improved performance. These undo tablespaces are logically part of system tablespace. All the commands associated with MEB - "backup", "apply-log" and "copy-back" now take care of the undo tablespaces in the same way as they process the system tablespace. MEB now supports innodb_undo_directory[logs][tablespace] option variables. When backup is executed, undo datafiles (up to number specified by innodb_undo_tablespaces) are stored in same directory as the datafiles of system tablespace. During …
[Read more]