Может ли кто-нибудь объяснить, почему для записи с записью в журнал используется NO-FORCE?
Когда я искал в Интернете, STEAL и FORCE определяется следующим образом
FORCE или NO-FORCE: должны ли все обновления транзакции быть записаны на диск до ее фиксации?
Кроме того, мне сказали, что
Транзакция не считается подтвержденной, пока все ее записи журнала не будут записаны в стабильное хранилище.
Тогда чем WAL отличается от подхода FORCE? Я чувствую, что в обоих случаях изменения должны быть сброшены на диск при фиксации транзакции....
1 ответ
С WAL у вас есть последовательная запись в журнал. Обновления страниц в базе данных могут записываться асинхронно в записи журнала.
Принудительный подход требует, чтобы все грязные страницы в пуле буферов синхронно сбрасывались на диск с операцией фиксации. Это намного более дорогая операция и ограничивает пропускную способность.
Основной компромисс: более длительное время восстановления после сбоя с WAL по сравнению с более низкой пропускной способностью с применением силы.