Changes in MySQL Cluster NDB 7.0.11 (5.1.41-ndb-7.0.11) (2010-02-02)

MySQL Cluster NDB 7.0.11 was withdrawn shortly after release,
due to Bug #51027. Users should upgrade to MySQL Cluster NDB
7.0.11a, which fixes this issue.

This release incorporates new features in the
NDB storage engine and fixes
recently discovered bugs in MySQL Cluster NDB 7.0.10.

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.1 through
MySQL 5.1.39 (see Changes in MySQL 5.1.41 (2009-11-05)).

Note

Please refer to our bug database at
http://bugs.mysql.com/ for more details about
the individual bugs fixed in this version.

Functionality Added or Changed

Important Change:
The maximum permitted value of the
ndb_autoincrement_prefetch_sz
system variable has been increased from 256 to 65536.
(Bug #50621)

Added multi-threaded ordered index building capability during
system restarts or node restarts, controlled by the
BuildIndexThreads data
node configuration parameter (also introduced in this release).

Cluster Replication:
Due to the fact that no timestamp is available for delete
operations, a delete using NDB$MAX() is
actually processed as NDB$OLD. However,
because this is not optimal for some use cases,
NDB$MAX_DELETE_WIN() is added as a conflict
resolution function; if the “timestamp” column
value for a given row adding or updating an existing row coming
from the master is higher than that on the slave, it is applied
(as with NDB$MAX()); however, delete
operations are treated as always having the higher value.

Cluster Replication:
In circular replication, it was sometimes possible for an event
to propagate such that it would be reapplied on all servers.
This could occur when the originating server was removed from
the replication circle and so could no longer act as the
terminator of its own events, as normally happens in circular
replication.

To prevent this from occurring, a new
IGNORE_SERVER_IDS option is introduced for
the CHANGE MASTER TO statement. This option
takes a list of replication server IDs; events having a server
ID which appears in this list are ignored and not applied. For
more information, see CHANGE MASTER TO Syntax.

In conjunction with the introduction of
IGNORE_SERVER_IDS, SHOW
SLAVE STATUS has two new fields.
Replicate_Ignore_Server_Ids displays
information about ignored servers.
Master_Server_Id displays the
server_id value from the
master.
(Bug #47037)

References: See also Bug #25998, Bug #27808.

Bugs Fixed

Initial start of partitioned nodes did not work correctly. This
issue was observed in MySQL Cluster NDB 7.0 only.
(Bug #50661)

The CREATE NODEGROUP client command in
ndb_mgm could sometimes cause the forced
shutdown of a data node.
(Bug #50594)

Local query handler information was not reported or written to
the cluster log correctly. This issue is thought to have been
introduced in MySQL Cluster NDB 7.0.10.
(Bug #50467)

Dropping unique indexes in parallel while they were in use could
cause node and cluster failures.
(Bug #50118)

When attempting to join a running cluster whose management
server had been started with the
--nowait-nodes option and
having SQL nodes with dynamically allocated node IDs, a second
management server failed with spurious INTERNAL
ERROR: Found dynamic ports with value in config...
error messages.
(Bug #49807)

When setting the
LockPagesInMainMemory
configuration parameter failed, only the error Failed
to memlock pages... was returned. Now in such cases
the operating system's error code is also returned.
(Bug #49724)

If a query on an NDB table compared
a constant string value to a column, and the length of the
string was greater than that of the column, condition pushdown
did not work correctly. (The string was truncated to fit the
column length before being pushed down.) Now in such cases, the
condition is no longer pushed down.
(Bug #49459)

ndbmtd was not built on Windows
(CMake did not provide a build target for
it).
(Bug #49325)

Performing intensive inserts and deletes in parallel with a high
scan load could a data node crashes due to a failure in the
DBACC kernel block. This was because checking
for when to perform bucket splits or merges considered the first
4 scans only.
(Bug #48700)

When performing a DELETE that
included a left join from an NDB
table, only the first matching row was deleted.
(Bug #47054)

Under some circumstances, the DBTC kernel
block could send an excessive number of commit and completion
messages which could lead to a the job buffer filling up and
node failure. This was especially likely to occur when using
ndbmtd with a single data node.
(Bug #45989)

When setting
LockPagesInMainMemory,
the stated memory was not allocated when the node was started,
but rather only when the memory was used by the data node
process for other reasons.
(Bug #37430)

Trying to insert more rows than would fit into an
NDB table caused data nodes to crash. Now in
such situations, the insert fails gracefully with error 633
Table fragment hash index has reached maximum
possible size.
(Bug #34348)

On Mac OS X or Windows, sending a SIGHUP
signal to the server or an asynchronous flush (triggered by
flush_time) caused the server
to crash.
(Bug #47525)

The ARCHIVE storage engine lost
records during a bulk insert.
(Bug #46961)

When using the ARCHIVE storage
engine, SHOW TABLE STATUS displayed incorrect
information for Max_data_length,
Data_length and
Avg_row_length.
(Bug #29203)