12 подписчиков
ACID (Atomicity, Consistency, Isolation, Durability) - это набор свойств транзакций, которые обеспечивают их целостность и надежность.
- Атомарность (Atomicity) означает, что либо вся транзакция выполняется полностью, либо ни одно из её изменений не сохраняется.
- Согласованность (Consistency) требует, чтобы транзакции оставляли базу данных в согласованном состоянии.
- Изоляция (Isolation) гарантирует, что параллельно выполняющиеся транзакции не влияют друг на друга.
- Надежность (Durability) предполагает, что после успешного завершения транзакцию невозможно отменить.
Например, операция по переводу денежных средств с одного счета на другой.
Атомарность позволяет совершить операцию только в том случае, когда есть возможность списать средства с одного счета, а также есть возможность зачислить средства на другой. Соответственно, если доступно одно из двух, операция не выполняется наполовину(с первого счета средства списались, на второй счет не зачислились или наоборот).
Согласованность позволяет при проведении транзакции из примера - не затронуть другие счета, не участвующие в этой операции, зачислить ровно столько средств, сколько списалось и тд.
Изоляция позволяет выполнить операцию корректно даже если куча народа пытается перевести на этот счет деньги. Предположим, изначально на счете 0₽, два клиента одновременно отправили деньги на этот счет(100₽ и 50₽). Всем очевидно, что должно получится 150₽. Если бы не было изоляции, то получилось бы так, что на счете стало бы 100₽ или 50₽, так как из-за одновременно выполняющихся транзакций, одна перезаписала бы другую.
Надежность позволяет гарантировать, что все пройдет гладко не смотря ни на что. Допустим, произошел внезапный сбой электричества или интернет соединения во время перевода средств, транзакция в любом случае должна отработать корректно.
#словодня и #быстростатья
1 минута
26 сентября 2024