Загрузка…
Загрузка…
Go · junior · сложность 2
ACID — четыре основных свойства транзакционных систем, которые гарантируют корректность данных даже при сбоях, параллелизме и высокой нагрузке: атомарность, согласованность, изоляция, долговечность.
Атомарность: транзакция либо выполняется полностью, либо не выполняется вообще.
Согласованность: после фиксации данные остаются действительными в соответствии с заданными значениями. правила и ограничения.
Изоляция. Параллельные транзакции не должны ненадлежащим образом влиять друг на друга.
Долговечность. Зафиксированные изменения сохраняются даже после завершения процесса или системы. failure.
журнал транзакций изменений + механизмы отката;
в случае ошибки все изменения транзакции будут отменены как whole.
PRIMARY KEY, UNIQUE, CHECK, FOREIGN KEY) и триггеры;— коммит возможен только в том случае, если инварианты не нарушены.
MVCC (Multi-Version Concurrency Control): читатели видят согласованные версии строки без грубой блокировки чтения;
поддержка уровней изоляции (Read Committed, Repeatable Read,
Serializable) с разным балансом производительности и строгости.
WAL (ведение журнала с упреждающей записью): перед фиксацией изменения сначала записываются в журнал;
после сбоя восстановление происходит по WAL, что сохраняет совершенное состояние.
В PostgreSQL ACID обеспечивается не «одной кнопкой», а комбинацией MVCC, WAL, менеджера транзакций, механизмов блокировок и ограничений. Именно это делает PostgreSQL надежной СУБД для критически важных транзакционных систем.
BEGIN;
UPDATE accounts
SET balance = balance - 100
WHERE id = 1;
UPDATE accounts
SET balance = balance + 100
WHERE id = 2;
COMMIT; -- або ROLLBACK при помилціACID — четыре основных свойства транзакционных систем, которые гарантируют корректность данных даже при сбоях, параллелизме и высокой нагрузке: атомарность, согласованность, изоляция, долговечность.