Отложенное обновление против немедленного обновления
Отложенное обновление и немедленное обновление - это две технологии, используемые для ведения файлов журнала транзакций систем управления базами данных (СУБД). Журнал транзакций (также называемый журналом журнала или журналом повторов) - это физический файл, в котором хранится идентификатор транзакции, отметка времени транзакции, старое значение и новые значения данных. Это позволяет СУБД отслеживать данные до и после каждой транзакции. Когда транзакции фиксируются и база данных возвращается в согласованное состояние, журнал может быть усечен для удаления зафиксированных транзакций.
Отложенное обновление
Отложенное обновление, также называемое NO-UNDO / REDO, - это метод, используемый для восстановления / поддержки сбоев транзакций, возникающих из-за сбоев операционной системы, питания, памяти или компьютера. Когда транзакция выполняется, любые обновления или изменения, внесенные в базу данных транзакцией, не выполняются немедленно. Они записаны в лог-файл. Изменения данных, записанные в файле журнала, применяются к базе данных при фиксации. Этот процесс называется «повторное выполнение». При откате любые изменения данных, записанных в файле журнала, отбрасываются; следовательно, никакие изменения не будут применены к базе данных. Если транзакция завершается неудачно и она не зафиксирована по какой-либо из указанных выше причин, записи в файле журнала отбрасываются и транзакция перезапускается. Если изменения в транзакции фиксируются до сбоя, то после перезапуска системы изменения, записанные в файле журнала, применяются к базе данных..
Немедленное обновление
Немедленное обновление, также называемое UNDO / REDO, также является другим методом, используемым для восстановления / поддержки сбоев транзакций, возникающих из-за сбоев операционной системы, питания, памяти или компьютера. Когда транзакция выполняется, любые обновления или изменения, сделанные транзакцией, записываются непосредственно в базу данных. Как исходные значения, так и новые значения также записываются в файл журнала перед внесением изменений в базу данных. При фиксации все изменения, внесенные в базу данных, становятся постоянными, а записи в файле журнала отбрасываются. При откате старые значения восстанавливаются в базе данных, используя старые значения, хранящиеся в файле журнала. Все изменения, сделанные транзакциями в базе данных, отбрасываются, и этот процесс называется «недействительным». Когда система перезапускается после сбоя, все изменения базы данных становятся постоянными для совершенных транзакций. Для незафиксированных транзакций исходные значения восстанавливаются с использованием значений в файле журнала..
В чем разница между отложенным обновлением и немедленным обновлением
Хотя отложенное обновление и немедленное обновление являются двумя способами восстановления после сбоя системы, процесс, который использует каждый метод, отличается. В отличающемся методе обновления любые изменения, внесенные в данные посредством транзакции, сначала записываются в файл журнала и применяются к базе данных при фиксации. В методе немедленного обновления изменения, вносимые транзакцией, применяются непосредственно к базе данных, а старые значения и новые значения записываются в файл журнала. Эти записи используются для восстановления старых значений при откате. В отличающемся методе обновления записи в файле журнала отбрасываются при откате и никогда не применяются к базе данных. Одним из недостатков метода отложенного обновления является увеличение времени, необходимого для восстановления в случае сбоя системы. С другой стороны, частые операции ввода-вывода при активной транзакции являются недостатком метода немедленного обновления..