Компенсационная транзакция - Википедия - Compensating transaction

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

Есть две группы систем, в которых компенсационная сделка может применяться:

1. В контексте база данных это часто легко достигается с помощью сделки и совершить /откат механизм.[1] Компенсационная сделка логика может быть реализована как дополнительная поверх поддержки базы данных совершить /откат. В этом случае мы можем уменьшить детализацию бизнес-транзакций.

2. Для систем без совершить /откат доступный механизм, можно отменить неудачную транзакцию с помощью компенсационная сделка, который вернет систему в исходное состояние. Обычно это только обходной путь который должен быть реализован вручную и не может гарантировать, что система всегда будет работать в согласованном состоянии. Разработчику системы может потребоваться подумать о том, что произойдет, если компенсационная транзакция также не удастся.

Компенсационные операции также используются в случае, если транзакция является долгоживущей (обычно называется Сага Транзакции ), например, в бизнес-процессе, требующем ввода данных пользователем. В таких случаях данные будут сохранены в постоянном хранилище, но впоследствии может потребоваться откат, возможно, из-за того, что пользователь решил отменить операцию. В отличие от обычных откатов, для отката долгоживущей транзакции и восстановления системы в исходное состояние обычно требуется конкретная бизнес-логика. Этот тип транзакции отличается от распределенные транзакции (часто реализуется с использованием протокол двухфазной фиксации ), потому что, хотя оба типа транзакций могут привести к обновлению нескольких хранилищ данных, компенсационные операции позволяет выполнять обновления в течение длительного периода времени.

Компенсационные операции часто превращаются в Веб-сервисы которые участвуют в выполнении бизнес-процессов, являющихся частью Сервис-Ориентированная Архитектура решение.

Смотрите также

Рекомендации

  1. ^ Грей, Джим (июнь 1981 г.). «Концепция сделки: достоинства и ограничения». Труды конференции по очень большим базам данных.