List:General Discussion« Previous MessageNext Message »
From:Hery Ramilison Date:May 27 2014 12:12pm
Subject:MySQL Utilities 1.4.3 GA (including MySQL Fabric) has been released
View as plain text  
Dear MySQL users,

This is the GA release for Utilities 1.4 and the first GA release
for MySQL Fabric. MySQL Utilities version 1.4.3 is compatible with
MySQL Server versions 5.1 and greater, but should work with earlier
versions (greater than v4.1). Python v2.6 and v2.7 are supported.

In addition to server utilities, MySQL Utilities also contains
MySQL Fabric: a framework for managing a collection of MySQL servers.
MySQL Fabric is deployed as a separate service daemon that contains
support for high-availability and sharding.

The management framework maintains a database of the routing and
state information for the servers making up the system and provides
an easy-to-use command line interface for adding, removing and
organizing servers.

High-availability is provided by continuously monitoring the servers
and executing slave promotion when the master crashes and just as
importantly automatically updates the state and routing information
that gets messages to the right server.

MySQL Fabric comes with built-in support for sharding either using
ranges or consistent hashing and supports the sharding of multiple
tables to ensure that rows with matching sharding keys are stored
in the same shard. MySQL Fabric also contains support for global
tables that are duplicated on all shards as well as the ability to
synchronize schema updates across all of the servers.

To provide high performance and avoid latency, transactions are
directly routed by Fabric-aware connectors rather than routing via
an external proxy. The connectors dispatch transactions to the
correct shard, perform load-balancing, and handle read-write
splitting. Currently there exists Fabric-aware versions of
Connector/Python, Connector/Java, and Connector/PHP (through a
Fabric-aware mysqlnd_ms plugin).

MySQL Utilities v1.4.3 is available for download from

http://dev.mysql.com/downloads/tools/utilities/

A brief summary of changes is listed below. Please check the
CHANGES.txt file inside the distribution for a more complete list
of changes.

