My Oracle Support Banner

NDB Cluster上で発生するロックウェイトタイムアウトの対処法 (Doc ID 2450017.1)

Last updated on SEPTEMBER 27, 2018

適用範囲:

MySQL Cluster - バージョン 6.3 以降
この文書の内容はすべてのプラットフォームに適用されます。

現象

どのようなDBMSであっても、高い負荷においては、ロックウェイトタイムアウトが発生する可能性を秘めています。これらのエラーは本質的に一時的なものではありますが、MySQLサーバーからエラーメッセージによって提案されているように、このエラーが出た場合にはトランザクションを再実行することで処理を進める必要があります。

通常はリトライによって対応すれば十分であり、このエラーが頻発する場合や、エラーの発生に伴ってパフォーマンスが低下する場合のみ、さらに調査をする必要があります。

エラー例
-----------------------

 

再現手順
-----------------------

この問題は次の条件で再現させることができます。

  1. 以下のいずれかの方法で、データノードにおいて高負荷を発生させてください。
    • ディスクI/Oを増加。
    • DiskCheckpointSpeed オプションを非常に低い値に設定する。
  2. TimeBetweenEpochsTimeout=0 のオプションを設定。
  3. TransactionDeadlockDetectionTimeout の間に応答が返って来なくなるまで、データノードに対して負荷をかけてください。


ビジネスインパクト
-----------------------

もしロックウェイトタイムアウトが頻繁に起きたり、サーバーマシンのパフォーマンスの低下が生じることによって、TransactionDeadlockDetectionTimeout 以内に処理を完了できない場合、ユーザーアプリケーションはトランザクションをリトライする必要があります。また、ユーザーアプリケーションは、高負荷によってクエリの応答速度が低下する事象に見舞われるかも知れません。

変更点

通常、次に挙げた要因のいずれかによって、ロックウェイトタイムアウトが引き起こされます。

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
現象
変更点
原因
解決策

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.