2018.11.13

MySQL

MySQL NDB Cluster 7.4.22 GA版(リリース日:2018年10月23日)

主な変更点

■ バグ修正

・MySQL NDB ClusterJ:
 BLOBまたはTEXTフィールドを含むテーブルが存在しないレコードに対してClusterJを使用して
 問い合わせされていた場合、例外("The method is not valid in current blob state"
 (このメソッドは現在のBLOB状態では有効ではありません))が投げられました。(Bug#28536926)

・MySQL NDB ClusterJ:
 BLOBまたはTEXTフィールドを含むテーブルでClusterJを使用してフルテーブルスキャンが
 実行されると、NullPointerExceptionが投げられました。これは、適切なオブジェクトの初期化が
 省略されたためで、現在はこの修正によって追加されています。(Bug#28199372、Bug#91242)

・SUMAカーネルブロックがSUB_STOP_REQ信号を受信すると、信号を実行し、次にSUB_STOP_CONFを
 使用して応答します。(この応答がAPIに送り返された後、APIはより多くのSUB_STOP_REQ信号を
 送信するためにオープンになります。)SUB_STOP_CONFを送信した後、SUMAはサブスクライバが
 存在しない場合にサブスクリプションを削除します。これには、複数のDROP_TRIG_IMPL_REQ
 メッセージをDBTUPに送信することが含まれます。LocalProxyは、最大21個の要求を並列に
 処理できます。これ以上のものは、短時間キューに入れられます。DROP_TRIG_IMPL_REQの実行が
 遅延した場合、キューが過負荷になる可能性があり、短時間キューのエラーと同時にデータノードの
 シャットダウンが発生しました。

 この問題は、DROP_TRIG_IMPL_REQ信号のキューアップではなく、DBTUPがすでに
 DROP_TRIG_IMPL_REQ信号をフルキャパシティで処理している場合に、
 SUB_STOP_REQ信号の実行を遅らせることで解決されます。(Bug#26574003)

・遅延トリガがたくさんあると、ジョブバッファが使い果たされることがあります。これは、
 単一のトリガが多数の操作を実行できる(例えば、外部キーの親トリガは一致する子テーブルの
 複数の行に対して操作を実行する可能性がある)という事実と、基本テーブルの行の操作は
 複数のトリガを実行できるという事実によって発生する可能性があります。そのような場合、
 行の操作はバッチで実行されます。多数のトリガの実行が遅延された場合(すべての遅延トリガが
 プレコミットで実行されることを意味する)、その結果非常に多くのトリガ操作が同時に
 実行されると、データノードのジョブバッファまたは送信バッファが使い果たされる可能性が
 あります。それは、ノードの障害につながります。

 この問題は、同時トリガ操作の数と、トランザクションごとの未処理のトリガファイヤーリクエストの
 数を制限することによって修正されています。

 即時トリガの場合、同時トリガ操作を制限すると、実行待ちのトリガ数が増加する可能性があります。
 その場合、トリガレコードプールが使い果たされ、
 Too many concurrently fired triggers (increase MaxNoOfFiredTriggers)というエラーが
 発生します。これは、MaxNoOfFiredTriggersを増やしたり、ユーザートランザクションの
 バッチサイズを減らしたり、その両方を行うことで回避できます。(Bug#22529864)

 参照:関連項目:Bug#18229003、Bug#27310330

MySQL NDB Cluster 7.4.22リリースノート(MySQLウェブサイト): https://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/mysql-cluster-news-7-4-22.html

MySQL Editions

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

MySQL Editionsの詳細