cfg_snapshot_daemon
Демон контрольных точек
Демон контрольных точек (демон снимков) – это постоянно работающий
файбер. Демон контрольных точек составляет расписание
периодического создания снимков на основе параметров конфигурации и
скорости роста размера файлов. Если он включен, демон создает новые
файлы снимков (.snap) в
соответствии с этим расписанием.
Работа демона контрольных точек основана на следующих параметрах конфигурации:
- checkpoint_interval – новый снимок создается раз в заданный период.
- checkpoint_wal_threshold – новый снимок создается, как только
: размер всех WAL-файлов, созданных с момента последнего снимка, превышает заданный предел.
При необходимости демон контрольных точек также активирует сборщик мусора Tarantool, который удаляет старые снимки и WAL-файлы.
Сборщик мусора Tarantool может быть активирован демоном контрольных точек. Сборщик мусора отслеживает снимки, которые должны быть переданы реплике или нужны другим потребителям. Когда файлы больше не нужны, сборщик мусора Tarantool удаляет их.
Этот сборщик мусора вызывается в следующих случаях:
- Когда количество снимков достигает предела, заданного параметром checkpoint_count. После создания нового снимка сборщик мусора Tarantool удаляет самый старый файл снимка и все связанные WAL-файлы.
- Когда размер всех WAL-файлов, созданных с момента последнего снимка, достигает предела, заданного параметром checkpoint_wal_threshold.
: При превышении этого размера демон контрольных точек делает снимок, после чего сборщик мусора удаляет старые WAL-файлы.
Если старый файл снимка удаляется, сборщик мусора Tarantool также удаляет все файлы журнала предзаписи (.xlog), удовлетворяющие следующим условиям:
- WAL-файлы старше файла снимка.
- WAL-файлы содержат информацию, присутствующую в файле снимка. Сборщик
мусора Tarantool также удаляет устаревшие
.run-файлы vinyl.
Сборщик мусора Tarantool не удаляет файл в следующих случаях:
- Выполняется резервное копирование, и файл еще не был скопирован (см. Горячее резервное копирование).
- Выполняется репликация, и файл еще не был передан реплике (см. Архитектура репликации),
- Реплика находится в процессе подключения.
- Реплика отстала.
: Прогресс каждой реплики отслеживается; если позиция реплики сильно отстает от актуальной, сервер приостанавливает удаление, чтобы дать ей возможность догнать. Если администратор приходит к выводу, что реплика окончательно вышла из строя, правильное действие – перезапустить сервер или (предпочтительно) удалить реплику из кластера.
Начиная с версии 1.7.4.
Интервал в секундах между действиями
демона контрольных точек. Если для параметра
задано значение больше нуля и есть активность, вызывающая изменения в
базе данных, демон контрольных точек вызывает
box.snapshot() каждые checkpoint_interval секунд, создавая каждый раз
новый файл снимка. Если параметр установлен в ноль, демон контрольных
точек отключен.
Пример
box.cfg{ checkpoint_interval = 7200 }
В этом примере демон контрольных точек создает новый снимок базы данных каждые два часа при наличии активности.
Тип: integer
Значение по умолчанию: 3600 (один час)
Переменная окружения: TT_CHECKPOINT_INTERVAL
Динамический: да
Начиная с версии 1.7.4.
Максимальное количество снимков, хранящихся в каталоге memtx_dir. Если количество снимков после создания нового превышает это значение, сборщик мусора Tarantool удаляет старые снимки. Если параметр установлен в ноль, сборщик мусора не удаляет старые снимки.
Пример
box.cfg{checkpoint_interval = 7200,checkpoint_count = 3}
В этом примере демон контрольных точек создает новый снимок каждые два часа, пока не будет создано три снимка. После создания нового снимка (четвертого) самый старый снимок и все связанные файлы журнала предзаписи удаляются.
Тип: integer
Значение по умолчанию: 2
Переменная окружения: TT_CHECKPOINT_COUNT
Динамический: да
Начиная с версии 2.1.2.
Пороговое значение общего размера в байтах для всех WAL-файлов, созданных с момента последней контрольной точки. При превышении заданного порога поток WAL уведомляет демона контрольных точек о необходимости создать новую контрольную точку и удалить старые WAL-файлы.
Этот параметр позволяет администраторам решить проблему, которая может возникнуть при расчете объема дискового пространства, выделяемого для раздела, содержащего WAL-файлы.
Тип: integer
Значение по умолчанию: 10\^18 (большое число, поэтому по умолчанию
ограничение фактически отсутствует)
Переменная окружения: TT_CHECKPOINT_WAL_THRESHOLD
Динамический: да