Для атомарной транзакции между поддерживающими её ресурсами используют распределённую транзакцию, часто с двухфазным commit и координатором. Saga — другой подход: локальные транзакции и компенсации.
Как называется и как реализуется механизм кросс-БД транзакций в распределённых системах?
Для атомарной транзакции между поддерживающими её ресурсами используют распределённую транзакцию, часто с двухфазным commit и координатором. Saga — другой подход: локальные транзакции и компенсации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для атомарной транзакции между поддерживающими её ресурсами используют распределённую транзакцию, часто с двухфазным commit и координатором. Saga — другой подход: локальные транзакции и компенсации.
В 2PC координатор сначала собирает готовность участников, затем принимает решение commit или rollback. Подготовленные участники могут удерживать ресурсы до восстановления решения, поэтому нужны журнал, recovery и эксплуатационный контроль. XA — один из интерфейсов взаимодействия менеджера транзакций с ресурсами, а не синоним любой интеграции БД. Если 2PC не подходит, выбирают Saga и eventual consistency, явно проектируя компенсации; это не обеспечивает ту же изоляцию, что единая ACID-транзакция.
Источник: www.postgresql.org.