Иллюстрированный самоучитель по Visual Studio.Net



Транзакции - часть 2


Для поддержки многозадачности требуются следующие механизмы обработки данных:

  • начало транзакции, => изменение данных, => принятие изменений (commit);
  • начало транзакции, => изменение данных, => отмена транзакции (roll back);
  • восстановление системы после программного или аппаратного сбоя;
  • восстановление системы после потери данных на диске;
  • архивирование базы данных;

  • создание контрольных точек (checkpoints) — копий текущих состояний для возможности их восстановления.

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

  • аварийное завершение работы СУБД по причине ошибки в программе или в результате некоторого аппаратного сбоя,

  • аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной.

    Во всех случаях придерживаются стратегии «упреждающей» записи в журнал, так называемого протокола WAL — Write Ahead Log. Она заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.




    Содержание  Назад  Вперед