Журнализация и теневой механизм
Итак, чтобы обеспечить возможность восстановления данных в случае сбоя, ARIES предусматривает запись в журнал данные обо всех производимых транзакциями те действиях, которые могут изменить состояние базы данных. Журнал становится источником информации, необходимой для определения корректности завершения работы транзакций при разнообразных сбоях, а также при восстановлении поврежденных или потерянных данных. В ARIES используется широко известный метод упреждающей журнализации (WAL). При использовании этого способа ведения журнала записи о некоторой операции над базой данных попадают на энергонезависимый носитель (далее мы будем полагать, что в этой роли выступает жесткий диск) раньше, чем в базу вносятся изменения, произведенные этой операцией.
Альтернативной техникой, используемой для восстановления в случае сбоев, является механизм теневых страниц. Основное отличие систем, использующих теневые страницы, от систем, где для восстановления используется только журнал, заключается в том, что последние записывают изменения, внесенные в страницу базы данных в то же место, где располагалась предыдущая версия данных. При использовании же теневых страниц, измененная версия страницы данных записывается на другое место диска. В случае сбоя можно восстановить базу данных на основе старой (теневой) версии страницы и журнала. Как видно, идея, стоящая за теневым механизмом, проста и легко поддается реализации. Однако по ряду причин техника восстановления на основе теневых страниц, несмотря на всю свою простоту, считается хуже, чем восстановление с использованием упреждающей журнализации. Более детально этот вопрос рассмотрен в [5].
Для того, чтобы продолжить изложение алгоритма, требуется рассмотреть ряд структур данных, используемых в ARIES. Начнем со структуры записи журнала.