Рейтинг пользователей: / 5
ХудшийЛучший 

Голов В.А.

ОСНОВНЫЕ АРХИТЕКТУРЫ ТРАНЗАКЦИЙ И СФЕРЫ ИХ ПРИМЕНЕНИЯ

Московский государственный университет приборостроения и информатики

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

Ключевые слова: транзакции, СУБД, ACID, NoSQL, NoACID

This article describes general architectures of transactions, lists their properties. Also common aspirations and main scopes of these architectures are highlighted in this article.

Keywords: transactions, DBMS, ACID, NoSQL, NoACID

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

Реляционная модель данных придерживается основных принципов транзакций, называемых акронимом ACID по первых буквам составляющих компонент — неразрывность или атомарность (atomicity), правильность (correctness) (также используется термин «согласованность – consistency»), изолированность (isolation) и устойчивость или долговечность (durability).

Неразрывность (Атомарность). Транзакции неразрывны (выполняются по принципу «все или ничего»). Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все ее подоперации, либо не выполнено ни одной.

Согласованность. Одно из самых сложных и неоднозначных свойств из четверки ACID. В соответствии с этим требованием, система находится в согласованном состоянии до начала транзакции и должна остаться в согласованном состоянии после завершения транзакции.

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

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

С появлением специфических задач в науке  в начале XXI века появились нереляционные (постреляционные) базы данных. Хотя разнообразие нереляционных моделей растет, все они имеют общие черты: обрабатывают огромные объемы данных, разделяя их между серверами, поддерживают огромное количество пользователей, используют упрощенную, более гибкую, не ограниченную схемой структуру базы данных.

Принципы ACID прекрасно вписываются в реализации реляционных СУБД, однако при разработке постреляционных СУБД выяснилось, что архитектура транзакций, основанная на ACID не выгодна для использования в нереляционных решениях, а также является сложно реализуемой, особенно в случае распределенных вычислений на кластере баз данных. Поэтому во второй половине 2000-х годов, противопоставляя себе ACID, появился другой набор принципов, именуемый BASE–архитектурой.

BASE–архитектура — подход к построению распределенных систем, в которых требования целостности и доступности выполнены не в полной мере, названый акронимом BASE (от англ. Basically Available, Soft-state, Eventually consistent — базовая доступность, неустойчивое состояние, согласованность в итоге), при этом такой подход напрямую противопоставляется ACID. Под базовой доступностью подразумевается такой подход к проектированию приложения, чтобы сбой в некоторых узлах приводил к отказу в обслуживании только для незначительной части сессий при сохранении доступности в большинстве случаев. Неустойчивое состояние подразумевает возможность жертвовать долговременным хранением состояния сессий (таких как промежуточные результаты выборок, информация о навигации, контексте), при этом концентрируясь на фиксации обновлений только критичных операций. Согласованность в конечном счете (англ. Eventual consistency) трактуется, как возможность противоречивости данных в некоторых случаях, но при обеспечении согласования в практически обозримое время [1].

Также существует третья ветвь развития архитектуры транзакций — концепция Майкла Стоунбрейкера, утверждающего, что «один размер непригоден для всех», в которой основными являются два соображения:

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

Утверждения Стоунбрейкера, по сути, являются срединным меридианом, разделяющим позиции сторонников ACID и BASE. Стоунбрейкер в своих статьях стремится к созданию такой СУБД, где будут и сохранены полезные и важные черты ACID–архитектуры, и использованы новые разработки в области нереляционных СУБД [2].

Таким образом, можно выделить 3 основные движения в транзакциях:

  • консервативное (R–ACID) — традиционное использование свойств ACID, применительно к реляционной модели;
  • центристское (NoSQL или N–ACID) — сохранены важнейшие свойства ACID, унаследованные от реляционной модели, но применяются на нереляционных СУБД;
  • революционное (NoACID) — отрицание свойств ACID как пережитка прошлого, введение новых свойств взамен старых, использование нереляционной модели.

Теперь, зная свойства и устремления этих направлений, можно разграничить сферы применения трех архитектур транзакций. R–ACID–архитектура прекрасно подходит для структур, в которых требуется строгое выполнение всех правил проведения транзакций в смысле ACID на реляционных СУБД, и отсутствие поддержки хотя бы одного из свойств является критичным; такими сферами являются биллинг, банкинг, оборонный комплекс, сфера безопасности. Применение N–ACID целесообразно при обработке огромных объемов данных, хранящихся нереляционно — к примеру, графовые базы данных, биология, химия, семантический web. Подход NoACID применим только в случае, когда СУБД не может удовлетворить всем свойствам ACID, а у администратора СУБД есть возможность жертвовать одним фундаментальным  свойством транзакций ради обеспечения другого, таким образом, NoACID подходит для высоконагруженных highload-проектов, в основном для web-порталов: поисковых систем, социальных сетей, новостных порталов, интернет-сервисов с высокой посещаемостью.

Литература:

1.  Dan Pritchett, BASE: An Acid Alternative  (на англ. языке), ACM Queue. — N. Y.: ACM,  2008. [Электронный ресурс] – Режим доступа:  http://queue.acm.org/detail.cfm?id=1394128

2. Michael Stonebraker, Ugur Cetintemel. «One Size Fits All»: An Idea Whose Time Has Come and Gone. Proceedings of the 21st International Conference on Data Engineering, 2005. [Электронный ресурс] – Режим доступа: http://www.cs.brown.edu/~ugur/fits_all.pdf

 
Секции-октябрь 2011
КОНФЕРЕНЦИЯ:
  • "Научные исследования и их практическое применение. Современное состояние и пути развития.'2011"
  • Дата: Октябрь 2011 года
  • Проведение: www.sworld.com.ua
  • Рабочие языки: Украинский, Русский, Английский.
  • Председатель: Доктор технических наук, проф.Шибаев А.Г.
  • Тех.менеджмент: к.т.н. Куприенко С.В., Федорова А.Д.

ОПУБЛИКОВАНО В:
  • Сборник научных трудов SWorld по материалам международной научно-практической конференции.