Как работают цепные транзакции в случае сбоя, когда UNDO имеет высокую стоимость? - PullRequest
0 голосов
/ 08 марта 2020

Это может быть очень фундаментальный вопрос, но мне интересно, как цепная транзакция работает в случае сбоя, а отмена действия «выполнено» имеет высокую стоимость. Простым примером будет бронирование билета в оба конца. Допустим, я хочу забронировать рейс из А в В с авиакомпаниями S и из В в А с авиакомпаниями Т. После того, как я забронирую билет, плата за аннулирование высока для обеих авиакомпаний. Теперь мой вопрос: как сайт бронирования реализует атомарность в случае сбоев, когда отмена невозможна? Нужно ли сайту иметь «особую» преданность авиакомпаниям, чтобы свести к минимуму / аннулировать отмену и поглотить расходы, потому что недопустимо «прерванная» поездка со штрафом за отмену из воздуха. Мне особенно интересно узнать, каковы точки фиксации таких суб-транзакций, когда сайт точно запускает RP C для авиакомпаний? Возможно ли, чтобы сами авиакомпании предоставили двухфазный API (предварительно закажите и подтвердите)? Даже тогда, как это работает с многолетними заказами?

...