2020.10.29

MySQL

MySQL NDB Cluster 7.5.20 GA版(リリース日:2020年10月20日)

主な変更点

■ 非推奨と削除関連

● NDB Cluster API:Node.jsのサポートはこのリリースで削除されました。

 Node.jsは、NDB Cluster 8.0でのみ、引き続きサポートされます。(バグ #31781948)

● NDBクライアントプログラム:このリリース以降、MySQL NDB Cluster Auto-Installer(ndb_setup.py)は非推奨になり、NDB Clusterの将来のバージョンで削除される可能性があります。(バグ #31888835)

● ndbmemcache:ndbmemcacheは、NDB Clusterのこのリリースで非推奨になり、次のリリースで削除される予定です。(バグ #31876970)

■ バグ修正

● パッケージング:NDB Clusterに含まれているDojoライブラリーがバージョン1.15.4にアップグレードされました。(バグ #31559518)

● NDB Cluster API:blobを使用してNDB APIメソッド呼び出しの無効なシーケンスを作成することが可能でした。これは、一部のメソッド呼び出しがBLOBパーツやその他の問題を処理するために暗黙的にトランザクション実行をインラインで引き起こしたためです。これにより、保留中のユーザー定義BLOB操作がまだある間に、BLOBに関連する操作を実行するメソッドを使用することが原因で、ユーザー定義操作が正しく処理されない可能性がありました。現在このような場合、NDBは新しいエラー 4558 Pending blob operations must be executed before this call を発生させます。(バグ #27772916)

● NodeGroup=65536を使用する設定ファイルでデータノードに遭遇した後、管理サーバーは、明示的なNodeGroup設定がないデータノードをノードグループに割り当てるのを停止しました。(バグ #31825181)

● QMGRが競合するNDBエンジンとMySQLサーバーのバージョン情報を返す場合があり、それは計画外の管理ノードのシャットダウンにつながる可能性がありました。(バグ #31471959)

● 復元プロセスの様々なフェーズで、ndb_restoreは一時的なエラーに対して再試行の様々な回数を使用し、再試行間で様々なスリープ時間を使用しました。これは、全ての復元フェーズで一貫した再試行回数とスリープ時間を実装することによって修正されています。(バグ #31372923)

● ファイルシステムがO_DIRECTで実行されていて、データファイルの書き込みがO_DIRECTの書き込みで使用される512バイトのブロックサイズと一致していない場合、バックアップはFsErrInvalidParametersでエラーになりました。データファイルの合計フラグメントサイズがO_DIRECTブロックサイズと一致しない場合、NDBは最後の書き込みを必要なサイズにパディングしますが、書き込むフラグメントがない場合、BACKUPはヘッダーとフッターのみをデータファイルに書き込みました。ヘッダーとフッターが512バイト未満であるため、O_DIRECT書き込みで問題が発生します。

 これは、データファイルを閉じる時にEMPTY_ENTRYを使用して、必要に応じて汎用フッターを512バイトにパディングすることで修正されます。(バグ #31180508)

■ バグ修正

● MySQL NDB ClusterJ:Date値がNDBクラスタから読み取られた時、ClusterJが誤った年の値を行から抽出することがありました。これは、UtilityクラスがDate値をアンパックする時に、年に関する必要以上のビットを誤って抽出したためです。このパッチはClusterJに必要なビットのみを抽出させます。 (Bug #30600320)

● MySQL NDB ClusterJ:クラスタのNdbOperation::AbortOptionタイプがAO_IgnoreOnErrorの値を持つ場合、読み取りエラーが発生すると、行が見つからなかったためにClusterJはそれを受け取り、例外の代わりにnullを返しました。これは、AO_IgnoreOnErrorを使用すると、execute()メソッドが各トランザクションの後に常に成功コードを返し、ClusterJが個々の操作のいずれかでエラーをチェックすることになっているためです。ただし、この場合、読み取り操作はClusterJによってチェックされませんでした。このパッチでは、クエリの実行後に読み取り操作のエラーがチェックされるため、読み取りエラーが報告されます。 (Bug #30076276)

● 署名付きの自動インクリメント列を復元する時、ndb_restoreはデータに含まれる最大値を決定する時に誤って負の値を処理しました。 (Bug #30928710)

● ノードID割り当てリクエストがNotMaster一時エラーで失敗した場合、ノードID割り当てはエラーの原因に関係なく常にすぐに再試行され、非常に高い率で再試行が実行されました。その影響は、ノードnnnのAllocノードIDの過剰な数の失敗したログメッセージ(1秒あたり約15,000メッセージ)として観察できます。 (Bug #30293495)

● NDBテーブルに明示的なプライマリキーがない場合、NdbReceiverBufferが小さすぎるサイズで割り当てられる可能性がありました。これは、データノードからNDBに送信される属性ビットマップに常にプライマリキーが含まれていることが原因です。このような場合に、非表示のプライマリキーに必要な追加のスペースが考慮されるようになりました。 (Bug #30183466)

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

MySQL Editions

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

MySQL Editionsの詳細