Изменения

Перейти к: навигация, поиск

Транзакции в распределённых системах

105 байт добавлено, 00:02, 4 июня 2019
Нет описания правки
[[Категория: Параллельное программирование]]
== Зачем ==
# '''A'''tomicity (атомарность) — транзакция либо полностью '''применила''' все свои изменения, либо полностью '''откатилась''' (отменилась)
# '''C'''onsitency (согласованность) — в конце транзакции система находится в согласованном состоянии
# '''I'''solation (изолированность) — параллельные транзакции не должны влиять друг на друга (например, при помощи phantom reads и non-repeatable reads), а должны выполняться как будто последовательно
# '''D'''urability (надёжность) — завершённые (commited) транзакции сохраняются даже в случае сбоев и перезапуска системы
Блокировки у нас локальны и берутся просто, но нам надо, чтобы все участники атомарно пришли к решению завершать транзакцию.
Можно использовать алгоритмы распределённого консенсуса, но они сложные.
Классическое решение в базах данных — [[2 Phase LockingCommit|алгоритм двухфазного коммита]] (не имеет никакого отношения к двухфазной блокировке).
292
правки

Навигация