主な変更点
■ バグ修正
・NDBディスクデータ: ログファイルグループは18を超えるUNDOログがあると、クラスタを再起動できませんでした。 (Bug #251155785) 参照:Bug #28922609。 ・NDBレプリケーション: マスター上での書き込み(同じプライマリーキーに属しているBLOB列の値に影響する複数の変更が 同じエポックの一部であるような方法で行われた)がスレーブにレプリケートされた時、 NDB$BLOB_id_partテーブルの制約違反によりエラー1022が発生しました。(Bug #28746560) ・管理サーバーのみを起動し、データノードを起動しなかった場合、RESTART ALLがタイムアウトし、 最終的に失敗しました。これは、再起動の一環として、ndb_mgmdがタイマーを開始し、STOP_REQ信号を すべてのデータノードに送信し、それらのすべてがノード状態SL_CMVMIに達するのを待つためです。 この問題は、STOP_REQ信号が送信されなかったために発生し、その結果データノードがSL_CMVMIに 到達しませんでした。これは、タイマーが常に期限切れになり、再起動が失敗することを意味して いました。(Bug#28728485、Bug#28698831) 参照:Bug #11757421。 ・特定の状況において、最初の再起動中にノードがハングすることがありました。(Bug #28698831) 参照:Bug #27622643。 ・BLOB列を含むテーブルが削除されてから、異なる数のBLOB列で再作成されると、対応するイベントの 予想されるクリーンアップが実行されない時の通信エラーを含む特定のエラー状況で、テーブル変更を 監視するイベント定義が矛盾状態になる可能性があります。特に、新しいバージョンのテーブルが 元のテーブルよりも多くのBLOB列を持つ時に、一部のイベントが失われる可能性があります。 (Bug #27072756) ・4つ以上のデータノードを含むクラスタを非常に高い負荷で実行している時、データノードが エラー899 Rowid already allocatedで失敗することがありました。(Bug #25960230) ・起動時に、データノードはメタデータをコピーし、ローカルチェックポイントはメタデータを更新します。 競合を避けるために、メタデータのコピー中は進行中のLCPアクティビティは一時停止されます。 あるノードでローカルチェックポイントが一時停止され、再起動中の別のノードがこのノードの完全な LCPをチェックした時に、問題が発生しました。このチェックは、メタデータのコピーが完了する前に 実際にLCPを完了させ、一時停止を途中で終了させました。現在、そのような場合、LCP完了チェックは、 メタデータのコピーが終了し、一時停止が開始されたLCP内で予想どおりに終了するまで、一時停止した LCPの完了を待機します。(Bug #24827685) ・クラスターからのmysqldの非同期切断により、NDB APIトランザクションを開始しようとする後続の 試みが失敗しました。これが大量な削除操作中に発生した場合、SQLレイヤーはHA::end_bulk_delete() を呼び出しました。この実装はha_ndbclusterによる実装で、トランザクションが開始されたと見なし、 そうでない場合は失敗する可能性があります。この問題は、このメソッドによって使用される トランザクションポインタがそれを参照する前に設定されていることを確認することで解決されます。 (Bug #20116393)
MySQL NDB Cluster 7.4.23リリースノート(MySQLウェブサイト):
https://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/news-7-4-23.html