3 Comments

Your articles are 🤩

Expand full comment

Thank you so much for your kind words. Please don't forget to share with your friends. 😃

Expand full comment

The REPEATABLE READ isolation level can lead to deadlocks in two common scenarios:

Scenario 1:

• Transaction A reads a data item, then tries to write to it.

• Transaction B reads the same data item, then tries to write to it.

Here’s what happens:

1. Both transactions start by acquiring S-locks (shared locks) on the data item for their read operations.

2. When they try to write, both need to upgrade their S-locks to X-locks (exclusive locks).

3. Transaction A can’t upgrade because Transaction B is holding an S-lock, and Transaction B can’t upgrade because Transaction A is holding an S-lock.

4. Neither can proceed, causing a deadlock.

Scenario 2:

Similar to Scenario 1, but the deadlock arises because transactions read and then write to the same data item. The sequence of acquiring an S-lock for the read and then requesting an X-lock for the write creates contention.

To avoid these deadlocks:

1. Minimize read-before-write patterns in transactions.

2. Use X-locks directly if you know a write will follow the read.

3. Implement retry mechanisms to handle deadlocks when they occur.

Expand full comment