The application is timing out and you suspect lock contention in production. Walk through how you diagnose and fix it.
What the interviewer wants to hear
- Find blocked and blocking sessions using pg_locks / pg_blocking_pids or performance_schema
- Identify the root blocker, often an idle in transaction session or a DDL
- Decide whether to cancel or terminate it safely
- Check deadlock logs
- Prevent recurrence: timeouts, short transactions, consistent lock order, lock_timeout for DDL
Model answer
I look at pg_stat_activity together with pg_blocking_pids() in PostgreSQL, or performance_schema.data_lock_waits and the sys.innodb_lock_waits view in MySQL, to build the blocking tree. Usually there is one root blocker. Common culprits are a session that is idle in transaction holding row locks after an app bug, a long batch update, or an ALTER TABLE waiting for an exclusive lock, which then blocks every query behind it in the queue. If the root blocker is safe to stop, I cancel it with pg_cancel_backend or end it with pg_terminate_backend, after checking with the owning team. Then I prevent repeats: keep transactions short, set idle_in_transaction_session_timeout and statement_timeout, always use lock_timeout for DDL, update rows in a consistent order, and review the deadlock entries in the logs.
Can you answer it under time pressure?
Take a timed hard round and get scored on every answer.
More hard Database Administrator questions
- Design a high-availability setup for a critical PostgreSQL database with RPO near zero and RTO under one minute.
- Your single database is reaching its limits. How do you decide whether to shard, and how would you do it?
- How would you upgrade a large production PostgreSQL database to a new major version with minimal downtime?
- Someone ran DELETE without a WHERE clause on an important production table 20 minutes ago. What do you do?
- Design a disaster recovery plan for a critical database that must survive the loss of a whole cloud region.
- How would you migrate a 5 TB on-premises PostgreSQL database to a managed cloud service with less than 15 minutes of downtime?
- A critical 1 TB PostgreSQL table is 60 percent bloat and queries are slowing. How do you fix it without downtime and stop it coming back?
- The business expects traffic to grow ten times over the next 18 months. How do you plan database capacity?
- Your company must meet compliance rules (such as PCI DSS or GDPR) for a database holding personal and card data. What controls do you put in place?