Здравствуйте, Romkin, Вы писали:
R>Гарантия восстановления данных в IB есть, и очень быстрая.
Ну, согласен, с некоторыми оговорками.
R>В случае сбоя сервера при следующем подсоединении к БД он просто проходит и помечает страницы с неподтвержденными транзакциями как пустые, на чем все и заканчивается.
Гуд, я так и написал, тут все очевидно. Просто и "журнал" и данные физически в одном месте. Я "журнал" намеренно беру в кавычки, так как схема работы очень напоминает Undo-журнал "в классическом понимании"
R>А вот менеджера транзакций в понимании блокировочника там нет,
Там нет не менеджера транзакций, а менеджера блокировок. А менеджер транзакций там в полне себе есть. Возможно он называется по другому, но это тот самый механизм, который определяет, что вот эта вот транзакция нарвалась на вот эту вот и ее надо откатить, по бырому, чтобы не отсвечивала.
Это не обязательно остдельный сервер или отдельная часть ядра — это просто специальное название весьма конкретной функциональности.
R>журнала также нет, все гораздо проще — есть страницы, и есть версии записей.
Да. Нет журнала, как отдельного файла или механизма, но схема работы с данными действительно напоминает undo-журнал.
R>Сбой в структуре может произойти в следующих случаях:
R>1. Смерть сервера по форсмажорным электричествам во время сборки мусора (sweep)
Вот здесь вот та самая оговорка про отказоустойчивость. Отказоустойчивость должна обеспечиваться и при работе всех обслуживающие механизмов, а здесь ее нет.
R>2. Отключение forced writes — сервер не знает, данные в кеше системы или уже на диске
Естественно, тут никакой журнал не спасет.
R>3. Некорректные изменения метаданных — во время работы и тд.
Вот это тоже непонятно....
R>4. ... Ну еще несколько причин, не таких основных.
В том-то и дело, что при полноценном Recovery никаких причин не должно быть в принципе.
Единственная допускаемая возможность невосстановимого сбоя — это случай физического повреждения носителя. Если же повреждения не произошло, то база обязана сама себя привести в корректное состояние без посторонней помощи.