В книге «Проектирование приложений, интенсивно использующих данные», говорится Concurrency and crash recovery are simpler if segment files are append-only or immutable. For crash recovery, you don't need to worry if a crash happened while a value was being overwritten, leaving you with part of old data and part of new data.
Однако я не понял «оставить вам часть старых данных и часть новых данных». Даже для базы данных только для добавления она будет иметь часть старых данных и часть новых данных, когда добавление новых данных будет прервано.
Базы данных сообщают, что «данные зафиксированы» после того, как данные записываются в журнал. В базах данных только с добавлением журнал является единственным местом для записи данных; нет других файлов данных для обновления, следовательно, нет сложности.
Когда загружается база данных только для добавления, единственное, что происходит, это считывание файла журнала для создания некоторых структур в памяти для оптимизации. Неважно, происходит эта загрузка из-за сбоя или штатного перезапуска бокса.
Impaler дал хорошее описание сложности с базами данных без добавления. Существует несколько структур данных, и для их синхронизации после сбоя необходим процесс.
Спасибо! Теперь я понимаю. Другие базы данных более сложны и имеют копии для некоторых данных.
Поскольку журнал повторов может быть применен непосредственно к базе данных только для добавления. В традиционной базе данных применение журнала повторов может потребовать значительных ресурсов.