Встречается на собеседованиях • сегодня

Что такое Dirty Write

Dirty Write возникает, когда одна транзакция изменяет данные, которые уже были изменены другой незавершенной транзакцией. Это нарушает изоляцию и может привести к потере изменений или неконсистентности данных.

Пример:

java
// Транзакция 1
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;

// Транзакция 2 (параллельно)
BEGIN;
UPDATE accounts SET balance = balance + 50 WHERE id = 1;
COMMIT; // Dirty Write - перезаписывает изменения Транзакции 1

// Транзакция 1
COMMIT; // В результате balance будет уменьшен на 100, а не на 50

text

Чтобы избежать Dirty Write, СУБД используют механизмы блокировок или MVCC. В JDBC можно установить уровень изоляции:
```java
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы