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

Как работает Durability в ACID

Durability (долговечность) в ACID гарантирует, что после успешного завершения транзакции (commit) изменения сохраняются в постоянном хранилище, даже при сбое системы.

Как достигается:

  1. Write-Ahead Logging (WAL) – изменения сначала записываются в журнал транзакций (лог), а потом в основное хранилище.
  2. Буферизация и сброс на диск – СУБД периодически сбрасывает (flush) данные из буфера в постоянное хранилище.

Пример (JDBC с autocommit=false):

java
Connection conn = DriverManager.getConnection(url, user, pass);
conn.setAutoCommit(false); // отключаем autocommit
try {
    Statement stmt = conn.createStatement();
    stmt.executeUpdate("UPDATE accounts SET balance = 1000 WHERE id = 1");
    conn.commit(); // изменения гарантированно сохраняются
} catch (SQLException e) {
    conn.rollback(); // откат при ошибке
}

Если после commit() произойдет сбой, изменения останутся в БД благодаря WAL.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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