MySQL Cluster 7.5.0 has been released (part 1/3)
Balasubramanian Kandasamy <[email protected]> Fri, 05 Feb 2016 13:32:43 +0530
| Newsgroups | gmane.comp.db.mysql.announce,gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers |
|---|---|
| Message-ID | <[email protected]> |
Dear MySQL Users,
MySQL Cluster is the distributed, shared-nothing variant of MySQL.
This storage engine provides:
- In-Memory storage - Real-time performance
- 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)
[Due to size limitations on forum/email, this announcement had to be
split into three parts. This is part 1.]
MySQL Cluster 7.5.0 DMR can be downloaded from the "Development
Releases" tab at
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.
As with any other pre-production release, caution should be taken when
installing on production level systems or systems with critical data.
More information on the Development Milestone Release process can be
found at
http://dev.mysql.com/doc/mysql-development-cycle/en/development-milestone-releases.html
More details can be found at
http://www.mysql.com/products/cluster/
Enjoy !
Changes in MySQL Cluster NDB 7.5.0 (5.7.10-ndb-7.5.0) (2016-02-05,
Developer Milestone)
MySQL Cluster NDB 7.5.0 is a new release of MySQL 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.6/en/mysql-cluster.html) storage
engine, as well as fixing recently discovered bugs in previous MySQL
Cluster releases.
Obtaining MySQL Cluster NDB 7.5. MySQL Cluster NDB 7.5 source code
and binaries can be obtained from
http://dev.mysql.com/downloads/cluster/.
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.7 through MySQL 5.7.10
(see Changes in MySQL 5.7.10 (2015-12-07)
(http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-10.html)).
* Functionality Added or Changed
* Bugs Fixed
Functionality Added or Changed
* Important Change: Previously, the ndbinfo
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbinfo.html)
information database included lookup tables that used
the MyISAM
(http://dev.mysql.com/doc/refman/5.6/en/myisam-storage-engine.html)
storage engine. This dependency on MyISAM has now been
removed. (Bug #20075747)
* 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
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndb <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerresponsiveness>
d-definition.html#ndbparam-ndbd-schedulerresponsiveness <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-schedulerresponsiveness>) data
node configuration parameter. This parameter accepts an integer
in the range of 0-10 inclusive, with 5 as the default. Higher
values provide better response times relative to throughput.
Lower values provide increased throughput, but impose longer
response times. (Bug #78531, Bug #21889312)
* Important Change: A number of MySQL Cluster data node
configuration parameters were deprecated in earlier versions of
MySQL Cluster, and have been removed with this release. These
parameters include Id, NoOfDiskPagesToDiskDuringRestartTUP,
NoOfDiskPagesToDiskDuringRestartACC,
NoOfDiskPagesToDiskAfterRestartACC,
NoOfDiskPagesToDiskAfterRestartTUP, ReservedSendBufferMemory,
MaxNoOfIndexes, and Discless (use Diskless instead), as well as
DiskCheckpointSpeed and DiskCheckpointSpeedInRestart. The archaic
and unused ByteOrder computer configuration parameter has also
been removed. These parameters are no longer supported; most of
them already did not have (or no longer had) any effect. Trying
to use any of these parameters in a MySQL Cluster configuration
file now results in an error. For more information, see MySQL
Cluster Development History
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-dev <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-development.html>
elopment.html <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-development.html>). (Bug #77404, Bug #21280428)
* Important Change: The ExecuteOnComputer configuration
parameter for management, data, and API nodes is now deprecated,
and is subject to removal in a future MySQL Cluster release. For
all types of MySQL Cluster nodes, you should now use the HostName
parameter exclusively for identifying hosts in the cluster
configuration file. This information is also now displayed in
the output of ndb_config --configinfo
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-pro <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_configinfo>
grams-ndb-config.html#option_ndb_config_configinfo <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_configinfo>) --xml
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-pro <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_xml>
grams-ndb-config.html#option_ndb_config_xml <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_xml>). (Bug #53052,
Bug #11760628)
* Important Change: The ndbinfo
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndb <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbinfo.html>
info.html <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbinfo.html>) database can now provide default and current
information about MySQL Cluster node configuration parameters as
a result of the following changes:
1. The config_params
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluste <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbinfo-config-params.html>
r-ndbinfo-config-params.html <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbinfo-config-params.html>) table has been enhanced with
additional columns providing information about each
configuration parameter, including its type, default, and
maximum and minimum values (where applicable).
2. A new config_values table has been added. A row in this
table shows the current value of a parameter on a given node.
You can obtain values of MySQL Cluster configuration parameters
by name using a join on these two tables such as the one shown
here:
SELECT p.param_name AS Name,
v.node_id AS Node,
p.param_type AS Type,
p.param_default AS 'Default',
v.config_value AS Current
FROM config_params p
JOIN config_values v
ON p.param_number = v.config_param
WHERE p. param_name IN ('NodeId', 'HostName',
'DataMemory', 'IndexMemory');
* Deprecated MySQL Cluster node configuration parameters
are now indicated as such by ndb_config --configinfo
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-pro <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_configinfo>
grams-ndb-config.html#option_ndb_config_configinfo <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_configinfo>) --xml
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-pro <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_xml>
grams-ndb-config.html#option_ndb_config_xml <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_xml>). For each parameter
currently deprecated, the corresponding <param/> tag in the XML
output now includes the attribute deprecated="true". (Bug
#21127135)
* Added the --ndb-cluster-connection-pool-nodeids option
for mysqld, which can be used to specify a list of nodes by node
ID for connection pooling. The number of node IDs in the list
must equal the value set for --ndb-cluster-connection-pool
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-opt <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-options-variables.html#option_mysqld_ndb-cluster-connection-pool>
ions-variables.html#option_mysqld_ndb-cluster-connection-pool <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-options-variables.html#option_mysqld_ndb-cluster-connection-pool>).
(Bug #19521789)
* Added the PROMPT command in the ndb_mgm client. This
command has the syntax PROMPT string, which sets the client's
prompt to string. Issuing the command without an argument causes
the prompt to be reset to the default (ndb_mgm>). See Commands in
the MySQL Cluster Management Client
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-mgm <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-mgm-client-commands.html>
-client-commands.html <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-mgm-client-commands.html>), for more information. (Bug #18421338)
* When the --database
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-pro <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-show-tables.html#option_ndb_show_tables_database>
grams-ndb-show-tables.html#option_ndb_show_tables_database <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-show-tables.html#option_ndb_show_tables_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 #78379, Bug #11758430)
* The NDB
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html)
storage engine now uses the improved records-per-key interface
for index statistics introduced for the optimizer in MySQL 5.7.
Some improvements due to this change are listed here:
+ The optimizer can now choose better execution plans for
queries on NDB tables in many cases where a less optimal join
index or table join order would previously have been chosen.
+ EXPLAIN
(http://dev.mysql.com/doc/refman/5.6/en/explain.html) now
provides more accurate row estimates than previously.
+ Improved cardinality estimates can be obtained from SHOW
INDEX (http://dev.mysql.com/doc/refman/5.6/en/show-index.html).
* Cluster Replication: Normally, RESET SLAVE
(http://dev.mysql.com/doc/refman/5.6/en/reset-slave.html) causes
all entries to be deleted from the mysql.ndb_apply_status table.
This release adds the ndb_clear_apply_status
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-opt <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-options-variables.html#sysvar_ndb_clear_apply_status>
ions-variables.html#sysvar_ndb_clear_apply_status <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-options-variables.html#sysvar_ndb_clear_apply_status>) system
variable, which makes it possible to override this behavior. This
variable is ON by default; setting it to OFF keeps RESET SLAVE
from purging the ndb_apply_status table. (Bug #12630403)
Bugs Fixed
* Important Change: The options controlling behavior of NDB
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html)
programs with regard to the number and timing of successive
attempts to connect to a management server have changed as listed
here:
+ The minimum value for the --connect-retry-delay
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluste <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retry-delay>
r-program-options-common.html#option_ndb_common_conn <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retry-delay>
ect-retry-delay <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retry-delay>) option common to all NDB programs has been
changed from 0 to 1; this means that all NDB programs now wait
at least 1 second between successive connection attempts, and
it is no longer possible to set a waiting time equal to 0.
+ The semantics for the --connect-retries
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluste <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retries>
r-program-options-common.html#option_ndb_common_conn <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retries>
ect-retries <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-retries>) option have changed slightly, such that the value
of this option now sets the number of times an NDB program
tries to connect to a management server. Setting this option
to 0 now causes the program to attempt the connection
indefinitely, until it either succeeds or is terminated by
other means (such as kill).
+ In addition, the default for the --connect-retries option
for the ndb_mgm client has been changed from 3 to 12, so that
the minimum, maximum, and default values for this option when
used with ndb_mgm are now exactly the same as for all other
NDB programs. The ndb_mgm --try-reconnect
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluste <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-mgm.html#option_ndb_mgm_try-reconnect>
r-programs-ndb-mgm.html#option_ndb_mgm_try-reconnect <http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-programs-ndb-mgm.html#option_ndb_mgm_try-reconnect>) option,
although deprecated in MySQL Cluster NDB 7.4, continues to be
supported as a synonym for ndb_mgm --connect-retries to
provide backwards compatibility. The default value for
--try-reconnect has also been changed from 3 to 12,
respectively, so that this option continues to behave in the
exactly in the same way as --connect-retries. (Bug #22116937)
* Important Change: In previous versions of MySQL Cluster,
other DDL operations could not be part of ALTER ONLINE TABLE ...
RENAME ...
(http://dev.mysql.com/doc/refman/5.6/en/alter-table.html) . (This
was disallowed by the fix for BUG#16021021.) MySQL Cluster NDB
7.5 makes the following changes:
+ Support for the ONLINE and OFFLINE keywords, which was
deprecated in MySQL Cluster NDB 7.3, is now removed, and use
of these now causes a syntax error; the NDB
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html)
storage engine now accepts only ALGORITHM = DEFAULT, ALGORITHM
= COPY, and ALGORITHM = INPLACE to specify whether the ALTER
operation is copying or in-place, just as in the standard
MySQL Server.
+ NDB now allows ALTER TABLE ... ALGORITHM=COPYING RENAME.
(Bug #20804269, Bug #76543, Bug #20479917, Bug #75797)
* Important Change; Cluster API: Ndb::pollEvents()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents>
ndb-ndb-pollevents <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-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()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-isexpectinghigherqueuedepochs>
ndb-ndb-isexpectinghigherqueuedepochs <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-isexpectinghigherqueuedepochs>) to the NDB API to detect
when additional, newer event epochs were detected by
pollEvents2()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents2>
ndb-ndb-pollevents2 <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents2>). The behavior of Ndb::pollEvents()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents>
ndb-ndb-pollevents <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-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)
* Important Change; Cluster API: To release the memory used
for dropped event operations, the event API formerly depended on
pollEvents()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents>
ndb-ndb-pollevents <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-pollevents>) and nextEvent()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-nextevent>
ndb-ndb-nextevent <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-nextevent>) to consume all events possibly referring to
the dropped events. This dependency between dropEventOperation()
(http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html# <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-dropeventoperation>
ndb-ndb-dropeventoperation <http://dev.mysql.com/doc/ndbapi/en/ndb-ndb-methods.html#ndb-ndb-dropeventoperation>) and the first two methods required
the entire event buffer to be read before attempting to release
event operation memory (that is, until successive calls to
pollEvents() and nextEvent() returned no more events). A related
cleanup issue arose following the reset of the event buffer (when
all event operations had previously been dropped), and the event
buffer was truncated by the first createEventOperation() call
subsequent to the reset. To fix these problems, the event buffer
is now cleared when the last event operation is dropped, rather
than waiting for a subsequent create operation which might or
might not occur. Memory taken up by dropped event operations is
also now released when the event queue has been cleared, which
removes the hidden requirement for consuming all events to free
up memory. In addition, event operation memory is now released as
soon as all events referring to the operation have been consumed,
rather than waiting for the entire event buffer to be consumed.
(Bug #78145, Bug #21661297)
* Important Change; Cluster API: The MGM API error-handling
functions ndb_mgm_get_latest_error()
(http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-lates
t-error.html <http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-latest-error.html>), ndb_mgm_get_latest_error_msg()
(http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-lates
t-error-msg.html <http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-latest-error-msg.html>), and ndb_mgm_get_latest_error_desc()
(http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-lates
t-error-desc.html <http://dev.mysql.com/doc/ndbapi/en/mgm-ndb-mgm-get-latest-error-desc.html>) each failed when used with a NULL
handle. You should note that, although these functions
are now null-safe, values returned in this case are
arbitrary and not meaningful. (Bug #78130, Bug #21651706)
* To be continued in part 2....