Jump to content

Обработка транзакций

(Перенаправлено из Менеджера транзакций )

В информатике . обработка транзакций — это обработка информации [ 1 ] который разделен на отдельные неделимые операции, называемые транзакциями . Каждая транзакция должна быть успешной или неудачной как целостная единица; оно никогда не может быть завершено лишь частично.

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

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

Поскольку большая часть, хотя и не обязательно все, обработки транзакций сегодня является интерактивной, этот термин часто рассматривается как синоним онлайн-обработки транзакций .

Описание

[ редактировать ]

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

Например, рассмотрим типичную банковскую транзакцию, которая включает перевод 700 долларов США со сберегательного счета клиента на текущий счет клиента. Эта транзакция включает в себя как минимум две отдельные операции с компьютерной точки зрения: дебетование сберегательного счета на 700 долларов и пополнение текущего счета на 700 долларов. Если одна операция успешна, а другая нет, бухгалтерские книги банка не сбалансируются в конце дня. Поэтому должен быть способ гарантировать, что либо обе операции завершатся успешно, либо обе потерпят неудачу, чтобы никогда не возникало несоответствий в базе данных банка в целом.

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

Обработка транзакций защищает от аппаратных и программных ошибок, которые могут привести к частичному завершению транзакции. Если компьютерная система выходит из строя в середине транзакции, система обработки транзакций гарантирует, что все операции в любых незафиксированных транзакциях будут отменены.

Как правило, транзакции выполняются одновременно. Если они перекрываются (т.е. должны касаться одной и той же части базы данных), это может привести к конфликтам. Например, если клиент, упомянутый в приведенном выше примере, имеет 150 долларов США на своем сберегательном счете и пытается перевести 100 долларов США другому человеку, одновременно переводя 100 долларов США на текущий счет, только один из них сможет добиться успеха. Однако принудительная обработка транзакций последовательно неэффективна. Таким образом, параллельные реализации обработки транзакций запрограммированы так, чтобы гарантировать, что конечный результат отражает бесконфликтный результат, такой же, который может быть достигнут при последовательном выполнении транзакций в любом порядке (свойство, называемое сериализуемостью ). В нашем примере это означает, что независимо от того, какая транзакция была совершена первой, либо перевод другому лицу, либо перемещение на текущий счет завершается успешно, а другая — неудачно.

Методология

[ редактировать ]

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

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

Ролл вперед

[ редактировать ]

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

В некоторых случаях две транзакции в ходе своей обработки могут попытаться одновременно получить доступ к одной и той же части базы данных, что препятствует их продолжению. Например, транзакция A может получить доступ к части X базы данных, а транзакция B может получить доступ к части Y базы данных. Если в этот момент транзакция A попытается получить доступ к части Y базы данных, а транзакция B попытается получить доступ к части X, произойдет тупик , и ни одна транзакция не сможет продолжить работу. Системы обработки транзакций предназначены для обнаружения таких взаимоблокировок, когда они возникают. Обычно обе транзакции отменяются и откатываются, а затем автоматически запускаются снова в другом порядке, чтобы взаимоблокировка не возникла снова. Или иногда только одна из застрявших транзакций будет отменена, откатана и автоматически перезапущена после небольшой задержки.

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

Компенсационная сделка

[ редактировать ]

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

КИСЛОТНЫЕ критерии

[ редактировать ]

Джим Грей определил свойства надежной системы транзакций в конце 1970-х годов под аббревиатурой ACID — атомарность, согласованность, изоляция и долговечность. [ 1 ]

атомарность

[ редактировать ]

Изменения состояния транзакции являются атомарными: либо происходят все, либо ничего не происходит. Эти изменения включают изменения в базе данных, сообщениях и действиях с датчиками.

Последовательность

[ редактировать ]

Согласованность : транзакция — это правильное преобразование состояния. Действия, предпринятые группой, не нарушают никаких ограничений целостности, связанных с состоянием.

Изоляция

[ редактировать ]

Несмотря на то, что транзакции выполняются одновременно, для каждой транзакции T создается впечатление, что другие выполнялись либо до T, либо после T, но не то и другое одновременно.

Долговечность

[ редактировать ]

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

Реализации

[ редактировать ]

для обработки транзакций Стандартное программное обеспечение , такое как IBM от Information Management System , было впервые разработано в 1960-х годах и часто было тесно связано с конкретными системами управления базами данных . В клиент-серверных вычислениях аналогичные принципы были реализованы в 1980-х годах с переменным успехом. Однако в последние годы поддерживать распределенную модель клиент-сервер стало значительно сложнее. Поскольку количество транзакций росло в ответ на появление различных онлайн-сервисов (особенно Интернета ), единая распределенная база данных не представляла собой практического решения. Кроме того, большинство онлайн-систем состоят из целого набора программ, работающих вместе, в отличие от строгой модели клиент-сервер, где обработку транзакций может выполнять один сервер. Сегодня доступен ряд систем обработки транзакций, которые работают на межпрограммном уровне и масштабируются до больших систем, включая мэйнфреймы .

Одной из попыток является X/Open Distributed Transaction Processing (DTP) (см. также Java Transaction API (JTA). Однако проприетарные среды обработки транзакций, такие как IBM CICS, по-прежнему очень популярны. [ нужна ссылка ] хотя CICS эволюционировала и теперь включает в себя и открытые отраслевые стандарты.

Термин «экстремальная обработка транзакций» (XTP) использовался для описания систем обработки транзакций с необычайно высокими требованиями, особенно с требованиями к пропускной способности (транзакций в секунду). Такие системы могут быть реализованы с использованием архитектур распределенного или кластерного типа. Он использовался как минимум к 2011 году. [ 2 ] [ 3 ]

  1. ^ Jump up to: а б Грей, Джим; Рейтер, Андреас. «Обработка транзакций – концепции и методы (Powerpoint)» . Проверено 12 ноября 2012 г.
  2. ^ Коэн Вандеркимпен и Дирк Дериддер. «Экстрим в здравоохранении» . Презентация Devoxx 2011 . Проверено 18 марта 2017 г.
  3. ^ Кевин Робак (2011). Экстремальная обработка транзакций . Источник молнии. ISBN  978-1-74304-266-3 .

Дальнейшее чтение

[ редактировать ]
  • Герхард Вейкум, Готфрид Воссен, Транзакционные информационные системы: теория, алгоритмы и практика параллельного управления и восстановления , Морган Кауфманн, 2002 г., ISBN   1-55860-508-8
  • Джим Грей , Андреас Рейтер, «Обработка транзакций — концепции и методы», 1993, Морган Кауфманн, ISBN   1-55860-190-2
  • Филип А. Бернштейн, Эрик Ньюкомер, Принципы обработки транзакций, 1997, Морган Кауфманн, ISBN   1-55860-415-4
  • Ахмед К. Эльмагармид (редактор), Модели транзакций для расширенных приложений баз данных, Морган-Кауфманн, 1992 г., ISBN   1-55860-214-3
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 090f818522fb7f4bb1d505aa071b1d86__1713095580
URL1:https://arc.ask3.ru/arc/aa/09/86/090f818522fb7f4bb1d505aa071b1d86.html
Заголовок, (Title) документа по адресу, URL1:
Transaction processing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)