Классика баз данных - статьи

Параллельная природа ARIES


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

В условиях одновременной работы множества транзакций необходимо позаботиться о том, чтобы данные оставались согласованными. Для этого нужно уделить особое внимание совместно доступным объектам БД. В большинстве СУБД в качестве средства контроля согласованности данных информации используются блокировки (locks). В ARIES наряду с ними также используется механизм легких семафоров (latches). Различие между ними главным образом функциональное. Блокировки используются для контроля логической согласованности данных, в то время как легкие семафоры являются средством контроля физической согласованности. Установка легкого семафора является гораздо более дешевой операцией, чем установка блокировки. Также легкие семафоры обычно удерживаются на гораздо меньших промежутках времени, нежели блокировки. Еще одно важное различие этих двух способов контроля согласованности данных информации заключается в том, что система обнаружения тупиков не получает информацию о работе легких семафоров. Т.е. их можно использовать лишь в том случае, когда имеется абсолютная уверенность в том, что они не станут причиной возникновения тупика.

Для обеспечения максимального использования возможностей параллельной работы во время восстановления ARIES позволяет восстанавливать каждую страницу базы данных в отдельности. Это свойство обеспечивается наличием на каждой странице поля PageLSN. Как уже говорилось, это поле содержит LSN записи журнала, которая описывает последнее изменение, внесенное в эту страницу. Таким образом, при восстановлении можно сразу определить, какие действия над этой страницей должны быть повторены. Поскольку ARIES на одной из первых стадий восстановления повторяет все действия, произведенные над БД к моменту сбоя, нужно просто применить к данной странице все изменения, для которых LSN которых в журнале больше, чем PageLSN.



Содержание раздела