Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные определения. Дадим общее определение системной транзакции как атомарный набор действий переводящий систему из одного целостного состояния в другое

Общие положения

Транзакции

 

Дадим общее определение системной транзакции как атомарный набор действий переводящий систему из одного целостного состояния в другое.

 

К основным свойствам транзакции относятся (ACID):

 

  • Atomicity атомарность – транзакция либо полностью успешно завершается (commit) либо все результаты её деятельности откатываются (rollback) в случае неуспешного завершения транзакции (failure)
  • Consistency целостность – результат деятельности транзакции целостный, т.е. после успешного её завершения в системе соблюдаются все бизнес-инварианты (бизнес-правила).
  • Isolation изолированность – промежуточные результаты в процессе выполнения транзакции до момента успешного её завершения не видны другим транзакциям.
  • Durability устойчивость – результат завершённой транзакции всегда сохраняется и не теряется даже в случае сбоя в системе.

 

Транзакция может быть закончена (terminated) двумя способами:

  • Commit – успешное завершение. В этом случае все изменения выполненные в рамках транзакции сохраняются на постоянном носителе в таком виде, что даже сбой в системе не должен приводить к потери результатов работы транзакции.
  • Rollback – откат. В эжтом случае все изменения выполненные в рамках транзакции отменяются и система должна возвратиться в своё состояние на момент до начала выполнения транзакции.

 

 

 

Координатор транзакций – компонент, который отвечает за создание транзакции, добавление транзакционных ресурсов в контекст транзакции, координирование протокола завершения транзакции.

 

Контекст транзакции – это структура включающая в себя помимо прочего:

  • Глобальный уникальный идентификатор транзакции,
  • текущее состояние транзакции - статус (активная, в процессе фиксации, в процессе отката и т.п.),
  • ассоциация с потоками выполнения (т.е. какие потоки учавствуют в конкретной транзакции)
  • список транзакционных ресурсов

 

Транзакционный ресурс – это русурс учавствующий в транзакции и правильно поддерживающий транзакционный протокол фиксации и токата. Самым очевидным примером транзакционного ресурса является соединение с базой данных. Один и тот же ресурс может подключаться (enlist) и отключаться (delist) к транзакции многократно во время её выполнения.

 

Таким образом, координатор транзакций осуществляет связь потока (или потоков) выполнения, транзакционные ресурсы в контекст транзакции. Контекст, как логическая структура в памяти, может быть представлен в виде пригодном для передачи по сети (т.е. marshalling).

 

Транзакция может быть:

  • Локальная – это транзакция происходящая под управлением одного координатора транзакций, как правило в памяти одной машины. Т.е. всеми ресурсами управляет один координатор, подчинённые координаторы в управлении транзакции не учавствуют.
  • Распределённая – это транзакция, которая может, помимо нескольких транзакционных ресурсов, задействовать несколько координаторов транзакций. При этом координаторы выстраиваются в иерархию, т.е. с точки зрения главного координатора, подчинённые координаторы выступают в виде транзакционных ресурсов, поддерживающих протокол транзакций.

 

В случае распределённой транзакции, контекст транзакции должен передаваться между координаторами. Эта процедура называется пропагирование контекста транзакции (transaction context propagation).

 

Различают:

  • Явное пропагирование контекста транзакции – в этом случае прикладной код явно добавляет в вызов метода параметр в котором передаётся контекст транзакции. Таким образом, прикладной программист должен всегда корректно передавать контекст при вызове какого либо транзакционного ресурса.
  • Неявное пропагирование контекста транзакции – в этом случае контекст передаётся автоматически транзакционной инфраструктурой.

 

<== предыдущая лекция | следующая лекция ==>
Уровни преобразования данных | Транзакционны протокол
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 344; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.