Я вивчаю, як працює двофазне комітування в розподіленій транзакції. Я розумію, що в останній частині фази координатор транзакцій запитує кожен вузол, чи готовий він до фіксації. Якщо всі погодились, то це говорить їм іти далі і робити зобов'язання.
Що запобігає наступному збою?
- Усі вузли відповідають, що готові до фіксації
- Координатор транзакцій каже їм "продовжувати і фіксувати", але один з вузлів виходить з ладу перед тим, як отримати це повідомлення
- Усі інші вузли успішно фіксуються, але тепер розподілена транзакція пошкоджена
- Я розумію, що коли аварійний вузол повернеться назад, його транзакція буде відкатана (оскільки він ніколи не отримував повідомлення про фіксацію)
Я припускаю, що на кожному вузлі працює звичайна база даних, яка не знає нічого про розподілені транзакції. Що я пропустив?