2022.02.01

MySQL

MySQL NDB Cluster 7.5.25(5.7.37-ndb-7.5.25)GA版(リリース日:2022年1月19日)

主な変更点

■ バグ修正

● 重要な変更:非推奨のデータノードオプション --connect-delayは削除されました。このオプションは、--connect-retry-delayの同義語でしたが、全ての場合に適用されるわけではありませんでした。この問題は修正され、このオプションは正しく機能するようになりました。さらに、このオプションの短縮形 -rは非推奨になり、将来のリリースで削除される予定です。(バグ #31565810)
 参照:バグ #33362935。
● NDB Cluster API:DIVERIFYREQシグナルを非同期で使用することはできなくなりました。(バグ #33161562)
● batched_key_accessオプティマイザスイッチが有効になっている場合、NDBテーブルでの同じプッシュ結合が誤った結果を返しました。
 この問題は次のように発生しました。バッチキーアクセス(BKA)アルゴリズムを使用して2つのテーブルを結合すると、バッチキーのセットがテーブルの1つから最初に収集されます。マルチレンジ読み取り(MRR)操作は、他に対して構築されます。境界(範囲)のセットは、バッチキーを使用して各境界を構築することにより、MRRで指定されます。
 結果の行が返される時、返された各行がどの範囲から来ているかを識別する必要があります。これは、BKA結合を実行する外部テーブル行を識別するために使用されます。問題のMRR操作がプッシュされた結合操作のルートである場合、SPJはこの識別子(RANGE_NO)を取得できませんでした。プッシュされた結合クエリからそのようなRANGE_NOを返すために欠落しているSPJ API機能を実装することにより、これを修正します。(バグ #334716308)
● オンライン再編成中のスキャンログ出力の待機タイミングが正しく実行されませんでした。この修正の一環として、定期的な更新を提供するために、無期限にスケーリングするのではなく、10秒ごとに1つのメッセージを生成するようにタイミングを変更します。(バグ #35523977)
● ndbdとndbmtdに欠測値チェックを追加しました。(バグ #33661024)
● オンラインテーブル再編成は、テーブルのフラグメントの数を増やし、それらの間で行を移動します。これは、次の手順で実行されます。
  a. 行を新しいフラグメントにコピーします
  b. ディストリビューション情報(ハッシュマップ数とフラグメントの総数)を更新します
  c. 古いディストリビューションを使用したスキャンアクティビティが停止するのを待ちます
  d. 既存のパーティションから移動した行を削除します
  e. 古いハッシュマップへの参照を削除します
  f. ステップ2以降に開始されたスキャンアクティビティが停止するのを待ちます
 カウンティングエラーのため、ステップ6で再編成がハングする可能性がありました。スキャン参照カウントはデクリメントされなかったため、期待どおりにゼロに達することはありませんでした。(バグ #33523991)
● MySQLオプティマイザは、handler::read_cost()とCost_model::page_read_cost()の2つの異なるメソッドを使用して、異なるアクセスメソッドのコストを見積もりますが、これらによって返されるコスト値は必ずしも比較可能ではありませんでした。場合によっては、これにより、間違ったインデックスが選択され、影響を受けるクエリの実行時間が長くなりました。NDBのこれを修正するためには、オプティマイザのpage_read_cost()メソッドをNDBCLUSTERに固有のメソッドでオーバーライドします。この問題に取り組んでいる時に、NDBハンドラーがread_cost()で使用されるread_time()メソッドを実装していないこともわかりました。このメソッドはha_ndbclusterによって実装されるようになりました。そのため、オプティマイザーは、順序付けされたインデックス(範囲スキャン)ではなく一意キーを使用する時に、NDBのコスト差を適切に考慮できるようになりました。(バグ #33317872)
● 場合によって、イベントのカテゴリが適切に検出されませんでした。(バグ #33304814)
● DBDICTは、テーブル名のチェックを常に正しく実行するとは限りませんでした。(バグ #33161548)
● ndbdおよびndbmtdにいくつかの欠落しているIDおよびその他の値のチェックを追加しました。(バグ #33161486、バグ #33162047)
● SET_LOGLEVELORDシグナルは、常に正しく処理されるとは限りませんでした。(バグ #33161246)
● DUMP 11001は、常に全てのその引数を正しく処理するとは限りませんでした。(バグ #33157513)
● ファイル名は常に正しく検証されるとは限りませんでした。(バグ #33157475)
● ndbdおよびndbmtdにいくつかの欠落しているIDおよびその他の値のチェックを追加しました。(バグ #32983700、バグ #32893708、バグ #32957478、バグ #32983256、バグ #32983339、バグ #32983489、バグ #32983517、バグ #33157527、バグ #33157531、バグ #33161271、バグ #33161298、バグ #33161314、Bug #33161331、バグ #33161372、バグ #33161462、バグ #33161511、バグ #33161519、バグ #33161537、バグ #33161570、バグ #33162059、バグ #33162065、バグ #33162074、バグ #33162082、バグ #33162092、バグ #33162098、バグ #33304819)
● 管理サーバーは、間違ったサイズのイベントを常に正しく処理するとは限りませんでした。(バグ #32957547)
● 場合によっては、バックアップの復元中にREDOログに問題が発生すると、データノードが計画外にシャットダウンすることがありました。これを修正するために、REDOログファイルが書き込みに使用できない場合、正しい待機コードと待機ログ部分をCONTINUEBシグナルに含めてから送信するようになりました。(バグ #32733659)
 参照:バグ #31585833。
● MySQL Enterprise MonitorがNDB Clusterのメモリ使用量を監視するために使用するクエリは、NDBテーブルの数が増えるにつれて、パフォーマンスが著しく低下しました。これを次のように修正します。
  ・バーチャルndbinfoテーブルの行数がMySQLオプティマイザで利用できるようになりました
  ・サイズ見積もりが全てのndbinfoテーブルに提供されるようになりました
 これらの改善を受けて、ndbinfoテーブルに対するクエリは著しく高速になるはずです。(バグ #28658625)
● NDBは、内部システムテーブルの作成およびドロップ関数からエラーを返す時に、保留中のスキーマトランザクションを閉じませんでした。

MySQL NDB Cluster 7.5.25リリースノート(MySQLウェブサイト): https://dev.mysql.com/doc/relnotes/mysql-cluster/7.5/en/news-7-5-25.html

MySQL Editions

MySQL EditionsMySQLのサブスクリプションは、24時間365日体制でお客様をサポートいたします。さらに MySQL Enterprise Edition では、データベース管理者支援ツール MySQL Enterprise Monitor やバックアップツール MySQL Enterprise Backup をご利用いただけます。

MySQL Editionsの詳細