追加または変更された機能
- 重要な変更: データノードファイルまたはディレクトリの削除がファイルが存在しない (ENOENT) エラーで失敗した場合、削除が成功したものとして扱われるようになりました。
- ndbinfo情報データベース: ndbinfo情報データベースのtransporter_detailsテーブルにtype列を追加しました。この列には、トランスポータによって使用される接続のタイプ(TCPまたはSHMのいずれか)が表示されます。
- NDBクライアントプログラム: ndb_sign_keysに--CA-daysオプションを追加し、証明書の有効期間を指定できるようにしました。(バグ #36549567)
- NDBクライアントプログラム: 起動時に、ndbdはデータノードログに次のような警告を生成するようになりました:
2024-05-28 13:32:16 [ndbd] WARNING -- Running ndbd with a single thread of signal execution. For multi-threaded signal execution run the ndbmtd binary. (バグ #36326896)
バグ修正
- NDB Cluster API: 次のNDB APIメソッドをconstとして使用せずに使用することは可能でしたが、この代替使用法は長い間非推奨でした(実際には文書化されていませんでした):
- Dictionary::listEvents()
- Dictionary::listIndexes()
- Dictionary::listObjects()
- NdbOperation::getNdbErrorLine()
現在、これらのメソッドはそれぞれ常にconstとして呼び出す必要があります。(バグ #36165876)
- NDBクライアントプログラム: ndb_redo_log_readerは暗号化されたファイルからデータを読み取ることができませんでした。(バグ #36313482)
- NDBクライアントプログラム: 未使用のページ、全てゼロバイト、または部分的にしか使用されていないページ(通常はページヘッダーのみで構成されるページ)に到達した時に、ndb_redo_log_readerはRecord type = 0 not implementで終了しました。(バグ #36313259)
- NDBクライアントプログラム: ndb_restoreは、親キーの列と順序が異なる列を持つ外部キーを復元しませんでした。
(バグ #114147、バグ #36345882) - /util/NodeCertificate.cppのメモリリークを削除しました。(バグ #36537931)
- src/ndbapi/NdbDictionaryImpl.cppからメモリリークを削除しました。(バグ #36532102)
- lld を使用してNDBをビルドする際、libndbclient.soをリンクしようとした時に、エラーメッセージ ld.lld: error: version script assignment of 'local' to symbol 'my_init' failed: symbol not definedが表示され、ビルドが途中で終了しました。(バグ #36431274)
- サポートされていないOpenSSL 1.0を使用するシステムでは、TLSが明確に失敗しませんでした。このような場合、NDB ClusterでTLSを使用するためにはOpenSSL 1.1以降にアップグレードする必要があることを通知する明確なエラーメッセージがユーザーに表示されます。 (バグ #36426461)
- 同梱のlibxml2ライブラリがバージョン 2.9.13に更新されました。(バグ #36417013)
- シングルスレッドデータノード(ndbd)の実行時にAutomaticThreadConfigとNumCPUsを設定すると、回復不能なエラーが発生する場合がありました。現在、ndbdはこれらのパラメータの設定を無視します。これらのパラメータは、マルチスレッドデータノード(ndbmtd)にのみ適用されることを意図しています。(バグ #36388981)
- TCテイクオーバーの一部として発生するLQH操作プールの処理では、基盤となる物理プール(静的または動的)のいずれかの最後の要素がスキップされました。この要素が使用中の場合、障害が発生したノードのトランザクションコーディネータに属するトランザクションの操作レコードを保持していたため、それは返されず、不完全なテイクオーバーが発生し、操作が残されることがありました。このような操作は、障害が発生したノードが回復するために使用する後続のトランザクションとコピープロセス(CopyFrag)に干渉していました。
この問題を修正するために、TCテイクオーバー中にLQH操作レコードを反復処理する際に最終レコードをスキップしないようにしました。(バグ #36363119) - libsshライブラリがバージョン 0.10.4に更新されました。(バグ #36135621)
- 分散認識が使用されていない場合、クラスターはトランザクションコーディネーターと同じデータノードを繰り返し選択する傾向がありました。(バグ #35840020、バグ #36554026)
- 場合によっては、管理ノードが再起動されたデータノードとSQLノードにノードIDを割り当てることができませんでした。(バグ #35658072)
- 場合によっては、明示的なプライマリキーのないNDBテーブルでオンラインインデックス追加操作を実行しようとした時に、結果のエラーメッセージでは問題の性質が明確に示されませんでした。 (バグ #30766579)
参考: バグ #36382071も参照してください。
全ての変更点やバグ修正については、以下のページをご覧ください。
MySQL NDB Cluster 8.4.1 リリースノート(MySQLウェブサイト):
https://dev.mysql.com/doc/relnotes/mysql-cluster/8.4/en/news-8-4-1.html
MySQL Editions
MySQLのサブスクリプションは、24時間365日体制でお客様をサポートいたします。さらに MySQL Enterprise Edition では、データベース管理者支援ツール MySQL Enterprise Monitor やバックアップツール MySQL Enterprise Backup をご利用いただけます。