Стратегия отложенной записи в системах управления базами данных (СУБД) работает следующим образом: 13
- В СУБД с отложенной записью блоки данных внешней памяти снабжаются отметкой порядкового номера последнего изменения, которое было выполнено над этим блоком данных. 1 В случае сбоя системы эта отметка позволяет узнать, какая версия блока данных успела достичь внешней памяти. 1
- СУБД с отложенной записью периодически выполняет контрольные точки. 1 Во время этого процесса все незаписанные данные переносятся на внешнюю память, а в журнал пишется отметка принятия контрольной точки. 1 После этого содержимое журнала, записанное до контрольной точки, может быть удалено. 1
- Журнал изменений может не записываться непосредственно во внешнюю память, а аккумулироваться в оперативной. 1 В случае подтверждения транзакции СУБД дожидается записи оставшейся части журнала на внешнюю память. 1 Таким образом гарантируется, что все данные, внесённые после сигнала подтверждения, будут перенесены во внешнюю память, не дожидаясь переписи всех изменённых блоков из дискового кэша. 1
- В случае логического отказа или сигнала отката одной транзакции журнал сканируется в обратном направлении, и все записи отменяемой транзакции извлекаются из журнала вплоть до отметки начала транзакции. 1 Согласно извлечённой информации выполняются действия, отменяющие действия транзакции, а в журнал записываются компенсирующие записи. 1
- В случае физического отказа, если ни журнал, ни сама база данных не повреждена, то выполняется процесс прогонки (rollforward). 1 Журнал сканируется в прямом направлении, начиная от предыдущей контрольной точки. 1 Все записи извлекаются из журнала вплоть до конца журнала. 1 Извлечённая из журнала информация вносится в блоки данных внешней памяти, у которых отметка номера изменений меньше, чем записанная в журнале. 1
Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД. 3