MySQL Cluster 7.5.12 has been released

Prashant Tekriwal <[email protected]> Tue, 23 Oct 2018 17:14:52 +0530
Newsgroups gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers
Message-ID <[email protected]>
--------------61C8E818F28AD584741A98AA
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Dear MySQL Users,

MySQL Cluster is the distributed, shared-nothing variant of MySQL.
This storage engine provides:

   - In-Memory storage - Real-time performance (with optional
     checkpointing to disk)
   - Transparent Auto-Sharding - Read & write scalability
   - Active-Active/Multi-Master geographic replication

   - 99.999% High Availability with no single point of failure
     and on-line maintenance
   - NoSQL and SQL APIs (including C++, Java, http, Memcached
     and JavaScript/Node.js)

MySQL Cluster 7.5.12, has been released and can be downloaded from

   http://www.mysql.com/downloads/cluster/

where you will also find Quick Start guides to help you get your
first MySQL Cluster database up and running.

The release notes are available from

http://dev.mysql.com/doc/relnotes/mysql-cluster/7.5/en/index.html

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime and agility.

More details can be found at

   http://www.mysql.com/products/cluster/

Enjoy !

==============================================================================
Changes in MySQL NDB Cluster 7.5.12 (5.7.24-ndb-7.5.12) (2018-10-23,
General Availability)

    MySQL NDB Cluster 7.5.12 is a new release of MySQL NDB
    Cluster 7.5, based on MySQL Server 5.7 and including features
    in version 7.5 of the NDB
    (http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html)
    storage engine, as well as fixing recently discovered bugs in
    previous NDB Cluster releases.

    Obtaining MySQL NDB Cluster 7.5.  MySQL NDB Cluster 7.5
    source code and binaries can be obtained from
    https://dev.mysql.com/downloads/cluster/.

    For an overview of changes made in MySQL NDB Cluster 7.5, see
    What is New in NDB Cluster 7.5
(http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-what-is-new-7-5.html).

    This release also incorporates all bug fixes and changes made
    in previous NDB Cluster releases, as well as all bug fixes
    and feature changes which were added in mainline MySQL 5.7
    through MySQL 5.7.24 (see Changes in MySQL 5.7.24 (2018-10-22,
    General Availability)
(http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-24.html)).

