<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pkgsrc/databases/mysql-cluster, branch pkgsrc-2016Q3</title>
<subtitle>[no description]</subtitle>
<id>https://git.osdyson.ru/mirror/pkgsrc/atom?h=pkgsrc-2016Q3</id>
<link rel='self' href='https://git.osdyson.ru/mirror/pkgsrc/atom?h=pkgsrc-2016Q3'/>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/'/>
<updated>2016-09-15T06:05:08Z</updated>
<entry>
<title>Update to MySQL Cluster 7.4.12</title>
<updated>2016-09-15T06:05:08Z</updated>
<author>
<name>jnemeth</name>
<email>jnemeth@pkgsrc.org</email>
</author>
<published>2016-09-15T06:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=b3b259c6ecf3d56f0a8e60821be5f7aac99dcd85'/>
<id>urn:sha1:b3b259c6ecf3d56f0a8e60821be5f7aac99dcd85</id>
<content type='text'>
----- 7.4.12

Changes in MySQL Cluster NDB 7.4.12 (5.6.31-ndb-7.4.12) (2016-07-18)

MySQL Cluster NDB 7.4.12 is a new release of MySQL Cluster 7.4,
based on MySQL Server 5.6 and including features in version 7.4 of
the NDB storage engine, as well as fixing recently discovered bugs
in previous MySQL Cluster releases.

This release also incorporates all bugfixes and changes made in
previous MySQL Cluster releases, as well as all bugfixes and feature
changes which were added in mainline MySQL 5.6 through MySQL 5.6.31
(see Changes in MySQL 5.6.31 (2016-06-02)).

