2021.01.26

MySQL

MySQL NDB Cluster 7.6.17 GA版(リリース日:2021年1月19日)

主な変更点

■ 非推奨と削除関連

● NDBクライアントプログラム:このリリース以降、MySQL NDB Clusterの自動インストーラ(ndb_setup.py)は、NDB Clusterのバイナリおよびソースディストリビューションから削除され、サポートされなくなりました。(バグ #32084831)

 参照:バグ #31888835。

● ndbmemcache:NDB Clusterの以前のリリースで非推奨であったndbmemcacheは、NDB Clusterから削除され、サポートされなくなりました。(バグ #32106576)

■ バグ修正

● NDBレプリケーション:RESET SLAVE ALLの発行後、NDBはレプリカが再起動したことを検出できませんでした。(バグ #31515760)

● インデックスアクセス方式で(ファイルソートなしで)ORDER BYを使用して、プッシュダウン結合からソートされた結果を取得している時に、SQLノードが予期せず終了することがありました。(バグ #32203548)

● REDOログの初期化のログには、ログパーツ番号ではなくログパーツインデックスが表示されました。(バグ #32200635)

● 拡張信号メモリを一時ストレージとして使用したため、信号データが上書きされました(および、失われました)。現在、このような場合、拡張信号メモリはこの方法では使用されません。(バグ #32195561)

● インデックス統計でサポートされているインデックスキーの最大サイズ(3056バイト)を使用すると、データノードでバッファの問題が発生しました。(バグ #32094904)

 参照:バグ #25038373。

● REDOログレコードの書き込みと同様に、グローバルチェックポイントレコードの書き込みに現在使用されているファイルがいっぱいになると、書き込みは次のファイルに切り替わります。この切り替えは、新しいファイルが実際にレコードを受信する準備ができるまで発生しないはずですが、これが当てはまることを確認するためのチェックは行われませんでした。これにより、ndb_restoreを使用してバックアップからデータを復元する予定外のデータノードシャットダウンが発生する可能性がありました。(バグ #31585833)

● ndb_restoreは、blob値を削除したバックアップログの再生中に、断続的なエラーに遭遇しました。これは、blobの1つ以上の値を含むメインテーブル行が削除された時に、blobパーツが削除されたことが原因でした。これは、blobの削除に非同期APIを使用するようにndb_restoreを変更することで修正されています。これは、blobのメインテーブルの行が削除された時にblobパーツの削除をトリガーしないため、メインテーブルのログ削除イベントはメインテーブルから行のみを削除します。(バグ #31546136)

● テーブル作成スキーマトランザクションが準備されると、テーブルはTS_CREATING状態になり、スキーマトランザクションがDBDIHブロックでコミットされると、TS_ACTIVE状態に変更されます。スキーマトランザクションのコミット中にDBDIHコーディネーターとして機能するノードに障害が発生した場合、別のノードがコーディネーターの引き継ぎを開始します。このノード障害を処理する時は、次のアクションが実行されます。

 ・DBDICTは、テーブル作成スキーマトランザクションをロールフォワードしてコミットします。その結果、テーブルはTS_ACTIVE状態に変更されます。
 ・DBDIHは、障害が発生したノード上のアクティブなテーブルレプリカを、格納されているフラグメントレプリカのリストから別のリストに移動することにより、障害が発生したノードをテーブルから削除し始めます。

 これらのアクションは非同期で何度も実行され、インターリーブすると競合状態が発生する可能性があります。その結果、障害が発生したノードのレプリカが存在するレプリカリストは非決定的になり、リカバリ中のノード(つまり、新しいコーディネーター)と他のDIH参加ノードの間で異なる場合があります。この違いは、他の参加ノードでの障害発生ノードのリカバリ中に、障害発生ノードのレプリカがどのリストにあるかを知るための要件に違反していました。

 これを修正するために、アクティブなテーブルレプリカの移動は、TS_ACTIVE状態のテーブルだけでなく、TS_CREATING(準備済み)状態のテーブルもカバーするようになりました。これは、プリペアドスキーマトランザクションが常にロールフォワードされるためです。

 さらに、中止されているテーブル作成スキーマトランザクションの状態がTS_CREATINGまたはTS_IDLEからTS_DROPPINGに変更され、そこでの競合状態が回避されるようになりました。(バグ #30521812)

MySQL NDB Cluster 7.6.17リリースノート(MySQLウェブサイト): https://dev.mysql.com/doc/relnotes/mysql-cluster/7.6/en/news-7-6-17.html

MySQL Editions

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

MySQL Editionsの詳細