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

Python Middle Aston
Что такое D (долговечность) в принципах ACID
Ответы
D (Durability) в ACID гарантирует, что после успешного завершения транзакции изменения останутся в системе даже при сбоях (например, отключении питания). Это достигается через механизмы записи в постоянное хранилище (диск) до подтверждения транзакции. Пример с 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): ``` 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() или аналогичные механизмы.