Jump to content

Атомарность (системы баз данных)

В системах баз данных атомарность ( / ˌ æ t ə ˈ m ɪ s ə t i / ; от древнегреческого : ἄτομος , латинизированного : átomos , букв. «неделимый») является одним из ACID ( атомарность, согласованность , изоляция , долговечность ). свойства транзакции . Атомарная транзакция — это неделимая и несократимая серия операций с базой данных, в которых либо выполняются все операции, либо не происходит ни одной . [1] Гарантия атомарности предотвращает частичные обновления базы данных, поскольку они могут вызвать более серьезные проблемы, чем полный отказ от всей серии. Как следствие, другой клиент базы данных не может наблюдать за выполнением транзакции. В один момент времени это еще не произошло, а в следующий уже произошло полностью (или ничего не произошло, если транзакция была отменена в процессе).

Примером атомарной транзакции является денежный перевод с банковского счета A на счет B. Он состоит из двух операций: снятия денег со счета A и сохранения их на счет B. Выполнение этих операций в рамках атомарной транзакции гарантирует, что база данных останется в стабильное состояние , то есть деньги не теряются и не создаются, если любая из этих двух операций терпит неудачу. [2]

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

Ортогональность [ править ]

Атомарность не ведет себя полностью ортогонально по отношению к другим свойствам ACID транзакций. Например, изоляция опирается на атомарность для отката включающей транзакции в случае нарушения изоляции, такого как взаимоблокировка ; Согласованность также опирается на атомарность для отката включающей транзакции в случае нарушения согласованности незаконной транзакцией.

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

Реализация [ править ]

Обычно системы реализуют атомарность, предоставляя некоторый механизм, указывающий, какие транзакции начались, а какие завершились; или сохраняя копию данных до того, как произошли какие-либо изменения ( read-copy-update ). В нескольких файловых системах разработаны методы, позволяющие избежать необходимости хранить несколько копий данных с помощью журналирования (см. Журналируемая файловая система ). Базы данных обычно реализуют это, используя некоторую форму журналирования/ведения журнала для отслеживания изменений. Система синхронизирует журналы (часто метаданные ) по мере необходимости после успешного внесения изменений. После этого восстановление после сбоя игнорирует неполные записи. Хотя реализации различаются в зависимости от таких факторов, как проблемы параллелизма, принцип атомарности, то есть полный успех или полный провал, остается неизменным.

В конечном счете, любая реализация уровня приложения зависит от функциональности операционной системы . На уровне файловой системы POSIX -совместимые системы предоставляют системные вызовы, такие как open(2) и flock(2) которые позволяют приложениям атомарно открывать или блокировать файл. На уровне процесса потоки POSIX предоставляют адекватные примитивы синхронизации.

Аппаратный уровень требует атомарных операций, таких как Test-and-set , Fetch-and-add , Compare-and-swap или Load-Link/Store-Conditional , а также барьеры памяти . Портативные операционные системы не могут просто блокировать прерывания для реализации синхронизации, поскольку оборудование, в котором отсутствует одновременное выполнение, такое как гиперпоточность или многопроцессорность, сейчас встречается крайне редко. [ нужна ссылка ]

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

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

  1. ^ «атомная операция» . Вебопедия. 25 ноября 2003 года . Проверено 23 марта 2011 г. Операция, во время которой процессор может одновременно читать и записывать ячейку в одной и той же операции шины. Это предотвращает запись или чтение памяти любым другим процессором или устройством ввода-вывода до завершения операции.
  2. ^ Амстердам, Джонатан. «Атомарные файловые транзакции, часть 1» . О'Рейли . Архивировано из оригинала 3 марта 2016 г. Проверено 28 февраля 2016 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7c72d7b4a8adbe5351556b14916f5cce__1713521400
URL1:https://arc.ask3.ru/arc/aa/7c/ce/7c72d7b4a8adbe5351556b14916f5cce.html
Заголовок, (Title) документа по адресу, URL1:
Atomicity (database systems) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)