MySQL Cluster Change History

MySQL Cluster-4.1.7, (not released yet)

Functionality added or changed:

  • Optimization 1: Improved performance on index scans. Measured 30% performance increase on query which do large amounts of index scans.

  • Optimization 2: Improved performance on primary key lookups. Around double performance for autocommitted primary key lookups.

  • Optimization 3: Improved performance when using blobs by avoiding usage of exclusive locks for blobs.

Bugs fixed:

  • A few bugs fixed.

MySQL Cluster-4.1.6, 10 Oct 2004

Functionality added or changed:

  • Limited character set support for storage engine NDBCLUSTER:

    Char setCollation
    big5big5_chinese_ci
     big5_bin
    binarybinary
    euckreuckr_korean_ci
     euckr_bin
    gb2312gb2312_chinese_ci
     gb2312_bin
    gbkgbk_chinese_ci
     gbk_bin
    latin1latin1_swedish_ci
     latin1_bin
    sjissjis_japanese_ci
     sjis_bin
    tis620tis620_bin
    ucs2ucs2_general_ci
     ucs2_bin
    ujisujis_japanese_ci
     ujis_bin
    utf8utf8_general_ci
     utf8_bin
  • The SCI Transporter has been brought up-to-date with all changes and now works and has been documented as well.

  • Optimizations when several clients to a MySQL Server access ndb tables.

  • Added more checks and warnings for erroneous and unappropriate cluster configurations.

  • SHOW TABLES now directly shows ndb tables created on a different mysql server, i.e. without a prior table access.

  • Enhanced support for starting MySQL Server independently of ndbd and ndb_mgmd.

Bugs fixed:

  • Quite a few bugs fixed.

MySQL Cluster-4.1.5, 16 Sep 2004

Functionality added or changed:

  • Many queries in MySQL Cluster are executed as range scans or full table scans. All queries that don't use a unique hash index or the primary hash index will use this access method. In a distributed system it is crucial that batching is properly performed.

    In previous version the batch size was fixed to 16 per storage node. In this version it is configurable per MySQL Server. So for queries using lots of large scans it is appropriate to set this parameter rather large and for queries using lots of small scans only fetching a small amount of records it is appropriate to set it low.

    The performance of queries can easily change as much as 40% based on how this variable is set.

    In future versions more logic will be made to assess the batch size on per query basis. Thus the semantics of this new configuration variable ScanBatchSize is likely to change.

  • The fixed size overhead of the ndbd process was greatly decreased. Also overhead per operation record was greatly decreased and also overhead per table and index was greatly decreased.

    A number of new configuration variables was introduced to be able to configure more buffers in the system. Configuration variables to specify the number of tables, unique hash indexes and ordered indexes was introduced as well.

    New configuration variables: MaxNoOfOrderedIndexes, MaxNoOfUniqueHashIndexes

    Configuration variables no longer used: MaxNoOfIndexes (split into the two above).

  • In previous versions ALTER TABLE, TRUNCATE TABLE, and LOAD DATA were performed as one big transaction. In this version, all those statements will be automatically separated into a number of transactions.

    This removes the limitation that one could not change very large tables due to the MaxNoOfConcurrentOperations parameter.

  • The online backup feature of MySQL Cluster now also backs up the indexes such that the restore ensures that both data and indexes are restored.

  • In previous versions it was not possible to use NULL in indexes. This is now possible in all indexes.

  • Much work has been put onto making AUTO_INCREMENT features work as for other table handlers. Autoincrements as a partial key is still only supported by MyISAM.

  • In previous version,s mysqld would crash if the cluster wasn't started and the --ndbcluster option was used. Now mysqld will handle cluster crashes and not started without crashing.

  • The -i option for initial startup has been removed from ndbd. Initial startup still can be specified by using the --initial option. The reason is to ensure that it is clearer what takes place when using the --initial option. This option completely removes all data from the disk and should only be used at initial start, in certain software upgrade cases, and in some cases when node restarts don't work as a workaround.

  • The management client (ndb_mgm) now has more commands and more information is printed in some commands such as show.

  • In previous versions, the files were called ndb_0.. when it wasn't possible to allocate a node ID when starting the node. To ensure that files are not so easily overwritten, these files are now named ndb_pid.., where pid is the process ID assigned by the OS.

  • The default parameters have changed for ndb_mgmd and ndbd. Yn particular, they are now started as daemons by default. The -n option was removed since it could confusion as to whether its meaning is nostart or nodaemon.

  • In the configuration file, you can now use [NDBD] as an alias for [DB], [MYSQLD] as an alias for [API], and [NDB_MGMD] as an alias for [MGM].

  • Many more checks of the consistency of the configuration have been introduced to provide quicker feedback on configuration errors.

  • In the connect string, it is now possible to use both ‘;’ and ‘,’ as the separator between entries. So "nodeid=2,host=localhost:2200" is equivalent to "nodeid=2;host=localhost:2200".

    In the configuration, it is possible to use ‘:’ or ‘=’ as the assignment symbol. Thus MaxNoOfOrderedIndexes : 128 and MaxNoOfOrderedIndexes = 128 are equivalent.

  • The configuration variable names are now case insensitive so MaxNoOfOrderedIndexes: 128 is equivalent to MAXNOOFORDEREDINDEXES = 128.

  • It is possible now to set the backup directory separately from the FileSystemPath by using the BackupDir config variable.

    Log files and trace files can now be put in any directory by setting the DataDir configuration variable.

    FileSystemPath is no longer mandatory and defaults to DataDir.

  • It is now supported to perform queries involving tables from different databases in MySQL.

  • It is now possible to update the primary key.

  • The performance of the ordered index has been greatly improved, particularly the maintenance of the index at updates, inserts and deletes.

Bugs fixed:

  • Quite a few bugs fixed.

MySQL Cluster-4.1.4, 31 Aug 2004

Functionality added or changed:

  • The names of the log files and trace files created by the ndbd and ndb_mgmd processes have changed.

  • Support for the many BLOB data types was introduced in this version.

Bugs fixed:

  • Quite a few bugs were fixed in the 4.1.4 release.

MySQL Cluster-5.0.1, 27 Jul 2004

Functionality added or changed:

  • This was the first MySQL Cluster release in 5.0. Actually almost all attention was on getting 4.1 stable so it is not recommended to use MySQL 5.0.1 for MySQL Cluster usage.

Bugs fixed:

MySQL Cluster-4.1.3, 28 Jun 2004

Functionality added or changed:

  • This was the first MySQL Cluster release so all the functionality was new.

Bugs fixed:

  • Various bugs fixed in the development process leading up to 4.1.3.