4.2.1.2.1.1.2. Журнал транзакций
Журнал транзакций используется для обеспечения сохранности записываемых данных. Все поступающие в базу данных записи сначала сохраняются в журнал. Также в журнал сохраняются внутренние служебные записи.
Для каждой записи, сохранённой в журнал, выделяется уникальный последовательный 8-байтный идентификатор, используемый внутри базы данных для определения отношения последовательности между отдельными записями и фрагментами данных (используется при выполнении операций чтения и слияния).
Журнал хранится в отдельном файле tx. Общее устройство файла и принципы работы:
Состоит из сегментов одинакового размера (32 МБ)
Сегменты файла перезаписываются по мере освобождения
При отсутствии свободных сегментов с конца файла выделяется новый сегмент (размер файла журнала увеличивается)
При наличии свободных сегментов приоритет при перезаписи отдаётся сегментам ближе к началу файла журнала
При наличии последовательности свободных сегментов в конце журнала выполняется усечение файла журнала (размер файла журнала сокращается)
Запись и чтение внутри сегментов выполняются линейно, соответственно, с высокой производительностью.
Записи из журнала удаляются только при их успешном сохранении в хранилище.
|
Работа журнала регулируется параметрами раздела tx в файле local.jsonc.
<домашняя папка>\.astra.historian.server\config\local.jsonc
|
