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

Что такое D (долговечность) в принципах ACID

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

Пример с SQL-транзакцией:

sql
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
COMMIT;  # Только после записи на диск

В Python (с SQLite):

python
import sqlite3

conn = sqlite3.connect('bank.db')
conn.execute("PRAGMA journal_mode=WAL")  # Режим журналирования для долговечности
cursor = conn.cursor()

try:
    cursor.execute("BEGIN")
    cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
    cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2")
    conn.commit()  # Фиксация с гарантией записи
except:
    conn.rollback()

Реализуется через write-ahead logging (WAL), fsync() или аналогичные механизмы.

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

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

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

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