Что бы вы вошли в журнал записи с опережением?
Что СУБД, которые реализуют многоуровневое упорядочение меток времени для управления параллелизмом, обычно включают в свои журналы опережающей записи? до и после изображений или один из них? метки времени? что-то еще?
2 ответа
Документация Postgres WAL. Postgres использует тип MVTO MVCC. InnoDB использует MVRC.
Вот структура журнала Postgres и структура pg_control, что важно для восстановления. Временные метки не используются как ненадежные, скорее они используют монотонно увеличивающийся счетчик целых чисел (идентификатор транзакции).
Таким образом, все относящиеся к откату данные хранятся в самих основных данных, а не в WAL.
Основной целью WAL является восстановление данных в случае проблем из-за сбоя питания, проблем ОС или аппаратного сбоя (очевидно, за исключением серьезных сбоев диска). Так что WAL должен быть в значительной степени независимым от этого.
Структура журнала Innodb находится в innodb/include/log0log.h .
Спасибо, PST. Я нашел эту статью одной из лучших на данный момент: http://answers.oreilly.com/topic/2035-whats-new-in-sqlite-37/