Bugs Fixed (2014-05-27)
----------

   * Due to the several changes in the high-availability and
     sharding sub-systems, the automatic routine to automatically
     find the lockable objects for a given procedure was not always
     valid. The consequence was that some procedures may have tried
     to update the same group concurrently when they should have
     been serialized. (Bug #18712020, Bug #72553)

   * When executing "mysqlfabric manage setup", some of the
     generated "CREATE TABLE" statements were explicitly requesting
     the InnoDB engine and ignoring the default-storage-engine
     option, thus preventing use of NDB as a state store. (Bug
     #18648779)

   * Any empty password definition ("password = ") in the
     configuration file would emit errors. (Bug #18524482, Bug
     #72149)

   * The FailoverDaemon class from the failover_daemon module was
     refactored to extend the Daemon class, so that the duplicated
     code was removed. (Bug #18546744)

   * Remote commands were authenticating the request twice, both
     before and after the command was sent to Fabric. This meant
     unnecessary requests were made to the state store. (Bug
     #18477189)

   * Executing "mysqlfabric manage setup" would sometimes halt with
     a connection error due to a short timeout. (Bug #18458461)

   * Commands failed if the "protocol.xmlrpc.user" option was not
     provided in the configuration file or from the command-line.
     Now, the user "admin" is the default. (Bug #18459012)

   * A "group add" with a server as "localhost:32274" caused Fabric
     to hang, as 32274 is the port used by Fabric. (Bug #18454737,
     Bug #72119)

   * A "PROMOTE" after "RESET MASTER" would cause Fabric to hang.
     Now, "SHOW SLAVE STATUS" is used to check whether the slave
     has processed all of the entries in the relay log. (Bug
     #18454679, Bug #72118)

   * The mysqldbcompare utility was not correctly checking
     differences for different rows internally associated to the
     same span key. Only the first difference was displayed. (Bug
     #18477410)

   * Optimizations to the mysqldbcompare utility include:

        + A new step was added to the data consistency check, now
          executing a CHECKSUM TABLE first (which is faster when no
          differences are expected). The current comparison
          algorithm is only execute if this preliminary full table
          checksum fails. A new --skip-checksum-table option was
          added to skip this new step that otherwise is executed by
          default.

        + The BINARY type is used instead of CHAR to store hash
          values in a more optimized way.

        + Unnecessary keys were removed from the temporary table
          (including the primary key).

        + ENGINE=MyISAM is now used for the temporary compare
          table.
     (Bug #18483844)

   * The temporary table created by the mysqldbcompare utility was
     missing an index for the 'span' column, meaning that the
     "_COMPARE_SUM" and "_COMPARE_DIFF" queries were doing full
     table scans. (Bug #18483844)

   * Some Fabric commands, such as "server.set_status" and
     "group.promote", accepted a reference to a MySQL server's uuid
     but not a reference to an address and port. (Bug #18440617,
     Bug #72094)

   * The mysqlrplms utility did check the MySQL server version when
     executed on MySQL server 5.7. (Bug #18434209)

   * With fabric, the pylint_tests script mixed the output from
     both pep8 and pylint results. A new --tester option was added
     that allows the tester to be chosen, which can be either
     "pylint", "pep8", or "all" (the default). (Bug #18383839)

   * Invoking the mysqlfabric utility with the wrong number of
     parameters would display general usage help for the utility,
     but it now shows help for the specified command. (Bug
     #18370958)

   * The mysqlrplsync utility was allowing the --exclude option to
     take an empty value, and the user was not notified. This now
     generates an error. (Bug #18381748)

   * The mysqldbcopy utility threw an internal Python exception
     when --rpl=slave was passed in without specifying --rpl-user.
     (Bug #18338321)

   * The "__name__ == '__main__'" attribute check was added to all
     scripts that can be executed as a standalone program. (Bug
     #18376793)

   * The mysqldbcopy, mysqldbimport and mysqldbexport utilities
     were not fully functional for all possible data types.
     Prefixes such as TINY, SMALL, MEDIUM, and BIG were not being
     taken into account when verifying the column data type.
     This issue was only present when the source server did not
     equal the destination server. In other words, when copied and
     not cloned. (Bug #18373190, Bug #71890)

   * The mysqldbexport utility would export BLOB rows using two
     statements; an INSERT followed by an UPDATE. This did not
     function if the exported table did not have at least one
     "UNIQUE NOT NULL INDEX", since UPDATE statements cannot
     uniquely identify each row. Now, they are exported using a
     single INSERT statement. (Bug #18373190, Bug #71890)

   * dump.shard_* did not take into account disabled shards, and
     therefore reported disabled shards through the dump interface.
     (Bug #18259479, Bug #71701)

   * The mysqlserverinfo utility threw an internal Python exception
     when passing a non-existent server to --server. (Bug
     #18262507)

   * The mysqslindexcheck utility was considering a PRIMARY key as
     redundant when this key was compared to a unique index with
     more columns than the PRIMARY key, which caused the DROP
     statement to be displayed as "None;" with the --show-drops
     option. In this scenario, the index key is now marked as
     redundant instead of the PRIMARY key. (Bug #18281513, Bug
     #71745)

   * The mysqlauditgrep utility did not support changes made to the
     audit log format in the "NEW" format. Both "NEW" and "OLD"
     formats are now supported.
     The audit_log_format option defaults to "OLD" in MySQL server
     5.6, and "NEW" in MySQL server 5.7. (Bug #18314951, Bug
     #71838)

   * An indexcheck option was added to the mysqlindexcheck utility.
     It reports on tables without a PRIMARY or UNIQUE key.
     Previously, this information was only available with a high
     verbosity level (-vv). (Bug #18241174, Bug #71690)

   * mysqldbcompare failed to properly compare the same views on
     different schemas. This caused the objects to be seen
     differently. (Bug #17864081, Bug #71022)

   * Because each xmlrpc session requires a database connection, it
     is possible to exceed the maximum number of connections in the
     backing store. The failure detector did not function properly
     when the number of connections was exceeded, and as such it
     could not promote a new server to the master. This scenario
     now generates an exception when fabric starts with the
     built-in failure detector is enabled. (Bug #17747197)

   * The mysql/utilities/common/parser.py script would stop
     processing when a blank line was encountered. However, the
     General Query Log may include multi-line statements that
     include blank lines. (Bug #71851)

Documentation
-------------
Online:http://dev.mysql.com/doc/workbench/en/mysql-utilities.html

The source distribution includes the manual pages for each utility under
the docs/ folder.

Reporting Bugs
--------------
We welcome and appreciate your feedback and bug reports:
http://bugs.mysql.com/

Enjoy!

On Behalf of the MySQL/ORACLE RE Team,

Thanks,
Hery


Thread
MySQL Utilities 1.4.3 GA (including MySQL Fabric) has been releasedHery Ramilison27 May 2014