Handling Lockwait Timeout Errors encountered on NDB Cluster
Last updated on JANUARY 18, 2018
Applies to:MySQL Cluster - Version 6.3 and later
Information in this document applies to any platform.
Any transactional DBMS under high concurrency has the potential to hit Lock wait timeout errors. These errors are temporary in nature, and as suggested by MySQL, when this error is hit - retrying the transaction from the application should allow the transaction to proceed.
Only when many of these Lock wait timeout errors occur, or when they occur alongside significant performance drops, does action and investigation beyond retrying the transaction need to occur.
The issue can be reproduced with the following conditions:
- Simulate a heavy load on the data nodes using either of the following:
- Increase Disk I/O, or
- Set the DiskCheckpointSpeed option to a very low value.
If Lock wait timeouts occur frequently or with performance drops in general, user applications must retry transactions as they may not always complete before TransactionDeadlockDetectionTimeout. User applications can also experience significant slow down in query processing and response time due to load.
What normally triggers Lock wait timeouts is one of the following:
- Significant increase in general transactional load, either gradual or peak period load.
- Decrease in NDBD Disk IO Capacity (Degraded RAID)
- New version of User application that hold locks open for significant amounts of time by either using:
- Long running transactions.
- Transactions that involve large amounts of rows.
- Applications that use BLOB columns in highly concurrent environments.
- Configuration changes to NDB Cluster that prohibits it from processing load quickly enough.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
Million Knowledge Articles and hundreds of Community platforms