LINUX.ORG.RU

История изменений

Исправление shimshimshim, (текущая версия) :

Да и если уже взяли деньги можно сделать возврат.

для операции

при заказе еды с доставкой, необходимо списать деньги со счёта, подать заявку на кухню, вызвать курьера. Все три действия должны произойти атомарно - если одно из них исполнить невозможно, два других нужно отменить, и передать пользователю ошибку.

в реальном мире ни на одном из шагов здесь нельзя гарантировтаь атомарность.

Даже в типичном книжном примере транзакционного перевода денег с одного счета на другой в реальном мире банки не используют транзакции и не лочат строчки чтобы не дай бог второй параллельной операцией не перевелось больше что есть на счете. Пишется лог, который когда-то потом с задержкой (иногда значительной) обрабатывается. Поэтому например на дебетовых счетах возможен технический овердрафт.

Большинство проблем решаются административными методами.

Оп, на то ты и инженер, чтобы в каждом конкретном случае находить оптимальное решение из всех возможных.

Исходная версия shimshimshim, :

Да и если уже взяли деньги можно сделать возврат.

для операции

при заказе еды с доставкой, необходимо списать деньги со счёта, подать заявку на кухню, вызвать курьера. Все три действия должны произойти атомарно - если одно из них исполнить невозможно, два других нужно отменить, и передать пользователю ошибку.

в реальном мире ни на одном из шагов здесь нельзя гарантировтаь атомарность.

Большинство проблем решаются административными методами.

Оп, на то ты и инженер, чтобы в каждом конкретном случае находить оптимальное решение из всех возможных.