Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Распределенная транзакция является транзакций базы данных , в которой участвуют два или более сетевых хостов. Обычно хосты предоставляют транзакционные ресурсы , в то время как менеджер транзакций отвечает за создание и управление глобальной транзакцией, которая охватывает все операции с такими ресурсами. Распределенные транзакции, как и любые другие транзакции , должны иметь все четыре свойства ACID (атомарность, согласованность, изоляция, долговечность) , при этом атомарность гарантирует результат «все или ничего» для единицы работы (пакета операций).

Open Group, консорциум поставщиков, предложил модель X / Open Distributed Transaction Processing (DTP) Model (X / Open XA), которая стала фактическим стандартом поведения компонентов модели транзакций.

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

Распространенным алгоритмом обеспечения правильного завершения распределенной транзакции является двухфазная фиксация (2PC). Этот алгоритм обычно применяется для обновлений, которые могут быть зафиксированы за короткий период времени, от пары миллисекунд до пары минут.

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

На практике долгоживущие распределенные транзакции реализуются в системах на основе веб-сервисов . Обычно в этих транзакциях используются принципы компенсационных транзакций , оптимизма и изоляции без блокировки. Стандарт X / Open не распространяется на долгоживущие DTP.

Несколько современных технологий, включая Enterprise Java Beans (EJB) и Microsoft Transaction Server (MTS), полностью поддерживают стандарты распределенных транзакций.

См. Также [ править ]

Ссылки [ править ]

Дальнейшее чтение [ править ]

  • Герхард Вейкум, Готфрид Фоссен, Транзакционные информационные системы: теория, алгоритмы и практика управления параллельным выполнением и восстановления , Морган Кауфманн, 2002, ISBN 1-55860-508-8