Bugs Fixed


      * Packaging: Expected NDB header files were in the devel
        RPM package instead of libndbclient-devel. (Bug #84580,
        Bug #26448330)

      * MySQL NDB ClusterJ: When a table containing a BLOB
        (http://dev.mysql.com/doc/refman/5.7/en/blob.html) or a
        TEXT (http://dev.mysql.com/doc/refman/5.7/en/blob.html)
        field was being queried with ClusterJ for a record that
        did not exist, an exception ("The method is not valid in
        current blob state") was thrown. (Bug #28536926)

      * MySQL NDB ClusterJ: A NullPointerException was thrown
        when a full table scan was performed with ClusterJ on
        tables containing either a BLOB or a TEXT field. It was
        because the proper object initializations were omitted,
        and they have now been added by this fix. (Bug #28199372,
        Bug #91242)

      * When the SUMA kernel block receives a SUB_STOP_REQ
        signal, it executes the signal then replies with
        SUB_STOP_CONF. (After this response is relayed back to
        the API, the API is open to send more SUB_STOP_REQ
        signals.) After sending the SUB_STOP_CONF, SUMA drops the
        subscription if no subscribers are present, which
        involves sending multiple DROP_TRIG_IMPL_REQ messages to
        DBTUP. LocalProxy can handle up to 21 of these requests
        in parallel; any more than this are queued in the Short
        Time Queue. When execution of a DROP_TRIG_IMPL_REQ was
        delayed, there was a chance for the queue to become
        overloaded, leading to a data node shutdown with Error in
        short time queue.
        This issue is fixed by delaying the execution of the
        SUB_STOP_REQ signal if DBTUP is already handling
        DROP_TRIG_IMPL_REQ signals at full capacity, rather than
        queueing up the DROP_TRIG_IMPL_REQ signals.
        (Bug#26574003)

      * Having a large number of deferred triggers could
        sometimes lead to job buffer exhaustion. This could occur
        due to the fact that a single trigger can execute many
        operations---for example, a foreign key parent trigger
        may perform operations on multiple matching child table
        rows---and that a row operation on a base table can
        execute multiple triggers. In such cases, row operations
        are executed in batches. When execution of many triggers
        was deferred---meaning that all deferred triggers are
        executed at pre-commit---the resulting concurrent
        execution of a great many trigger operations could cause
        the data node job buffer or send buffer to be exhausted,
        leading to failure of the node.
        This issue is fixed by limiting the number of concurrent
        trigger operations as well as the number of trigger fire
        requests outstanding per transaction.
        For immediate triggers, limiting of concurrent trigger
        operations may increase the number of triggers waiting to
        be executed, exhausting the trigger record pool and
        resulting in the error Too many concurrently fired
        triggers (increase MaxNoOfFiredTriggers. This can be
        avoided by increasing MaxNoOfFiredTriggers
        (http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndb 
<http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers>
d-definition.html#ndbparam-ndbd-maxnooffiredtriggers 
<http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooffiredtriggers>),
        reducing the user transaction batch size, or both.
        (Bug#22529864)
        References: See also: Bug #18229003, Bug #27310330.

      * When moving an OperationRec from the serial to the
        parallel queue, Dbacc::startNext() failed to update the
        Operationrec::OP_ACC_LOCK_MODE flag which is required to
        reflect the accumulated OP_LOCK_MODE of all previous
        operations in the parallel queue. This inconsistency in
        the ACC lock queues caused the scan lock takeover
        mechanism to fail, as it incorrectly concluded that a
        lock to take over was not held. The same failure caused
        an assert when aborting an operation that was a member of
        such an inconsistent parallel lock queue. (Bug #92100,
        Bug #28530928)

      * DBTUP sent the error Tuple corruption detected when a
        read operation attempted to read the value of a tuple
        inserted within the same transaction. (Bug #92009,
        Bug#28500861)

      * False constraint violation errors could occur when
        executing updates on self-referential foreign keys.
        (Bug#91965, Bug #28486390)
        References: See also: Bug #90644, Bug #27930382.

      * An NDB internal trigger definition could be dropped while
        pending instances of the trigger remained to be executed,
        by attempting to look up the definition for a trigger
        which had already been released. This caused
        unpredictable and thus unsafe behavior possibly leading
        to data node failure. The root cause of the issue lay in
        an invalid assumption in the code relating to determining
        whether a given trigger had been released; the issue is
        fixed by ensuring that the behavior of NDB, when a
        trigger definition is determined to have been released,
        is consistent, and that it meets expectations.
        (Bug#91894, Bug #28451957)

      * In certain cases, a cascade update trigger was fired
        repeatedly on the same record, which eventually consumed
        all available concurrent operations, leading to Error 233
        Out of operation records in transaction coordinator
        (increase MaxNoOfConcurrentOperations). If
        MaxNoOfConcurrentOperations
        (http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd- 
<http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations>
definition.html#ndbparam-ndbd-maxnoofconcurrentoperations 
<http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations>)
        was set to a value sufficiently high to avoid this,
        the issue manifested as data nodes consuming very large
        amounts of CPU, very likely eventually leading to a
        timeout. (Bug #91472, Bug #28262259)

      * Inserting a row into an NDB
        (http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html)
        table having a self-referencing foreign key that
        referenced a unique index on the table other than the
        primary key failed with ER_NO_REFERENCED_ROW_2
        (http://dev.mysql.com/doc/refman/5.7/en/error-messages-se 
<http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_no_referenced_row_2>
rver.html#error_er_no_referenced_row_2 
<http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_no_referenced_row_2>). 
This was due to
        the fact that NDB checked foreign key constraints before
        the unique index was updated, so that the constraint
        check was unable to use the index for locating the row.
        Now, in such cases, NDB waits until all unique index
        values have been updated before checking foreign key
        constraints on the inserted row. (Bug #90644,
        Bug#27930382)
        References: See also: Bug #91965, Bug #28486390.

On Behalf of Oracle/MySQL Release Engineering Team
Prashant Tekriwal


--------------61C8E818F28AD584741A98AA--