Reducing Deadlocks in Aurora MySQL by Offloading Reads
A company runs an Amazon Aurora MySQL database cluster with a primary instance and two Aurora Replicas. The application is experiencing occasional deadlocks on the primary instance during peak hours. The deadlocks cause transaction rollbacks that impact customer experience. Which design change should the company implement to minimize deadlocks?
Quick Answer
The correct choice is to enable Aurora Auto Scaling for read replicas and offload read-only queries to replicas. This works because deadlocks in Aurora MySQL typically arise from read-write contention on the primary instance, where concurrent transactions compete for the same row or table locks. By routing read traffic to Aurora Replicas, you reduce the number of overlapping transactions on the primary, directly lowering the probability of lock conflicts and transaction rollbacks. On the AWS Certified Database Specialty DBS-C01 exam, this scenario tests your understanding of how Aurora’s shared storage architecture allows replicas to serve reads without blocking writes on the primary—a key differentiator from traditional MySQL replication. A common trap is assuming you need to increase the primary instance size or change isolation levels, but offloading reads is the targeted, scalable solution. Memory tip: “Reads off the primary, deadlocks on the run.”
⚠ Common exam trap
Test-takers frequently assume increasing instance size (Option D) is the universal fix for performance issues, but deadlocks are a concurrency control problem, not a capacity problem, and scaling up can actually worsen contention by allowing more simultaneous transactions.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Enable Aurora Auto Scaling for read replicas and offload read-only queries to replicas.
Offloading read-only queries to Aurora Replicas reduces the volume of read-write contention on the primary instance. Deadlocks often arise when concurrent transactions compete for the same resources; by directing read traffic to replicas, the primary handles fewer overlapping transactions, lowering the probability of lock conflicts. Aurora Replicas share the same underlying storage volume and serve read traffic without blocking writes on the primary, making this a targeted solution for deadlock reduction.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Enable Aurora Auto Scaling for read replicas and offload read-only queries to replicas.
Why this is correct
Reducing read load on the primary instance decreases lock contention and the likelihood of deadlocks.
- ✗
Set the transaction isolation level to READ UNCOMMITTED to avoid locks.
Why it's wrong here
READ UNCOMMITTED is not supported in Aurora MySQL and would cause dirty reads, not recommended for deadlock prevention.
- ✗
Configure Multi-AZ deployment to automatically failover during deadlocks.
Why it's wrong here
Multi-AZ is already inherent in Aurora; failover does not prevent deadlocks.
- ✗
Increase the DB instance class size to handle more concurrent transactions.
Why it's wrong here
While larger instances can handle more load, deadlocks are often due to locking order or contention, not just capacity.
Go deeper
Related to this question
About these practice questions
One of 1,663 original DBS-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more way this is tested on DBS-C01
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. A company is running an Amazon Aurora MySQL-compatible edition DB cluster. The application reports that a recent schema change caused a significant increase in the number of deadlocks. Which parameter should the DBA check and possibly adjust to reduce deadlocks?
easy- A.innodb_lock_wait_timeout
- B.autocommit
- C.max_connections
- ✓ D.transaction_isolation
Why D: Adjusting the transaction isolation level can reduce deadlocks by decreasing the locking overhead. For example, using READ COMMITTED instead of REPEATABLE READ reduces the use of gap locks, which are a common source of deadlocks. Option A, innodb_lock_wait_timeout, determines how long a transaction waits for a lock before timing out; it does not prevent deadlocks but rather handles lock waits. Option B, autocommit, affects when transactions are committed but does not directly impact deadlock occurrence. Option C, max_connections, limits concurrent connections, which can reduce overall contention but is not a direct deadlock reduction parameter.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DBS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DBS-C01 exam.