Functionality Added or Changed

    ClusterJ: To make it easier for ClusterJ to handle fatal errors
    that require the SessionFactory to be closed, a new public
    method in the SessionFactory interface,
    getConnectionPoolSessionCounts(), has been created. When it
    returns zeros for all pooled connections, it means all sessions
    have been closed, at which point the SessionFactory can be
    closed and reopened. See Reconnecting to a MySQL Cluster for
    more detail. (Bug #22353594)

Bugs Fixed

    Incompatible Change: When the data nodes are only partially
    connected to the API nodes, a node used for a pushdown join
    may get its request from a transaction coordinator on a different
    node, without (yet) being connected to the API node itself. In
    such cases, the NodeInfo object for the requesting API node
    contained no valid info about the software version of the API
    node, which caused the DBSPJ block to assume (incorrectly) when
    aborting to assume that the API node used NDB version 7.2.4 or
    earlier, requiring the use of a backward compatability mode to
    be used during query abort which sent a node failure error
    instead of the real error causing the abort.

    Now, whenever this situation occurs, it is assumed that, if
    the NDB software version is not yet available, the API node
    version is greater than 7.2.4. (Bug #23049170)

    Although arguments to the DUMP command are 32-bit integers,
    ndb_mgmd used a buffer of only 10 bytes when processing them.
    (Bug #23708039)

    During shutdown, the mysqld process could sometimes hang after
    logging NDB Util: Stop ... NDB Util: Wakeup. (Bug #23343739)

    References: See also: Bug #21098142.

    During an online upgrade from a MySQL Cluster NDB 7.3 release
    to an NDB 7.4 (or later) release, the failures of several data
    nodes running the lower version during local checkpoints (LCPs),
    and just prior to upgrading these nodes, led to additional node
    failures following the upgrade. This was due to lingering
    elements of the EMPTY_LCP protocol initiated by the older nodes
    as part of an LCP-plus-restart sequence, and which is no longer
    used in NDB 7.4 and later due to LCP optimizations implemented
    in those versions. (Bug #23129433)

    Reserved send buffer for the loopback transporter, introduced
    in MySQL Cluster NDB 7.4.8 and used by API and management nodes
    for administrative signals, was calculated incorrectly. (Bug
    #23093656, Bug #22016081)

    References: This issue is a regression of: Bug #21664515.

    During a node restart, re-creation of internal triggers used
    for verifying the referential integrity of foreign keys was
    not reliable, because it was possible that not all distributed
    TC and LDM instances agreed on all trigger identities. To fix
    this problem, an extra step is added to the node restart
    sequence, during which the trigger identities are determined
    by querying the current master node. (Bug #23068914)

    References: See also: Bug #23221573.

    Following the forced shutdown of one of the 2 data nodes in a
    cluster where NoOfReplicas=2, the other data node shut down as
    well, due to arbitration failure. (Bug #23006431)

    The ndbinfo.tc_time_track_stats table uses histogram buckets
    to give a sense of the distribution of latencies. The sizes of
    these buckets were also reported as HISTOGRAM BOUNDARY INFO
    messages during data node startup; this printout was redundant
    and so has been removed. (Bug #22819868)

    A failure occurred in DBTUP in debug builds when variable-sized
    pages for a fragment totalled more than 4 GB. (Bug #21313546)

    mysqld did not shut down cleanly when executing ndb_index_stat.
    (Bug #21098142)

    References: See also: Bug #23343739.

    DBDICT and GETTABINFOREQ queue debugging were enhanced as follows:

	Monitoring by a data node of the progress of GETTABINFOREQ
	signals can be enabled by setting DictTrace &gt;= 2.

	Added the ApiVerbose configuration parameter, which enables
	NDB API debug logging for an API node where it is set
	greater than or equal to 2.

	Added DUMP code 1229 which shows the current state of the
	GETTABINFOREQ queue. (See DUMP 1229.)

    See also The DBDICT Block. (Bug #20368450)

    References: See also: Bug #20368354.

    Cluster API: Deletion of Ndb objects used a dispoportionately
    high amount of CPU. (Bug #22986823)

----- 7.4.11

Changes in MySQL Cluster NDB 7.4.11 (5.6.29-ndb-7.4.11) (2016-04-20)

MySQL Cluster NDB 7.4.11 is a new release of MySQL Cluster 7.4,
based on MySQL Server 5.6 and including features in version 7.4 of
the NDB storage engine, as well as fixing recently discovered bugs
in previous MySQL Cluster releases.

This release also incorporates all bugfixes and changes made in
previous MySQL Cluster releases, as well as all bugfixes and feature
changes which were added in mainline MySQL 5.6 through MySQL 5.6.29
(see Changes in MySQL 5.6.29 (2016-02-05)).

Functionality Added or Changed

    Cluster API: Added the Ndb::setEventBufferQueueEmptyEpoch()
    method, which makes it possible to enable queuing of empty
    events (event type TE_EMPTY). (Bug #22157845)

Bugs Fixed

    Important Change: The minimum value for the BackupDataBufferSize
    data node configuration parameter has been lowered from 2 MB
    to 512 KB. The default and maximum values for this parameter
    remain unchanged. (Bug #22749509)

    Microsoft Windows: Performing ANALYZE TABLE on a table having
    one or more indexes caused ndbmtd to fail with an InvalidAttrInfo
    error due to signal corruption. This issue occurred consistently
    on Windows, but could also be encountered on other platforms.
    (Bug #77716, Bug #21441297)

    During node failure handling, the request structure used to
    drive the cleanup operation was not maintained correctly when
    the request was executed. This led to inconsistencies that were
    harmless during normal operation, but these could lead to
    assertion failures during node failure handling, with subsequent
    failure of additional nodes. (Bug #22643129)

    The previous fix for a lack of mutex protection for the internal
    TransporterFacade::deliver_signal() function was found to be
    incomplete in some cases. (Bug #22615274)

    Compilation of MySQL with Visual Studio 2015 failed in
    ConfigInfo.cpp, due to a change in Visual Studio's handling of
    spaces and concatenation. (Bug #22558836, Bug #80024)

    When setup of the binary log as an atomic operation on one SQL
    node failed, this could trigger a state in other SQL nodes in
    which they appeared to detect the SQL node participating in
    schema change distribution, whereas it had not yet completed
    binary log setup. This could in turn cause a deadlock on the
    global metadata lock when the SQL node still retrying binary
    log setup needed this lock, while another mysqld had taken the
    lock for itself as part of a schema change operation. In such
    cases, the second SQL node waited for the first one to act on
    its schema distribution changes, which it was not yet able to
    do. (Bug #22494024)

    Duplicate key errors could occur when ndb_restore was run on
    a backup containing a unique index. This was due to the fact
    that, during restoration of data, the database can pass through
    one or more inconsistent states prior to completion, such an
    inconsistent state possibly having duplicate values for a column
    which has a unique index. (If the restoration of data is preceded
    by a run with --disable-indexes and followed by one with
    --rebuild-indexes, these errors are avoided.)

    Added a check for unique indexes in the backup which is performed
    only when restoring data, and which does not process tables
    that have explicitly been excluded. For each unique index found,
    a warning is now printed. (Bug #22329365)

    Restoration of metadata with ndb_restore -m occasionally failed
    with the error message Failed to create index... when creating
    a unique index. While disgnosing this problem, it was found
    that the internal error PREPARE_SEIZE_ERROR (a temporary error)
    was reported as an unknown error. Now in such cases, ndb_restore
    retries the creation of the unique index, and PREPARE_SEIZE_ERROR
    is reported as NDB Error 748 Busy during read of event table.
    (Bug #21178339)

    References: See also: Bug #22989944.

    When setting up event logging for ndb_mgmd on Windows, MySQL
    Cluster tries to add a registry key to HKEY_LOCAL_MACHINE,
    which fails if the user does not have access to the registry.
    In such cases ndb_mgmd logged the error Could neither create
    or open key, which is not accurate and which can cause confusion
    for users who may not realize that file logging is available
    and being used. Now in such cases, ndb_mgmd logs a warning
    Could not create or access the registry key needed for the
    application to log to the Windows EventLog. Run the application
    with sufficient privileges once to create the key, or add the
    key manually, or turn off logging for that application. An
    error (as opposed to a warning) is now reported in such cases
    only if there is no available output at all for ndb_mgmd event
    logging. (Bug #20960839)

    NdbDictionary metadata operations had a hard-coded 7-day timeout,
    which proved to be excessive for short-lived operations such
    as retrieval of table definitions. This could lead to unnecessary
    hangs in user applications which were difficult to detect and
    handle correctly. To help address this issue, timeout behaviour
    is modified so that read-only or short-duration dictionary
    interactions have a 2-minute timeout, while schema transactions
    of potentially long duration retain the existing 7-day timeout.

    Such timeouts are intended as a safety net: In the event of
    problems, these return control to users, who can then take
    corrective action. Any reproducible issue with NdbDictionary
    timeouts should be reported as a bug. (Bug #20368354)

    Optimization of signal sending by buffering and sending them
    periodically, or when the buffer became full, could cause
    SUB_GCP_COMPLETE_ACK signals to be excessively delayed. Such
    signals are sent for each node and epoch, with a minimum interval
    of TimeBetweenEpochs; if they are not received in time, the
    SUMA buffers can overflow as a result. The overflow caused API
    nodes to be disconnected, leading to current transactions being
    aborted due to node failure. This condition made it difficult
    for long transactions (such as altering a very large table),
    to be completed. Now in such cases, the ACK signal is sent
    without being delayed. (Bug #18753341)

    An internal function used to validate connections failed to
    update the connection count when creating a new Ndb object.
    This had the potential to create a new Ndb object for every
    operation validating the connection, which could have an impact
    on performance, particularly when performing schema operations.
    (Bug #80750, Bug #22932982)

    When an SQL node was started, and joined the schema distribution
    protocol, another SQL node, already waiting for a schema change
    to be distributed, timed out during that wait. This was because
    the code incorrectly assumed that the new SQL node would also
    acknowledge the schema distribution even though the new node
    joined too late to be a participant in it.

    As part of this fix, printouts of schema distribution progress
    now always print the more significant part of a bitmask before
    the less significant; formatting of bitmasks in such printouts
    has also been improved. (Bug #80554, Bug #22842538)

    Settings for the SchedulerResponsiveness data node configuration
    parameter (introduced in MySQL Cluster NDB 7.4.9) were ignored.
    (Bug #80341, Bug #22712481)

    MySQL Cluster did not compile correctly with Microsoft Visual
    Studio 2015, due to a change from previous versions in the VS
    implementation of the _vsnprintf() function. (Bug #80276, Bug
    #22670525)

    When setting CPU spin time, the value was needlessly cast to
    a boolean internally, so that setting it to any nonzero value
    yielded an effective value of 1. This issue, as well as the
    fix for it, apply both to setting the SchedulerSpinTimer
    parameter and to setting spintime as part of a ThreadConfig
    parameter value. (Bug #80237, Bug #22647476)

    Processing of local checkpoints was not handled correctly on
    Mac OS X, due to an uninitialized variable. (Bug #80236, Bug
    #22647462)

    A logic error in an if statement in
    storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp rendered
    useless a check for determining whether ZREAD_ERROR should be
    returned when comparing operations. This was detected when
    compiling with gcc using -Werror=logical-op. (Bug #80155, Bug
    #22601798)

    References: This issue is a regression of: Bug #21285604.

    The ndb_print_file utility failed consistently on Solaris 9
    for SPARC. (Bug #80096, Bug #22579581)

    Builds with the -Werror and -Wextra flags (as for release
    builds) failed on SLES 11. (Bug #79950, Bug #22539531)

    When using CREATE INDEX to add an index on either of two NDB
    tables sharing circular foreign keys, the query succeeded but
    a temporary table was left on disk, breaking the foreign key
    constraints. This issue was also observed when attempting to
    create an index on a table in the middle of a chain of foreign
    keysthat is, a table having both parent and child keys, but on
    different tables. The problem did not occur when using ALTER
    TABLE to perform the same index creation operation; and subsequent
    analysis revealed unintended differences in the way such
    operations were performed by CREATE INDEX.

    To fix this problem, we now make sure that operations performed
    by a CREATE INDEX statement are always handled internally in
    the same way and at the same time that the same operations are
    handled when performed by ALTER TABLE or DROP INDEX. (Bug
    #79156, Bug #22173891)

    NDB failed to ignore index prefixes on primary and unique keys,
    causing CREATE TABLE and ALTER TABLE statements using them to
    be rejected. (Bug #78441, Bug #21839248)

    Cluster API: Executing a transaction with an NdbIndexOperation
    based on an obsolete unique index caused the data node process
    to fail. Now the index is checked in such cases, and if it
    cannot be used the transaction fails with an appropriate error.
    (Bug #79494, Bug #22299443)

    Integer overflow could occur during client handshake processing,
    leading to a server exit. (Bug #22722946)

    For busy servers, client connection or communication failure
    could occur if an I/O-related system call was interrupted. The
    mysql_options() C API function now has a MYSQL_OPT_RETRY_COUNT
    option to control the number of retries for interrupted system
    calls. (Bug #22336527)

    References: See also: Bug #22389653.</content>
</entry>
<entry>
<title>Bump PKGREVISION for perl-5.24.0 for everything mentioning perl.</title>
<updated>2016-07-09T06:37:46Z</updated>
<author>
<name>wiz</name>
<email>wiz@pkgsrc.org</email>
</author>
<published>2016-07-09T06:37:46Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=4701ae8cf9bfd483f12f23f64c3467266286f68f'/>
<id>urn:sha1:4701ae8cf9bfd483f12f23f64c3467266286f68f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove the stability entity, it has no meaning outside of an official context.</title>
<updated>2016-06-08T10:16:50Z</updated>
<author>
<name>jperkin</name>
<email>jperkin@pkgsrc.org</email>
</author>
<published>2016-06-08T10:16:50Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=361a2466e2faa03ecb00ac16a4dee5c37fa003c2'/>
<id>urn:sha1:361a2466e2faa03ecb00ac16a4dee5c37fa003c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change the service_bundle name to "export" to reduce diffs between the</title>
<updated>2016-06-08T10:02:24Z</updated>
<author>
<name>jperkin</name>
<email>jperkin@pkgsrc.org</email>
</author>
<published>2016-06-08T10:02:24Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=5416845af3ff4dae8960197e218d1acfc41422ee'/>
<id>urn:sha1:5416845af3ff4dae8960197e218d1acfc41422ee</id>
<content type='text'>
original manifest.xml file and the output from "svccfg export".</content>
</entry>
<entry>
<title>Update databases/mysql-cluster to 7.4.10.</title>
<updated>2016-03-09T21:51:45Z</updated>
<author>
<name>fhajny</name>
<email>fhajny@pkgsrc.org</email>
</author>
<published>2016-03-09T21:51:45Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=2e22bdb52537ad077458ec8a6678766c93eb946c'/>
<id>urn:sha1:2e22bdb52537ad077458ec8a6678766c93eb946c</id>
<content type='text'>
7.4.10

- A serious regression was inadvertently introduced in MySQL Cluster NDB
  7.4.8 whereby local checkpoints and thus restarts often took much longer
  than expected.

See more at:

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/mysql-cluster-news-7-4-10.html


7.4.9

- Important Change: Previously, the NDB scheduler always optimized for
  speed against throughput in a predetermined manner (this was hard coded);
  this balance can now be set using the SchedulerResponsiveness data node
  configuration parameter.
- Added the tc_time_track_stats table to the ndbinfo information database.
- Cluster Replication: Normally, RESET SLAVE causes all entries to be
  deleted from the mysql.ndb_apply_status table. This release adds
  the ndb_clear_apply_status system variable, which makes it possible
  to override this behavior.

See more at:

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/mysql-cluster-news-7-4-9.html


7.4.8

- Changes have been made in the minimum values for a number of parameters
  applying to data buffers for backups and LCPs. These parameters, listed
  here, can no longer be set so as to make the system impossible to run:
  - BackupDataBufferSize: minimum increased from 0 to 2M.
  - BackupLogBufferSize: minimum increased from 0 to 2M.
  - BackupWriteSize: minimum increased from 2K to 32K.
  - BackupMaxWriteSize: minimum increased from 2K to 256K.
  In addition, the BackupMemory data node parameter is now deprecated and
  subject to removal in a future version of MySQL Cluster. Use
  BackupDataBufferSize and BackupLogBufferSize instead.
- When a backup was unsuccessful due to insufficient resourcesa subsequent
  retry worked only for those parts of the backup that worked in the same
  thread, since delayed signals are only supported in the same thread.
  Delayed signals are no longer sent to other threads in such cases.
- An instance of an internal list object used in searching for queued
  scans was not actually destroyed before calls to functions that could
  manipulate the base object used to create it.
- ACC scans were queued in the category of range scans, which could lead
  to starting an ACC scan when DBACC had no free slots for scans. We fix
  this by implementing a separate queue for ACC scans.
- Cluster Replication: Added the create_old_temporals server system
  variable to compliment the system variables avoid_temporal_upgrade and
  show_old_temporals introduced in MySQL 5.6.24 and available in MySQL
  Cluster beginning with NDB 7.3.9 and NDB 7.4.6.
- When the --database option has not been specified for ndb_show_tables,
  and no tables are found in the TEST_DB database, an appropriate warning
  message is now issued.
- Bug fixes.

See more at

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/mysql-cluster-news-7-4-8.html</content>
</entry>
<entry>
<title>Bump PKGREVISION for security/openssl ABI bump.</title>
<updated>2016-03-05T11:27:40Z</updated>
<author>
<name>jperkin</name>
<email>jperkin@pkgsrc.org</email>
</author>
<published>2016-03-05T11:27:40Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=ee3e800374a703dffb75012abfd6460dc7e71dbb'/>
<id>urn:sha1:ee3e800374a703dffb75012abfd6460dc7e71dbb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use OPSYSVARS.</title>
<updated>2016-02-25T11:46:20Z</updated>
<author>
<name>jperkin</name>
<email>jperkin@pkgsrc.org</email>
</author>
<published>2016-02-25T11:46:20Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=7fdd43d846dce67b6998fa5441196ffaa1b56e5b'/>
<id>urn:sha1:7fdd43d846dce67b6998fa5441196ffaa1b56e5b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>When dtrace option is not enabled, explicitly disable dtrace.</title>
<updated>2015-11-11T11:00:06Z</updated>
<author>
<name>wiz</name>
<email>wiz@pkgsrc.org</email>
</author>
<published>2015-11-11T11:00:06Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=2c03b545656ec944f94c164613d1ed9c838af70f'/>
<id>urn:sha1:2c03b545656ec944f94c164613d1ed9c838af70f</id>
<content type='text'>
Fixes build on NetBSD built with dtrace.</content>
</entry>
<entry>
<title>Add SHA512 digests for distfiles for databases category</title>
<updated>2015-11-03T01:56:09Z</updated>
<author>
<name>agc</name>
<email>agc@pkgsrc.org</email>
</author>
<published>2015-11-03T01:56:09Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=aeaba3aae764a51ecafeaf2f47fc7f21645cee71'/>
<id>urn:sha1:aeaba3aae764a51ecafeaf2f47fc7f21645cee71</id>
<content type='text'>
Problems found with existing distfiles:
	distfiles/D6.data.ros.gz
	distfiles/cstore0.2.tar.gz
	distfiles/data4.tar.gz
	distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.</content>
</entry>
<entry>
<title>Update to MySQL Cluster 7.4.7:  this is mainly a bug fix release.</title>
<updated>2015-09-07T04:33:06Z</updated>
<author>
<name>jnemeth</name>
<email>jnemeth@pkgsrc.org</email>
</author>
<published>2015-09-07T04:33:06Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/mirror/pkgsrc/commit/?id=fdf0c77b93de953db36b027a11507981fa3e619c'/>
<id>urn:sha1:fdf0c77b93de953db36b027a11507981fa3e619c</id>
<content type='text'>
pkgsrc change: delete one patch that has been upstreamed

Changes in MySQL Cluster NDB 7.4.7 (5.6.25-ndb-7.4.7) (2015-07-13)

MySQL Cluster NDB 7.4.7 is a new release of MySQL Cluster 7.4,
based on MySQL Server 5.6 and including features in version 7.4 of
the NDB storage engine, as well as fixing recently discovered bugs
in previous MySQL Cluster releases.

This release also incorporates all bugfixes and changes made in
previous MySQL Cluster releases, as well as all bugfixes and feature
changes which were added in mainline MySQL 5.6 through MySQL 5.6.25
(see Changes in MySQL 5.6.25 (2015-05-29)).

Functionality Added or Changed
- Deprecated MySQL Cluster node configuration parameters are now
  indicated as such by ndb_config --configinfo --xml. For each
  parameter currently deprecated, the corresponding &lt;param/&gt; tag
  in the XML output now includes the attribute deprecated="true".
  (Bug #21127135)

Bugs Fixed
- Important Change; Cluster API: The Ndb::getHighestQueuedEpoch()
  method returned the greatest epoch in the event queue instead of
  the greatest epoch found after calling pollEvents2().  (Bug
  #20700220)
- Important Change; Cluster API: Ndb::pollEvents() is now compatible
  with the TE_EMPTY, TE_INCONSISTENT, and TE_OUT_OF_MEMORY event
  types introduced in MySQL Cluster NDB 7.4.3.  For detailed
  information about this change, see the description of this method
  in the MySQL Cluster API Developer Guide. (Bug #20646496)
- Important Change; Cluster API: Added the method
  Ndb::isExpectingHigherQueuedEpochs() to the NDB API to detect
  when additional, newer event epochs were detected by pollEvents2().
  The behavior of Ndb::pollEvents() has also been modified such
  that it now returns NDB_FAILURE_GCI (equal to ~(Uint64)0) when
  a cluster failure has been detected. (Bug #18753887)
- After restoring the database metadata (but not any data) by
  running ndb_restore --restore_meta (or -m), SQL nodes would hang
  while trying to SELECT from a table in the database to which the
  metadata was restored. In such cases the attempt to query the
  table now fails as expected, since the table does not actually
  exist until ndb_restore is executed with --restore_data (-r).
  (Bug #21184102) References: See also Bug #16890703.
- When a great many threads opened and closed blocks in the NDB
  API in rapid succession, the internal close_clnt() function
  synchronizing the closing of the blocks waited an insufficiently
  long time for a self-signal indicating potential additional
  signals needing to be processed. This led to excessive CPU usage
  by ndb_mgmd, and prevented other threads from opening or closing
  other blocks.  This issue is fixed by changing the function
  polling call to wait on a specific condition to be woken up (that
  is, when a signal has in fact been executed). (Bug #21141495)
- Previously, multiple send threads could be invoked for handling
  sends to the same node; these threads then competed for the same
  send lock. While the send lock blocked the additional send threads,
  work threads could be passed to other nodes.  This issue is fixed
  by ensuring that new send threads are not activated while there
  is already an active send thread assigned to the same node. In
  addition, a node already having an active send thread assigned
  to it is no longer visible to other, already active, send threads;
  that is, such a node is longer added to the node list when a send
  thread is currently assigned to it. (Bug #20954804, Bug #76821)
- Queueing of pending operations when the redo log was overloaded
  (DefaultOperationRedoProblemAction API node configuration parameter)
  could lead to timeouts when data nodes ran out of redo log space
  (P_TAIL_PROBLEM errors). Now when the redo log is full, the node
  aborts requests instead of queuing them. (Bug #20782580) References:
  See also Bug #20481140.
- An NDB event buffer can be used with an Ndb object to subscribe
  to table-level row change event streams. Users subscribe to an
  existing event; this causes the data nodes to start sending event
  data signals (SUB_TABLE_DATA) and epoch completion signals
  (SUB_GCP_COMPLETE) to the Ndb object. SUB_GCP_COMPLETE_REP signals
  can arrive for execution in concurrent receiver thread before
  completion of the internal method call used to start a subscription.
  Execution of SUB_GCP_COMPLETE_REP signals depends on the total
  number of SUMA buckets (sub data streams), but this may not yet
  have been set, leading to the present issue, when the counter
  used for tracking the SUB_GCP_COMPLETE_REP signals (TOTAL_BUCKETS_INIT)
  was found to be set to erroneous values. Now TOTAL_BUCKETS_INIT
  is tested to be sure it has been set correctly before it is used.
  (Bug #20575424) References: See also Bug #20561446, Bug #21616263.
- NDB statistics queries could be delayed by the error delay set
  for ndb_index_stat_option (default 60 seconds) when the index
  that was queried had been marked with internal error. The same
  underlying issue could also cause ANALYZE TABLE to hang when
  executed against an NDB table having multiple indexes where an
  internal error occured on one or more but not all indexes.  Now
  in such cases, any existing statistics are returned immediately,
  without waiting for any additonal statistics to be discovered.
  (Bug #20553313, Bug #20707694, Bug #76325)
- The multi-threaded scheduler sends to remote nodes either directly
  from each worker thread or from dedicated send threads, depending
  on the cluster's configuration. This send might transmit all,
  part, or none of the available data from the send buffers. While
  there remained pending send data, the worker or send threads
  continued trying to send in a loop. The actual size of the data
  sent in the most recent attempt to perform a send is now tracked,
  and used to detect lack of send progress by the send or worker
  threads. When no progress has been made, and there is no other
  work outstanding, the scheduler takes a 1 millisecond pause to
  free up the CPU for use by other threads. (Bug #18390321)
  References: See also Bug #20929176, Bug #20954804.
- In some cases, attempting to restore a table that was previously
  backed up failed with a File Not Found error due to a missing
  table fragment file. This occurred as a result of the NDB kernel
  BACKUP block receiving a Busy error while trying to obtain the
  table description, due to other traffic from external clients,
  and not retrying the operation.  The fix for this issue creates
  two separate queues for such requests:  one for internal clients
  such as the BACKUP block or ndb_restore, and one for external
  clients such as API nodes and prioritizing the internal queue.
  Note that it has always been the case that external client
  applications using the NDB API (including MySQL applications
  running against an SQL node) are expected to handle Busy errors
  by retrying transactions at a later time; this expectation is
  not changed by the fix for this issue.  (Bug #17878183) References:
  See also Bug #17916243.
- On startup, API nodes (including mysqld processes running as SQL
  nodes) waited to connect with data nodes that had not yet joined
  the cluster. Now they wait only for data nodes that have actually
  already joined the cluster.  In the case of a new data node
  joining an existing cluster, API nodes still try to connect with
  the new data node within HeartbeatIntervalDbApi milliseconds.
  (Bug #17312761)
- In some cases, the DBDICT block failed to handle repeated
  GET_TABINFOREQ signals after the first one, leading to possible
  node failures and restarts. This could be observed after setting
  a sufficiently high value for MaxNoOfExecutionThreads and low
  value for LcpScanProgressTimeout. (Bug #77433, Bug #21297221)
- Client lookup for delivery of API signals to the correct client
  by the internal TransporterFacade::deliver_signal() function had
  no mutex protection, which could cause issues such as timeouts
  encountered during testing, when other clients connected to the
  same TransporterFacade. (Bug #77225, Bug #21185585)
- It was possible to end up with a lock on the send buffer mutex
  when send buffers became a limiting resource, due either to
  insufficient send buffer resource configuration, problems with
  slow or failing communications such that all send buffers became
  exhausted, or slow receivers failing to consume what was sent.
  In this situation worker threads failed to allocate send buffer
  memory for signals, and attempted to force a send in order to
  free up space, while at the same time the send thread was busy
  trying to send to the same node or nodes. All of these threads
  competed for taking the send buffer mutex, which resulted in the
  lock already described, reported by the watchdog as Stuck in
  Send. This fix is made in two parts, listed here:
  1. The send thread no longer holds the global send thread mutex
  while getting the send buffer mutex; it now releases the global
  mutex prior to locking the send buffer mutex. This keeps worker
  threads from getting stuck in send in such cases.
  2. Locking of the send buffer mutex done by the send threads now
  uses a try-lock. If the try-lock fails, the node to make the send
  to is reinserted at the end of the list of send nodes in order
  to be retried later. This removes the Stuck in Send condition
  for the send threads.  (Bug #77081, Bug #21109605)
- Cluster API: The pollEvents2() method now waits indefinitely for
  events when a negative value is used for the time argument. (Bug
  #20762291)
- Cluster API: NdbEventOperation::isErrorEpoch() incorrectly returned
  false for the TE_INCONSISTENT table event type (see The
  Event::TableEvent Type). This caused a subsequent call to
  getEventType() to fail. (Bug #20729091)
- Cluster API: Creation and destruction of Ndb_cluster_connection
  objects by multiple threads could make use of the same application
  lock, which in some cases led to failures in the global dictionary
  cache. To alleviate this problem, the creation and destruction
  of several internal NDB API objects have been serialized. (Bug
  #20636124)
- Cluster API: A number of timeouts were not handled correctly in
  the NDB API.  (Bug #20617891)
- Cluster API: When an Ndb object created prior to a failure of
  the cluster was reused, the event queue of this object could
  still contain data node events originating from before the failure.
  These events could reference old epochs (from before the failure
  occurred), which in turn could violate the assumption made by
  the nextEvent() method that epoch numbers always increase. This
  issue is addressed by explicitly clearing the event queue in such
  cases. (Bug #18411034) References: See also Bug #20888668.</content>
</entry>
</feed>
