Персистентность
Чтобы обеспечить персистентность данных, Tarantool записывает обновления базы данных в так называемые файлы журнала упреждающей записи (write-ahead log, WAL). При отключении электроэнергии или случайном завершении работы экземпляра Tarantool данные в оперативной памяти теряются. В таком случае Tarantool восстанавливает данные из WAL-файлов, повторно выполняя запросы, записанные в них. Это называется «процесс восстановления». Можно настроить, как часто данные записываются в WAL-файлы, или отключить запись совсем с помощью wal_mode.
Tarantool также сохраняет набор файлов со статическими снимками данных (snapshots). Файл со снимком — это дисковая копия всех данных в базе на какой-то момент. Вместо того, чтобы перечитывать все WAL-файлы с момента создания базы, Tarantool в процессе восстановления может загрузить самый свежий снимок и затем прочитать только те WAL-файлы, которые были созданы начиная с момента сохранения снимка. После создания новых снимков более ранние WAL-файлы могут быть удалены, чтобы освободить место на диске.
Чтобы принудительно создать файл снимка, используйте в Tarantool функцию box.snapshot(). Чтобы включить автоматическое создание файлов снимков, используйте демон создания контрольных точек (checkpoint daemon) Tarantool. Этот демон определяет интервалы для принудительного создания контрольных точек. Он обеспечивает синхронизацию и сохранение на диск образов движков базы данных (как memtx, так и vinyl), а также автоматически удаляет более ранние WAL-файлы.
Файлы со снимками можно создавать, даже если WAL-файлы отсутствуют.
Примечание
Движок memtx регулярно создает контрольные точки с интервалом, указанным в настройках демона создания контрольных точек.
Движок vinyl постоянно сохраняет состояние в контрольной точке в фоновом режиме.
Для получения более подробной информации о методе записи WAL-файлов и процессе восстановления см. раздел Внутренняя реализация.