на этом мы завершаем обзор
Итак, на этом мы завершаем обзор базового алгоритма ARIES. В заключение перечислим отличительные свойства этого алгоритма:
- Поддержка покортежных блокировок.
- Для определения статуса страницы используется единственная переменная - PageLSN.
- Действия, производимые во время отката транзакции, не обязательно должны быть обратными по отношению к действиям, которые были совершены при ее прямом выполнении.
- Восстановление каждой страницы базы данных может вестись совершенно независимо от других страниц. Это свойство особенно полезно при восстановлении после жесткого сбоя, когда приходится обрабатывать сразу очень много данных.
- При необходимости можно восстанавливать работу транзакций, которые не успели завершиться к моменту сбоя. Эта возможность обусловлена тем, что ARIES во время восстановления повторяет все действия транзакций, в отличие от большинства прочих систем, которые используют выборочное повторение (selective redo).
- ARIES поддерживает разделенный запуск, когда после сбоя сначала восстанавливается наиболее важная информация, к которой сразу предоставляется доступ, а восстановление прочих частей системы на время откладывается.
- ARIES поддерживает операционную журнализацию (operation logging). При этом способе журнализации в журнале запоминаются операции (например: прибавить к атрибуту A кортежа T число 5), а не образы кортежей до и после внесения изменений.
- Как и System R, ARIES поддерживает частичные откаты транзакций к заранее установленным точкам сохранения (savepoints). Реализовано это свойство очень простым способом. Если во время работы транзакции требуется установить точку сохранения, то запись об этом добавляется к списку, описывающему действия транзакции. Соответственно, при откате к точке сохранения, отменяются все действия транзакции до тех пор, пока не будет достигнут маркер с именем этой точки.
- CLR в ARIES не нуждаются в откате. Это позволяет избежать журнализации заведомо избыточной информации, подобной той, которая возникает в других системах при создании CLR от CLR. Кроме того, можно не писать в журнал информацию, необходимую для отката CLR.
- Еще до завершения отката транзакции ARIES позволяет снять блокировки всех тех объектов, над которыми уже произведены все необходимые действия. Это может быть важно в том случае, если выполняется откат длинной транзакции или если требуется избавиться от тупика путем частичного отката одной из транзакций-участниц.
- В ARIES с помощью NTA можно вкладывать в транзакцию действия, результат которых не будет отменен даже в случае отката транзакции.
Таковы основные из обсужденных нами свойств ARIES. Хотя данная статья покрывает собой значительную часть алгоритма, она не является полной. Многие стороны работы алгоритма остались не освещенными. Заинтересованный читатель может обратиться к литературе, ссылки на которую можно найти ниже.