Двофазна транзакціяДвофазна транзакція — патерн проєктування, який дозволяє координувати транзакції здійснені до різних баз даних у вигляді однієї операції. ПроблемаНеобхідно виконати декілька транзакцій до різних баз даних у вигляді єдиної операції. ВирішенняПеревіряти стан кожної транзакцій допоки вони не будуть виконані. ОписФаза підготовкиНа цьому етапі вузол-координатор запитує всіх учасників, чи готові вони здійснити транзакцію. Учасники тоді відповідають так або ні.
Фаза фіксаціїНа цьому етапі, якщо всі вузли відповіли про можливість здійснення транзакції, координато попросить їх зафіксуватись, в іншому випадку — скасувати операцію. Успішне виконанняЯкщо координатор отримав повідомлення від всіх вузлів про можливість здійснення транзакції, відбуваються наступні кроки:
Невдале виконанняЯкщо хоч один учасник надіслав повідомлення про неможливість здійснення транзакції (або час очікування координатора сплив):
Недоліки
Див.також |