Может ли кто-нибудь объяснить, почему в журнале предзаписи используется NO-FORCE?

Когда я искал в Интернете, STEAL и FORCE определяются следующим образом

FORCE или NO-FORCE: Должны ли все обновления транзакции принудительно записываться на диск до того, как транзакция будет зафиксирована?

Кроме того, мне сказали, что

Транзакция не считается совершенной до тех пор, пока все ее записи журнала не будут записаны в стабильное хранилище.

Тогда чем WAL отличается от подхода FORCE? Я чувствую, что в обоих случаях изменения должны быть сброшены на диск, когда мы фиксируем транзакцию....


person Y_KL    schedule 08.12.2016    source источник


Ответы (1)


С WAL у вас есть последовательная запись в журнал. Обновления страниц по всей базе данных могут быть записаны асинхронно в записи журнала.

Принудительный подход требует, чтобы все грязные страницы в пуле буферов были сброшены на диск синхронно с операцией фиксации. Это гораздо более дорогая операция и ограничивает пропускную способность.

Основной компромисс: более длительное время восстановления после сбоя с WAL по сравнению с более низкой пропускной способностью при принудительном использовании.

person janm    schedule 08.12.2016